mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
activation: Change permissions on /root to #o700.
Reported by Alex Griffin <a@ajgrf.com>. Fixes <http://bugs.gnu.org/27135>. * gnu/build/activation.scm (add-user): When UID is zero, add 'chmod' call. * gnu/tests/base.scm (run-basic-test)["permissions on /root"]: New test.
This commit is contained in:
parent
151cb9738a
commit
41db5a7563
2 changed files with 12 additions and 2 deletions
|
@ -130,14 +130,15 @@ (define* (add-user name group
|
|||
;; 'useradd' fails with "Cannot determine your user name" if the root
|
||||
;; account doesn't exist. Thus, for bootstrapping purposes, create that
|
||||
;; one manually.
|
||||
(begin
|
||||
(let ((home (or home "/root")))
|
||||
(call-with-output-file "/etc/shadow"
|
||||
(cut format <> "~a::::::::~%" name))
|
||||
(call-with-output-file "/etc/passwd"
|
||||
(cut format <> "~a:x:~a:~a:~a:~a:~a~%"
|
||||
name "0" "0" comment home shell))
|
||||
(chmod "/etc/shadow" #o600)
|
||||
(copy-account-skeletons (or home "/root"))
|
||||
(copy-account-skeletons home)
|
||||
(chmod home #o700)
|
||||
#t)
|
||||
|
||||
;; Use 'useradd' from the Shadow package.
|
||||
|
|
|
@ -199,6 +199,15 @@ (define (user-owned? file)
|
|||
',users+homes))
|
||||
marionette)))
|
||||
|
||||
(test-equal "permissions on /root"
|
||||
#o700
|
||||
(let ((root-home #$(any (lambda (account)
|
||||
(and (zero? (user-account-uid account))
|
||||
(user-account-home-directory
|
||||
account)))
|
||||
(operating-system-user-accounts os))))
|
||||
(stat:perms (marionette-eval `(stat ,root-home) marionette))))
|
||||
|
||||
(test-equal "no extra home directories"
|
||||
'()
|
||||
|
||||
|
|
Loading…
Reference in a new issue