Maj*_*jal 40 linux sudo command-line credentials
这是黑客行为。
我有时需要在终端中快速运行一个又一个的程序,其中一些命令需要,sudo而另一些则不需要,例如:
$ command1; c2; sudo c3 | c4; c5 | sudo c6; c7; sudo c8
Run Code Online (Sandbox Code Playgroud)
我想sudo先启动(也称为输入密码) ,这样等待密码command1时就不会出现瓶颈。c3
大多数时候,我会sudo使用在键盘上随意输入的随机命令,例如:
$ sudo laksdfjlskjf; command1; c2; sudo c3 | c4; c5 | sudo c6; c7; sudo c8
Run Code Online (Sandbox Code Playgroud)
它说command not foundfor laksdfjlskjf,但我已经成功完成了我需要做的事情:启动sudo。没有瓶颈c3。
问题:
有没有比输入(非)随机字符来启动更好的方法sudo?是否有一个不执行任何操作并且可以安全使用的安全命令sudo?
Kam*_*ski 62
sudo -v正是为了这个。从man 8 sudo:
-v,--validate
更新用户的缓存凭据,必要时对用户进行身份验证。对于 sudoers 插件,sudo默认情况下这会将超时时间再延长 5 分钟,但不会运行命令。并非所有安全策略都支持缓存凭据。
补充命令是sudo -k,它使用户缓存的凭据无效。
虽然我认为sudo -v这是正确的事情,但我承认人们必须记住在不查阅手册的情况下使用它的选项。这是一个缺点。作为替代方案,几乎任何无害的命令都可以用来sudo实现您的目标;-v因此,如果您暂时不记得,请使用sudo true,sudo echo或sudo date(学分转到链接的答案)。
sudo -v在您原来的方法有效的情况下应该对您有用。在您的示例中,如果command1并且c2花费的时间比sudo忘记缓存的凭据所需的时间更长,那么sudo c3 将要求您提供密码。等等。sudo -v可以替换您的sudo laksdfjlskjf,但如果前面的命令长时间运行,则两者sudo都不起作用。
如果您要运行的行在某些命令之前包含长时间运行的命令(不排除sudo命令)sudo,请考虑sudo -v在后台足够频繁地重复。例子:
sudo -v # in the foreground, so you can input your password if needed
while sudo -v; do sleep 58; done &
command1; c2; sudo c3 | c4; c5 | sudo c6; c7; sudo c8; kill "$!"
Run Code Online (Sandbox Code Playgroud)
小智 23
怎么样true?描述:真正的实用程序总是以退出代码零返回。
如果您想要更短的内容,请尝试id。它返回用户身份(并且不会以任何方式更改系统)。
| 归档时间: |
|
| 查看次数: |
4599 次 |
| 最近记录: |