Files
macos-system/modules/00a-sudo-settings.sh
2025-10-17 23:41:39 +02:00

55 lines
1.6 KiB
Bash

#!/usr/bin/env zsh
# vi: set ft=zsh tw=80 ts=2
function ensureTRBernsteinCanUpdateSystem() {
local username=$1
local sudoersFile='/etc/sudoers.d/allow-softwareupdate-for-all'
[[ -f ${sudoersFile} ]] && return
cat <<- SUDOERS > "${sudoersFile}"
trbernstein ALL=(root) NOPASSWD: /usr/sbin/softwareupdate -irR --user admin
SUDOERS
chown root:wheel "${sudoersFile}" || return 10
chmod u=rw,g=r,o= "${sudoersFile}" || return 20
}
function configure_system() {
lop -y h1 -- -i 'Configure sudoers files'
ensurePathOrLogError ${dstDir} 'Could not install binaries.' || return 10
indicateActivity -- "Allow trbernstein user to install updates using softwareupdate" ensureTRBernsteinCanUpdateSystem
}
function getExecPrerequisites() {
cmds=(
[cat]=''
[chown]=''
[chmod]=''
)
}
function getUsage() {
read -r -d '' text <<- USAGE
Usage:
$cmdName show-questions [<modkey> <modans>]...
$cmdName [-v] [-d FILE]
Add sudo rules to:
1. allow trbernstein user to install updates using softwareupdate
Options:
-d FILE, --logfile FILE Print log message to logfile instead of stdout.
-v, --verbose Be more verbose.
----
$cmdName 0.1.0
Copyright (C) 2022 Rezart Qelibari, Astzweig GmbH & Co. KG
License EUPL-1.2. There is NO WARRANTY, to the extent permitted by law.
USAGE
print -- ${text}
}
if [[ "${ZSH_EVAL_CONTEXT}" == toplevel ]]; then
_DIR="${0:A:h}"
test -f "${ASTZWEIG_MACOS_SYSTEM_LIB}" || { echo 'This module requires macos-system library. Please run again with macos-system library provieded as a path in ASTZWEIG_MACOS_SYSTEM_LIB env variable.'; return 10 }
source "${ASTZWEIG_MACOS_SYSTEM_LIB}"
module_main $0 "$@"
fi