Systemd/src/core
HATAYAMA Daisuke 9fa7c1aeb9 selinux: fix regression of systemctl subcommands when absolute unit file paths are specified
The commit 4938696301 overlooked the
fact that unit files can be specified as unit file paths, not unit
file names, wrongly passing a unit file path to the 1st argument of
manager_load_unit() that handles it as a unit file name. As a result,
the following 4 systemctl subcommands:

    enable
    disable
    reenable
    link
    mask
    unmask

fail with the following error message:

    # systemctl enable /usr/lib/systemd/system/kdump.service
    Failed to execute operation: Unit name /usr/lib/systemd/system/kdump.service is not valid.
    # systemctl disable /usr/lib/systemd/system/kdump.service
    Failed to execute operation: Unit name /usr/lib/systemd/system/kdump.service is not valid.
    # systemctl reenable /usr/lib/systemd/system/kdump.service
    Failed to execute operation: Unit name /usr/lib/systemd/system/kdump.service is not valid.
    # cp /usr/lib/systemd/system/kdump.service /tmp/
    # systemctl link /tmp/kdump.service
    Failed to execute operation: Unit name /tmp/kdump.service is not valid.
    # systemctl mask /usr/lib/systemd/system/kdump.service
    Failed to execute operation: Unit name /usr/lib/systemd/system/kdump.service is not valid.
    # systemctl unmask /usr/lib/systemd/system/kdump.service
    Failed to execute operation: Unit name /usr/lib/systemd/system/kdump.service is not valid.

To fix the issue, first check whether a unit file is passed as a unit
file name or a unit file path, and then pass the unit file to the
appropreate argument of manager_load_unit().

By the way, even with this commit mask and unmask reject unit file
paths as follows and this is a correct behavior:

    # systemctl mask /usr/lib/systemd/system/kdump.service
    Failed to execute operation: Invalid argument
    # systemctl unmask /usr/lib/systemd/system/kdump.service
    Failed to execute operation: Invalid argument
2015-08-26 15:00:05 +09:00
..
.gitignore build-sys: move more files from core/ to share/ that are generic enough 2013-11-22 16:31:40 +01:00
audit-fd.c treewide: use log_*_errno whenever %m is in the format string 2014-11-28 19:49:27 +01:00
audit-fd.h
automount.c sd-bus: do not connect to dbus-1 socket when kdbus is available 2015-08-11 20:49:36 +02:00
automount.h automount: add expire support 2015-04-21 20:23:41 +02:00
bus-endpoint.c bus: sync with kdbus (ABI break) 2015-02-05 16:52:42 +01:00
bus-endpoint.h core: rearrange code so that libsystemd/sd-bus/ does not include header files from core 2014-12-23 19:15:27 +01:00
bus-policy.c sd-bus: when we get ENOTTY on the HELLO ioctl assume incompatible API version 2015-04-30 01:24:48 +02:00
bus-policy.h bus: add missing bus-policy.[ch] 2014-12-23 21:06:01 +01:00
busname.c core: remove generic job completion messages from unit vtables 2015-07-21 19:24:20 +02:00
busname.h remove unused includes 2015-02-23 23:53:42 +01:00
cgroup.c core: rename SystemdRunningAs to ManagerRunningAs 2015-05-11 22:51:49 +02:00
cgroup.h core: expose consumed CPU time per unit 2015-03-02 12:15:25 +01:00
dbus-automount.c automount: add expire support 2015-04-21 20:23:41 +02:00
dbus-automount.h remove unused includes 2015-02-23 23:53:42 +01:00
dbus-busname.c remove unused includes 2015-02-23 23:53:42 +01:00
dbus-busname.h remove unused includes 2015-02-23 23:53:42 +01:00
dbus-cgroup.c tree-wide: fix indentation 2015-08-06 00:44:19 +02:00
dbus-cgroup.h core: convert PID 1 to libsystemd-bus 2013-11-20 20:52:36 +01:00
dbus-device.c remove unused includes 2015-02-23 23:53:42 +01:00
dbus-device.h remove unused includes 2015-02-23 23:53:42 +01:00
dbus-execute.c core: drop spurious new line 2015-08-25 18:37:31 +02:00
dbus-execute.h core: allow User=, Group=, Nice=, Environment=, Type= to be passed when creating a transient service 2014-02-05 02:03:10 +01:00
dbus-job.c sd-bus: drop bus parameter from message callback prototype 2015-04-29 18:36:25 +02:00
dbus-job.h sd-bus: drop bus parameter from message callback prototype 2015-04-29 18:36:25 +02:00
dbus-kill.c util: split out signal-util.[ch] from util.[ch] 2015-05-29 20:14:11 +02:00
dbus-kill.h core: convert PID 1 to libsystemd-bus 2013-11-20 20:52:36 +01:00
dbus-manager.c tree-wide: port everything over to fflush_and_check() 2015-07-29 20:31:07 +02:00
dbus-manager.h core: emit changes for NFailedUnits property 2015-02-26 09:38:50 -05:00
dbus-mount.c remove unused includes 2015-02-23 23:53:42 +01:00
dbus-mount.h core: no need to list properties for PropertiesChanged messages anymore 2013-12-22 03:50:52 +01:00
dbus-path.c remove unused includes 2015-02-23 23:53:42 +01:00
dbus-path.h remove unused includes 2015-02-23 23:53:42 +01:00
dbus-scope.c sd-bus: drop bus parameter from message callback prototype 2015-04-29 18:36:25 +02:00
dbus-scope.h core: introduce new stop protocol for unit scopes 2014-01-31 17:48:36 +01:00
dbus-service.c remove unused includes 2015-02-23 23:53:42 +01:00
dbus-service.h core: no need to list properties for PropertiesChanged messages anymore 2013-12-22 03:50:52 +01:00
dbus-slice.c remove unused includes 2015-02-23 23:53:42 +01:00
dbus-slice.h core: convert PID 1 to libsystemd-bus 2013-11-20 20:52:36 +01:00
dbus-snapshot.c sd-bus: drop bus parameter from message callback prototype 2015-04-29 18:36:25 +02:00
dbus-snapshot.h sd-bus: drop bus parameter from message callback prototype 2015-04-29 18:36:25 +02:00
dbus-socket.c remove unused includes 2015-02-23 23:53:42 +01:00
dbus-socket.h core: no need to list properties for PropertiesChanged messages anymore 2013-12-22 03:50:52 +01:00
dbus-swap.c remove unused includes 2015-02-23 23:53:42 +01:00
dbus-swap.h core: no need to list properties for PropertiesChanged messages anymore 2013-12-22 03:50:52 +01:00
dbus-target.c remove unused includes 2015-02-23 23:53:42 +01:00
dbus-target.h remove unused includes 2015-02-23 23:53:42 +01:00
dbus-timer.c Bug #944: Deletion of unnecessary checks before a few calls of systemd functions 2015-08-17 10:45:30 +02:00
dbus-timer.h timer: timer can be a transient unit 2014-12-08 16:28:56 +01:00
dbus-unit.c core: report root cgroup as "/" over the bus 2015-08-25 20:42:50 +02:00
dbus-unit.h sd-bus: drop bus parameter from message callback prototype 2015-04-29 18:36:25 +02:00
dbus.c core: dbus: track bus names per unit 2015-08-06 10:14:41 +02:00
dbus.h core: rework policykit hookup 2015-02-18 18:56:27 +01:00
device.c device: never act on mount events for devices if device support is not available 2015-05-21 20:49:24 +02:00
device.h device: rework how we enter tentative state 2015-04-24 12:29:05 +02:00
execute.c core: optionally create LOGIN_PROCESS or USER_PROCESS utmp entries 2015-08-24 22:46:45 +02:00
execute.h execute: make the invalid entry of the enum -1 2015-08-25 21:15:54 +02:00
failure-action.c core: rename SystemdRunningAs to ManagerRunningAs 2015-05-11 22:51:49 +02:00
failure-action.h core: introduce "poweroff" as new failure action types 2014-08-22 18:10:31 +02:00
hostname-setup.c hostname: Allow comments in /etc/hostname 2015-05-19 12:18:08 +02:00
hostname-setup.h
ima-setup.c ima-setup: write policy one line at a time 2015-06-11 09:05:02 -04:00
ima-setup.h
job.c core: adjust job completion message log levels 2015-07-21 19:28:17 +02:00
job.h core: when propagating restart requests due to deps, downgrade restart to try-restart 2015-05-19 18:21:19 +02:00
kill.c util: split out signal-util.[ch] from util.[ch] 2015-05-29 20:14:11 +02:00
kill.h core: introduce new KillMode=mixed which sends SIGTERM only to the main process, but SIGKILL to all daemon processes 2014-01-29 13:42:06 +01:00
killall.c core: log oom during killing spree 2015-06-09 22:07:27 +02:00
killall.h core: fix order of parameters in broadcast_signal() 2013-11-25 23:03:03 +01:00
kmod-setup.c core: downgrade "Module inserted" message for kmod to DEBUG 2015-08-21 15:28:01 +02:00
kmod-setup.h
load-dropin.c remove unused includes 2015-02-23 23:53:42 +01:00
load-dropin.h Move dropin listing to shared 2014-12-16 00:30:33 -05:00
load-fragment-gperf.gperf.m4 core: optionally create LOGIN_PROCESS or USER_PROCESS utmp entries 2015-08-24 22:46:45 +02:00
load-fragment.c core: optionally create LOGIN_PROCESS or USER_PROCESS utmp entries 2015-08-24 22:46:45 +02:00
load-fragment.h core: optionally create LOGIN_PROCESS or USER_PROCESS utmp entries 2015-08-24 22:46:45 +02:00
locale-setup.c remove unused includes 2015-02-23 23:53:42 +01:00
locale-setup.h rework systemd's own process environment handling/passing 2013-07-26 18:40:40 +02:00
loopback-setup.c sd-netlink: rename from sd-rtnl 2015-06-13 19:52:54 +02:00
loopback-setup.h
machine-id-setup.c namespace helpers: Allow entering a UID namespace 2015-08-17 08:52:13 +00:00
machine-id-setup.h machine-id-setup: add a machine_id_commit call to commit on disk a transient machine-id 2014-12-03 03:41:19 +01:00
macros.systemd.in rpm: add user macros 2014-10-27 22:34:09 -04:00
main.c core: s/reexection/reexecution/ typo fix 2015-08-07 17:13:15 +02:00
Makefile
manager.c core: dbus: track bus names per unit 2015-08-06 10:14:41 +02:00
manager.h core: dbus: track bus names per unit 2015-08-06 10:14:41 +02:00
mount-setup.c core: fix missing bus-util.h include 2015-07-05 12:24:29 +02:00
mount-setup.h mount-setup: remove mount_setup_late() 2014-11-14 15:18:56 +01:00
mount.c mount: remove obsolete -n 2015-07-28 11:31:45 +02:00
mount.h Default to /usr/bin/u?mount, configurable, rather than hard-coded /bin/u?mount. 2015-05-13 15:48:28 +02:00
namespace.c util: introduce CMSG_FOREACH() macro and make use of it everywhere 2015-06-10 19:29:47 +02:00
namespace.h core: Private*/Protect* options with RootDirectory 2015-05-18 18:47:45 +02:00
org.freedesktop.systemd1.conf systemctl: add add-wants and add-requires verbs 2014-10-08 12:44:00 +02:00
org.freedesktop.systemd1.policy.in.in core: rework policykit hookup 2015-02-18 18:56:27 +01:00
org.freedesktop.systemd1.service
path.c core: include unit in path state transition debug logging. 2015-07-10 16:40:46 -07:00
path.h remove unused includes 2015-02-23 23:53:42 +01:00
scope.c core: only set event source name when we create an event source 2015-05-13 18:30:14 +02:00
scope.h remove unused includes 2015-02-23 23:53:42 +01:00
selinux-access.c selinux: fix regression of systemctl subcommands when absolute unit file paths are specified 2015-08-26 15:00:05 +09:00
selinux-access.h remove unused includes 2015-02-23 23:53:42 +01:00
selinux-setup.c remove unused includes 2015-02-23 23:53:42 +01:00
selinux-setup.h mac: add mac_ prefix to distinguish origin security apis 2014-10-28 14:31:48 +01:00
service.c sd-bus: do not connect to dbus-1 socket when kdbus is available 2015-08-11 20:49:36 +02:00
service.h service: remove unnecessary forward declare 2015-04-05 08:45:56 +02:00
show-status.c core: add missing show-status.[ch] 2014-03-03 22:27:25 +01:00
show-status.h core: add missing show-status.[ch] 2014-03-03 22:27:25 +01:00
shutdown.c shared: add terminal-util.[ch] 2015-04-11 00:34:02 +02:00
slice.c core: remove generic job completion messages from unit vtables 2015-07-21 19:24:20 +02:00
slice.h remove unused includes 2015-02-23 23:53:42 +01:00
smack-setup.c fileio: consolidate write_string_file*() 2015-07-06 19:19:25 -04:00
smack-setup.h mac: add mac_ prefix to distinguish origin security apis 2014-10-28 14:31:48 +01:00
snapshot.c tree-wide: introduce mfree() 2015-07-31 19:56:38 +02:00
snapshot.h remove unused includes 2015-02-23 23:53:42 +01:00
socket.c sd-bus: do not connect to dbus-1 socket when kdbus is available 2015-08-11 20:49:36 +02:00
socket.h core: expose consumed CPU time per unit 2015-03-02 12:15:25 +01:00
swap.c core: remove generic job completion messages from unit vtables 2015-07-21 19:24:20 +02:00
swap.h core: expose consumed CPU time per unit 2015-03-02 12:15:25 +01:00
system.conf Do not advertise .d snippets over main config file 2015-03-03 19:10:21 -05:00
systemd.pc.in build-sys: move systemd.pc from pkgconfiglibdir back into pkgconfigdatadir 2015-04-21 20:35:17 +02:00
target.c core: remove generic job completion messages from unit vtables 2015-07-21 19:24:20 +02:00
target.h remove unused includes 2015-02-23 23:53:42 +01:00
timer.c Bug #944: Deletion of unnecessary checks before a few calls of systemd functions 2015-08-17 10:45:30 +02:00
timer.h remove unused includes 2015-02-23 23:53:42 +01:00
transaction.c core: properly handle jobs that are suppressed to JOB_NOPs when propagating restarts 2015-05-21 20:49:24 +02:00
transaction.h core: convert PID 1 to libsystemd-bus 2013-11-20 20:52:36 +01:00
umount.c core: fix CID 996302 2015-06-12 10:24:26 +05:30
umount.h
unit-printf.c core: rename SystemdRunningAs to ManagerRunningAs 2015-05-11 22:51:49 +02:00
unit-printf.h specifier: rework specifier calls to return proper error message 2013-09-17 10:06:50 -05:00
unit.c core: unit: remove bus slot after calling unit_done() 2015-08-06 12:56:15 +02:00
unit.h core: dbus: track bus names per unit 2015-08-06 10:14:41 +02:00
user.conf core: Support system.conf.d and user.conf.d directories in the usual search paths 2014-11-29 13:55:31 -05:00