运行 sudo 命令,在同一行指定密码

ada*_*sta 7 sudo

我想做这样的事情:

sudo -p password rm /a/file

我可以将密码和用户放在同一行吗?

我的须藤版本是 1.8.9p5

Tho*_*key 13

sudo 没有指定密码的选项,但您仍然可以在命令行上进行身份验证,如下所示:

echo password | sudo -u root --stdin
Run Code Online (Sandbox Code Playgroud)

要不就

echo password | sudo -S
Run Code Online (Sandbox Code Playgroud)

参考sudo 手册页

-S, 将提示写入标准错误并从标准输入读取密码,而不是使用终端设备。密码后必须跟一个换行符。--stdin

-uuser, user 以默认目标用户(通常是 root)以外的用户身份运行命令。用户可以是用户名或带有“#”字符前缀的数字用户 ID (UID)(例如,#0 表示 UID 0)。当作为 UID 运行命令时,许多 shell 要求使用反斜杠 ('\') 对“#”进行转义。某些安全策略可能会将 UID 限制为密码数据库中列出的那些。只要未设置 targetpw 选项,sudoers 策略就允许密码数据库中没有的 UID。其他安全策略可能不支持这一点。--user=

但是sudo已经开发了很长时间。检查版本:

-V, 打印版本字符串以及安全策略插件和任何 I/O 插件的版本字符串。如果调用用户已经是 root,该选项将显示在构建时传递给 configure 的参数,并且插件可能会显示更详细的信息,例如默认选项。--version
sudo-Vsudo

2013年增加了对多头期权的支持。

除了认证,你需要的东西sudo去做,比如,一个命令。我经常通过执行以下操作来检查它是否有效

sudo id
Run Code Online (Sandbox Code Playgroud)

应该显示root用户,例如,

uid=0(root) gid=0(root) groups=0(root)
Run Code Online (Sandbox Code Playgroud)