有没有办法运行 sudo 而不运行其他不必要的命令?

有没有办法运行 sudo 而不运行其他不必要的命令?

我想运行两个 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文件。

相关内容