use*_*993 3 linux sudo bash passwords command-line
我经常在晚上回家之前让我的工作计算机运行一些耗时的计算。完成后,我希望它关闭。但是,由于关闭需要 root 权限,因此必须使用sudo执行。显然,7 小时后我没有在那里输入我的密码,到目前为止,我不得不以 root 身份执行整个命令列表(cmd1;cmd2;cmd3;...shutdown)——这并不理想。
有没有办法可以在命令列表的末尾“预授权”sudo?以某种方式我可以在执行开始时完成我的密码,这样 bash 以后就不需要我了?
谢谢!
要完成第一个答案:
设置一种方式,让您的非特权耗时计算可以启动在特权 shell 中等待的关闭(由sudo -s或启动sudo su)。使用文件作为标志是一种很好的、简单的方法。所以,在你的非特权 shell 中,做
cmd1; cmd2; cmd3; > ok_to_shutdown_now
Run Code Online (Sandbox Code Playgroud)
并在您的特权 shell 中,运行一个脚本,上面写着
while [ ! -f ok_to_shutdown_now ]
do
sleep 60
done
shutdown
Run Code Online (Sandbox Code Playgroud)
小智 1
您可以在 root 环境中运行命令,这样您在计算机上输入一次密码,然后root无需输入密码即可运行命令。
您可以使用
sudo -s
Run Code Online (Sandbox Code Playgroud)
或者
sudo su
Run Code Online (Sandbox Code Playgroud)
(阅读此处了解差异)
这将为您提供 root 权限并阻止您再次输入密码。然后,您可以在此之后运行 sudo 命令,它们不会提示您输入密码。
| 归档时间: |
|
| 查看次数: |
2109 次 |
| 最近记录: |