将用户切换到 root 并运行执行脚本的其余部分

将用户切换到 root 并运行执行脚本的其余部分

我将用户更改为 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 位。

相关内容