/etc/sudoers
我在文件中设置了以下行
sana ALL=NOPASSWD: /usr/bin/wine
作为用户sana
,当我在 shell 中执行命令时sudo -u randeel /usr/bin/wine cmd /c wscript some.vbs
,它会提示输入密码。
这里出了什么问题?我不想在执行命令时提示输入密码。
答案1
sudo
表示“超级用户执行”,即“以超级(根)用户身份执行此命令”。如果您未以系统的根用户身份登录,则使用sudo
将要求您输入密码,并检查您是否在 sudoers 文件中。如果这两项检查都成功,则允许您以根用户身份执行该命令。
将您自己添加到 sudoers 文件中并不会阻止您输入密码才能使用,它使您能够以您正在体验的方式sudo
使用。sudo
答案2
您是否尝试过通过 sudo 以您自己的身份运行 /usr/bin/wine?结果如何?
您的 sudo 配置在语法上没有任何错误,但是,使用 -u 标志可能会干扰您的预期行为。
如果您始终希望以用户 randeel 而不是有效 sana 用户的身份执行 wine,您可能需要调查 sudoers 的 runas_spec。例如:
sana ALL=(randeel) NOPASSWD: /usr/bin/wine
答案3
我认为 sudo 在命令行参数方面有问题。尝试用单引号括住整个 /usr...vbs 区域,并将整个命令添加为 sudoers 中的命令别名(也用单引号括住)