summary refs log tree commit diff
path: root/doc
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2022-05-29 02:00:00 +0200
committerTobias Geerinckx-Rice <me@tobias.gr>2022-06-05 02:00:08 +0200
commit7fe382892af614940f70a0ac57ed5976ff4e3da6 (patch)
treef9dbf5f85cced407d61d1f79519ec0e5ab2a947b /doc
parent3783a7b8e47eec3ab60f5d4a6db47c4795e021f6 (diff)
downloadguix-7fe382892af614940f70a0ac57ed5976ff4e3da6.tar.gz
doc: Expand ‘setuid-root’-only references.
* doc/guix.texi (Setuid Programs, Service Reference):
Don't assume setuid-root as the only possibility.
Diffstat (limited to 'doc')
-rw-r--r--doc/guix.texi19
1 files changed, 10 insertions, 9 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 96d545698f..ea133d519a 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -339,7 +339,7 @@ System Configuration
 * Keyboard Layout::             How the system interprets key strokes.
 * Locales::                     Language and cultural convention settings.
 * Services::                    Specifying system services.
-* Setuid Programs::             Programs running with root privileges.
+* Setuid Programs::             Programs running with elevated privileges.
 * X.509 Certificates::          Authenticating HTTPS servers.
 * Name Service Switch::         Configuring libc's name service switch.
 * Initial RAM Disk::            Linux-Libre bootstrapping.
@@ -15414,7 +15414,7 @@ instance to support new system services.
 * Keyboard Layout::             How the system interprets key strokes.
 * Locales::                     Language and cultural convention settings.
 * Services::                    Specifying system services.
-* Setuid Programs::             Programs running with root privileges.
+* Setuid Programs::             Programs running with elevated privileges.
 * X.509 Certificates::          Authenticating HTTPS servers.
 * Name Service Switch::         Configuring libc's name service switch.
 * Initial RAM Disk::            Linux-Libre bootstrapping.
@@ -35755,22 +35755,23 @@ Extra command line options for @code{nix-service-type}.
 @section Setuid Programs
 
 @cindex setuid programs
-Some programs need to run with ``root'' privileges, even when they are
+@cindex setgid programs
+Some programs need to run with elevated privileges, even when they are
 launched by unprivileged users.  A notorious example is the
 @command{passwd} program, which users can run to change their
 password, and which needs to access the @file{/etc/passwd} and
 @file{/etc/shadow} files---something normally restricted to root, for
-obvious security reasons.  To address that, these executables are
-@dfn{setuid-root}, meaning that they always run with root privileges
+obvious security reasons.  To address that, @command{passwd} should be
+@dfn{setuid-root}, meaning that it always runs with root privileges
 (@pxref{How Change Persona,,, libc, The GNU C Library Reference Manual},
 for more info about the setuid mechanism).
 
 The store itself @emph{cannot} contain setuid programs: that would be a
 security issue since any user on the system can write derivations that
 populate the store (@pxref{The Store}).  Thus, a different mechanism is
-used: instead of changing the setuid bit directly on files that are in
-the store, we let the system administrator @emph{declare} which programs
-should be setuid root.
+used: instead of changing the setuid or setgid bits directly on files that
+are in the store, we let the system administrator @emph{declare} which
+programs should be entrusted with these additional privileges.
 
 The @code{setuid-programs} field of an @code{operating-system}
 declaration contains a list of @code{<setuid-program>} denoting the
@@ -38000,7 +38001,7 @@ pointing to the given file.
 @defvr {Scheme Variable} setuid-program-service-type
 Type for the ``setuid-program service''.  This service collects lists of
 executable file names, passed as gexps, and adds them to the set of
-setuid-root programs on the system (@pxref{Setuid Programs}).
+setuid and setgid programs on the system (@pxref{Setuid Programs}).
 @end defvr
 
 @defvr {Scheme Variable} profile-service-type