Systemd/src
Lennart Poettering adacb9575a bus: introduce "trusted" bus concept and encode access control in object vtables
Introduces a new concept of "trusted" vs. "untrusted" busses. For the
latter libsystemd-bus will automatically do per-method access control,
for the former all access is automatically granted. Per-method access
control is encoded in the vtables: by default all methods are only
accessible to privileged clients. If the SD_BUS_VTABLE_UNPRIVILEGED flag
is set for a method it is accessible to unprivileged clients too. By
default whether a client is privileged is determined via checking for
its CAP_SYS_ADMIN capability, but this can be altered via the
SD_BUS_VTABLE_CAPABILITY() macro that can be ORed into the flags field
of the method.

Writable properties are also subject to SD_BUS_VTABLE_UNPRIVILEGED and
SD_BUS_VTABLE_CAPABILITY() for controlling write access to them. Note
however that read access is unrestricted, as PropertiesChanged messages
might send out the values anyway as an unrestricted broadcast.

By default the system bus is set to "untrusted" and the user bus is
"trusted" since per-method access control on the latter is unnecessary.

On dbus1 busses we check the UID of the caller rather than the
configured capability since the capability cannot be determined without
race. On kdbus the capability is checked if possible from the attached
meta-data of a message and otherwise queried from the sending peer.

This also decorates the vtables of the various daemons we ship with
these flags.
2013-12-10 16:52:49 +00:00
..
ac-power
activate remove unused variables 2013-11-18 23:04:16 +01:00
analyze trivial coding style clean ups 2013-12-03 22:27:45 +01:00
ask-password clients: unify how we invoke getopt_long() 2013-11-06 18:28:39 +01:00
backlight Remove duplicate includes 2013-11-18 20:28:55 -05:00
binfmt clients: unify how we invoke getopt_long() 2013-11-06 18:28:39 +01:00
boot bootctl: remove unused options from getopt_long 2013-11-09 14:11:56 +01:00
bootchart Bring bootchart code in line with CODING_STYLE 2013-12-10 07:40:55 -05:00
bus-proxyd bus-proxyd: Fix CLI help. --bus-path is also usable as -p. 2013-11-30 16:55:30 +10:00
cgls clients: unify how we invoke getopt_long() 2013-11-06 18:28:39 +01:00
cgroups-agent cgroups-agent: down-grade log level 2013-11-25 17:40:53 +01:00
cgtop clients: unify how we invoke getopt_long() 2013-11-06 18:28:39 +01:00
core bus: introduce "trusted" bus concept and encode access control in object vtables 2013-12-10 16:52:49 +00:00
cryptsetup util: unify reading of /proc/cmdline 2013-11-06 03:15:16 +01:00
dbus1-generator dbus1: make gcc shut up 2013-12-03 02:08:35 +01:00
delta Get rid of our reimplementation of basename 2013-12-06 21:29:55 -05:00
detect-virt clients: unify how we invoke getopt_long() 2013-11-06 18:28:39 +01:00
efi-boot-generator efi-boot-generator: don't mount /boot eagerly 2013-11-21 12:36:05 +01:00
fsck fsck,fstab-generator: be lenient about missing fsck.<type> 2013-11-15 22:53:14 -05:00
fstab-generator fstab-generator: use RequiresOverridable for fsck units 2013-11-15 22:53:14 -05:00
getty-generator getty-generator: modernizations 2013-10-31 01:43:38 +01:00
gpt-auto-generator bus: add generator that turns old dbus1 activation files into .busname + .service units 2013-12-03 01:13:48 +01:00
gudev
hostname bus: introduce "trusted" bus concept and encode access control in object vtables 2013-12-10 16:52:49 +00:00
initctl trivial coding style clean ups 2013-12-03 22:27:45 +01:00
journal Ensure unit is journaled for short-lived or oneshot processes 2013-12-10 07:40:55 -05:00
kernel-install kernel-install: fix help output 2013-12-09 23:19:16 -05:00
libsystemd-bus bus: introduce "trusted" bus concept and encode access control in object vtables 2013-12-10 16:52:49 +00:00
libsystemd-daemon
libsystemd-id128 Use assert_return in more of the public API 2013-12-02 23:13:58 +01:00
libsystemd-rtnl rtnl: add link_get_flags 2013-12-04 14:15:13 +01:00
libudev libudev: hwdb - use libudev not systemd logging 2013-12-10 16:37:26 +01:00
locale bus: introduce "trusted" bus concept and encode access control in object vtables 2013-12-10 16:52:49 +00:00
login bus: introduce "trusted" bus concept and encode access control in object vtables 2013-12-10 16:52:49 +00:00
machine bus: introduce "trusted" bus concept and encode access control in object vtables 2013-12-10 16:52:49 +00:00
machine-id-setup clients: unify how we invoke getopt_long() 2013-11-06 18:28:39 +01:00
modules-load trivial coding style clean ups 2013-12-03 22:27:45 +01:00
network networkd: add link-sense and simplify state-machine a bit 2013-12-04 14:15:13 +01:00
notify clients: unify how we invoke getopt_long() 2013-11-06 18:28:39 +01:00
nspawn Get rid of our reimplementation of basename 2013-12-06 21:29:55 -05:00
nss-myhostname Remove duplicate includes 2013-11-18 20:28:55 -05:00
python-systemd trivial coding style clean ups 2013-12-03 22:27:45 +01:00
quotacheck util: unify reading of /proc/cmdline 2013-11-06 03:15:16 +01:00
random-seed random-seed: improve debugging messages a bit 2013-11-15 22:53:14 -05:00
rc-local-generator rc-local: use access(X_OK) to check if files are executable 2013-10-29 19:34:59 +01:00
readahead clients: unify how we invoke getopt_long() 2013-11-06 18:28:39 +01:00
remount-fs
reply-password
rfkill rfkill: Avoid error when state restore is disabled 2013-12-06 16:44:38 +01:00
run logind,machined,run: properly invoke StartTransientUnit() bus call 2013-11-21 21:12:36 +01:00
shared Get rid of our reimplementation of basename 2013-12-06 21:29:55 -05:00
shutdownd
sleep clients: unify how we invoke getopt_long() 2013-11-06 18:28:39 +01:00
socket-proxy Revert "socket-proxyd: Add --listener option for listener/destination pairs." 2013-11-27 20:55:15 +01:00
sysctl Remove duplicate includes 2013-11-18 20:28:55 -05:00
system-update-generator
systemctl systemctl: fix 'is-enabled' 2013-12-08 19:26:51 -05:00
systemd bus: introduce "trusted" bus concept and encode access control in object vtables 2013-12-10 16:52:49 +00:00
test test: cgroup-util - do not fail if cpu controller is not available 2013-12-08 06:36:39 +01:00
timedate bus: introduce "trusted" bus concept and encode access control in object vtables 2013-12-10 16:52:49 +00:00
tmpfiles clients: unify how we invoke getopt_long() 2013-11-06 18:28:39 +01:00
tty-ask-password-agent clients: unify how we invoke getopt_long() 2013-11-06 18:28:39 +01:00
udev trivial coding style clean ups 2013-12-03 22:27:45 +01:00
update-utmp bus: use new property retrieval calls everywhere 2013-11-07 22:17:19 +01:00
vconsole
.gitignore
Makefile