Sudo 在长时间运行的脚本期间超时

Cha*_*een 7 sudo

我有一个长时间运行的脚本,它发出几个sudo前置命令。脚本的执行时间是可变的,sudo在脚本运行时偶尔会超时,这意味着我需要重新输入密码。

如何在不需要检查程序并确保它仍在运行的情况下运行此脚本?

Cha*_*een 9

如果脚本本身作为 运行sudo,则在脚本完成运行之前它不会超时。为了确保sudo用于运行脚本,我在脚本顶部附近插入了以下几行:

if [ `whoami` != 'root' ];
then
    echo "This program needs to be run using 'sudo'"
    exit
fi
Run Code Online (Sandbox Code Playgroud)

这可确保脚本以 开头sudo,并且不会尝试存储密码...

  • @jab 您可以使用 `su "$(logname)"` 降级,例如 `su "$(logname)" -c 'echo $USER'` (3认同)
  • 如果只有部分脚本需要使用 sudo 运行而其余部分不应该运行(例如,在用户文件夹中创建具有 root 所有权的文件可能会出现问题),这可能是一个问题。 (2认同)