summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2020-03-17 22:10:40 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2020-03-17 23:01:07 -0400
commitf6b950319cb41822e2b3f1b55357037da433e1df (patch)
treecc8afa374809a46044b36c58bb09d19e5060b556
parentce9fc7e8ab821d12977bdf4ca9bff3e20eb16c07 (diff)
downloadpatches-f6b950319cb41822e2b3f1b55357037da433e1df.tar
patches-f6b950319cb41822e2b3f1b55357037da433e1df.tar.gz
gnu: system: Export %sudoers-specification.
Exporting this variable allows reusing the default value of the `sudoers-file' field when configuring it. * gnu/system.scm (gnu): Export %sudoers-specification. * doc/guix.texi (Invoking guix deploy): Document an example, to use with 'guix deploy'.
-rw-r--r--doc/guix.texi24
-rw-r--r--gnu/system.scm1
2 files changed, 23 insertions, 2 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index a0920adc1c..086b1d9751 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -26996,8 +26996,28 @@ login over SSH may be forbidden in some cases. To work around this,
@command{guix deploy} can log in as an unprivileged user and employ
@code{sudo} to escalate privileges. This will only work if @code{sudo} is
currently installed on the remote and can be invoked non-interactively as
-@code{user}. That is: the line in @code{sudoers} granting @code{user} the
-ability to use @code{sudo} must contain the @code{NOPASSWD} tag.
+@code{user}. That is, the line in @code{sudoers} granting @code{user} the
+ability to use @code{sudo} must contain the @code{NOPASSWD} tag. This can
+be accomplished with the following operating system configuration snippet:
+
+@lisp
+(use-modules ...
+ (gnu system) ;for %sudoers-specification))
+
+(define %user "username")
+
+(operating-system
+ ...
+ (sudoers-file
+ (plain-file "sudoers"
+ (string-append (plain-file-content %sudoers-specification)
+ (format #f "~a ALL = NOPASSWD: ALL~%"
+ %username)))))
+
+@end lisp
+
+For more information regarding the format of the @file{sudoers} file,
+consult @command{man sudoers}.
@deftp {Data Type} machine
This is the data type representing a single machine in a heterogeneous Guix
diff --git a/gnu/system.scm b/gnu/system.scm
index cfc730a41c..06c58c27ba 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -138,6 +138,7 @@
local-host-aliases
%root-account
%setuid-programs
+ %sudoers-specification
%base-packages
%base-firmware))