我想运行两个 sudo 命令,将输出从一个命令传输到另一个命令。但是,当我最近没有输入 sudo 密码时,它会提示我输入密码。管道和两个 sudo 似乎搞砸了,所以我无法正确输入密码。
我的解决方案是运行“sudo ls”或其他提示我输入密码的命令,这样管道命令就可以工作而无需要求我输入密码。这让我想知道是否有一种“正确”的方式来运行 sudo ,这样你就不会运行其他一些无意义的命令。 sudo 的联机帮助页似乎没有提到这一点。
答案1
您正在寻找的是sudo -v
.从手册页:
-v, --validate
Update the user's cached credentials, authenticating the user
if necessary.
(以及明确删除凭据的对应项sudo -k
:)
答案2
添加到 Anthon 的答案中,如果您具有服务器的 root 访问权限,则可以NOPASSWD:
在 中定义用户的行中添加/etc/sudoers
。添加后NOPASSWD:
,sudo 不会提示您输入密码。
如果这是您当前的行:
myuser ALL=(ALL) <commands>
将其更改为:
myuser ALL=(ALL) NOPASSWD: <commands>
PS:用于visudo
编辑/etc/sudoers文件。