我将用户更改为 root 并在 shell 脚本中以 root 身份运行其余命令。
答案1
我会检查电流是否uid
为零,如果不是,则以 root 身份重新执行脚本,例如,
[[ $UID = 0 ]] || exec sudo $0 "$@"
例如,使脚本的第二行(在 之后"#!/bin/bash"
)将执行所要求的操作。
如果开头有很长的部分不需要原始用户,请使用 if 语句来执行此操作:
#!/bin/bash
if [[ $UID = 0 ]]
then
: do privileged stuff
else
: do unprivileged stuff
exec sudo $0 "$@"
fi
该$UID
值是 bash 特定的(使用是因为问题被标记为bash
)。更可移植的脚本将使用id
.
答案2
您还可以使用 setuid 位。