diff options
| author | Michael Hoang <enzime@users.noreply.github.com> | 2024-10-22 10:20:43 +1100 |
|---|---|---|
| committer | Michael Hoang <enzime@users.noreply.github.com> | 2024-10-22 16:02:21 +1100 |
| commit | ea7e178ad4113c2134c5b734e3198ebbc591af0b (patch) | |
| tree | 84c75aa3a5cf0ffb9d6b1f8febbd3823d00d9f80 /modules | |
| parent | 8451125cf8eab07056da090a4616ce46a1952ff9 (diff) | |
users: use `lib.escapeShellArg` for `createhomedir`
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/users/default.nix | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/modules/users/default.nix b/modules/users/default.nix index f57dfa5..08785be 100644 --- a/modules/users/default.nix +++ b/modules/users/default.nix @@ -149,19 +149,20 @@ in echo "setting up users..." >&2 ${concatMapStringsSep "\n" (v: let + name = lib.escapeShellArg v.name; dsclUser = lib.escapeShellArg "/Users/${v.name}"; in '' ${optionalString cfg.forceRecreate '' - u=$(id -u ${lib.escapeShellArg v.name} 2> /dev/null) || true + u=$(id -u ${name} 2> /dev/null) || true if [[ "$u" -eq ${toString v.uid} ]]; then echo "deleting user ${v.name}..." >&2 - sysadminctl -deleteUser ${lib.escapeShellArg v.name} 2> /dev/null + sysadminctl -deleteUser ${name} 2> /dev/null else echo "[1;31mwarning: existing user '${v.name}' has unexpected uid $u, skipping...[0m" >&2 fi ''} - u=$(id -u ${lib.escapeShellArg v.name} 2> /dev/null) || true + u=$(id -u ${name} 2> /dev/null) || true if [[ -n "$u" && "$u" -ne "${toString v.uid}" ]]; then echo "[1;31mwarning: existing user '${v.name}' has unexpected uid $u, skipping...[0m" >&2 else @@ -169,7 +170,7 @@ in echo "creating user ${v.name}..." >&2 sysadminctl -addUser ${lib.escapeShellArgs [ v.name "-UID" v.uid "-GID" v.gid "-fullName" v.description "-home" v.home "-shell" (shellPath v.shell) ]} dscl . -create ${dsclUser} IsHidden ${if v.isHidden then "1" else "0"} - ${optionalString v.createHome "createhomedir -cu '${v.name}'"} + ${optionalString v.createHome "createhomedir -cu ${name}"} fi # Always set the shell path, in case it was updated dscl . -create ${dsclUser} UserShell ${lib.escapeShellArg (shellPath v.shell)} |
