aboutsummaryrefslogtreecommitdiff
path: root/src/connection
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2021-07-23 12:23:25 -0700
committerSean Whitton <spwhitton@spwhitton.name>2021-07-24 12:39:46 -0700
commit10f28b3adb1ed130d116ae3d4c81d098d214d2d8 (patch)
treedd5d0d1faf6e9bcd6962fac6474f9948afd46890 /src/connection
parentb6a83a1bd1c7c69316374c510aaff4b13054271e (diff)
downloadconsfigurator-10f28b3adb1ed130d116ae3d4c81d098d214d2d8.tar.gz
fix comments about -c argument to su(1)
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Diffstat (limited to 'src/connection')
-rw-r--r--src/connection/setuid.lisp6
-rw-r--r--src/connection/su.lisp3
2 files changed, 6 insertions, 3 deletions
diff --git a/src/connection/setuid.lisp b/src/connection/setuid.lisp
index e61222b..d1df1b6 100644
--- a/src/connection/setuid.lisp
+++ b/src/connection/setuid.lisp
@@ -48,8 +48,10 @@
(datadir
(ensure-directory-pathname
(stripln
- ;; su(1) is not POSIX but very likely to be present
- ;; TODO however, this use of su(1) uses a non-portable -c argument
+ ;; su(1) is not POSIX but very likely to be present. Note that
+ ;; the -c argument here is to the user's login shell, not the
+ ;; -c argument to su(1) on, e.g., FreeBSD. So should be fairly
+ ;; portable.
(mrun
"su" to "-c"
"echo ${XDG_CACHE_HOME:-$HOME/.cache}/consfigurator/data/")))))
diff --git a/src/connection/su.lisp b/src/connection/su.lisp
index 05df15d..785302f 100644
--- a/src/connection/su.lisp
+++ b/src/connection/su.lisp
@@ -28,7 +28,8 @@
(defclass su-connection (shell-wrap-connection)
((user :initarg :user)))
-;; TODO -c is not portable to other su implementations.
+;; Note that the -c here is an argument to the user's login shell, not the -c
+;; argument to su(1) on, e.g., FreeBSD. So this should be fairly portable.
(defmethod connection-shell-wrap ((connection su-connection) cmd)
(format nil "su ~A -c ~A"
(escape-sh-token (slot-value connection 'user))