【发布时间】:2015-03-07 09:00:29
【问题描述】:
只有以sudo 开头的命令才会成功。
还有另一个命令列表,只有当用户在没有sudo 的情况下运行它们时才会成功。
我想从同一个脚本中执行所有这些命令。
我想避免执行以下操作:
#!/usr/bin/env bash
sudo sudo_command_one;
sudo sudo_command_two;
sudo sudo_command_three;
non_sudo_command;
sudo sudo_command_four;
之所以会这样,是因为 sudo 有超时,而这些命令可能会花费很长时间。我不想因为不得不偶尔重新输入 sudo 密码而感到负担。我也许可以无限期延长 sudo 的超时时间,但如果有更简单的方法,我也希望避免这种情况。
因此,我将像这样运行脚本:
sudo ./script
但这会阻止非 sudo 命令工作。
我需要哪些缺少的命令:
#!/usr/bin/env bash
sudo_command_one;
sudo_command_two;
sudo_command_three;
[turn sudo off for a moment]
non_sudo_command;
[ok, turn sudo back on]
sudo_command_four;
不幸的是,命令的顺序无法重新排列,因此我先运行所有 sudo 命令,然后运行所有非 sudo 命令(反之亦然)。
【问题讨论】:
-
您可以添加
sudo -v以更新 sudo 凭据上的时间戳。
标签: linux bash shell root sudo