diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-03-08 22:48:04 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-03-08 23:21:59 +0100 |
commit | d429878daf3e3eb21660ed80934b1d4b0603f6e1 (patch) | |
tree | 2bfdd0ed57745f37232202d9e709a7148c7ec0f2 /gnu/services | |
parent | 74c2339fffcbbbc866c9c8f9a75a1aa8bb0a91dd (diff) | |
download | gnu-guix-d429878daf3e3eb21660ed80934b1d4b0603f6e1.tar gnu-guix-d429878daf3e3eb21660ed80934b1d4b0603f6e1.tar.gz |
activation: Shared system home directories are now 555 and root-owned.
Fixes <https://bugs.gnu.org/34788>.
Reported by Jack Hill <jackhill@jackhill.us>.
Regression introduced by the combination of
8bb76f3d44c1f5ffec8011819494db306a51d801 and
0ae735bcc8ff7fdc89d67b492bdee9091ee19e86: /var/empty would be 700 and
owned by one of the system accounts (thus inaccessible to others), and
/var/run/dbus would be 700 as well, thereby preventing D-Bus clients
from connecting to the daemon.
* gnu/build/activation.scm (duplicates): New procedure.
(activate-users+groups)[system-accounts]: New variable.
Use it. Make shared system account home directories #o555 and
root-owned.
* gnu/services/dbus.scm (dbus-activation): Make /var/run/dbus #o755.
* gnu/tests/base.scm (run-basic-test): Test the ownership and
permissions of /var/empty.
Diffstat (limited to 'gnu/services')
-rw-r--r-- | gnu/services/dbus.scm | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm index 1e24d93ccb..606ee0c2f5 100644 --- a/gnu/services/dbus.scm +++ b/gnu/services/dbus.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -150,7 +150,11 @@ includes the @code{etc/dbus-1/system.d} directories of each package listed in (let ((user (getpwnam "messagebus"))) (chown "/var/run/dbus" - (passwd:uid user) (passwd:gid user))) + (passwd:uid user) (passwd:gid user)) + + ;; This directory contains the daemon's socket so it must be + ;; world-readable. + (chmod "/var/run/dbus" #o755)) (unless (file-exists? "/etc/machine-id") (format #t "creating /etc/machine-id...~%") |