【问题标题】:sudoers allow command with one option - refuse with other option [closed]sudoers 允许带有一个选项的命令 - 拒绝带有其他选项的命令 [关闭]
【发布时间】:2015-01-05 13:28:56
【问题描述】:

我正在寻找以下问题的解决方案:

允许在 sudoers 文件中执行带有选项 A 的命令,但拒绝带有选项 B 的相同命令:

示例: 允许这样做: sudo my_command optionA

不允许这样做: sudo my_command optionB

这可能吗?

【问题讨论】:

  • 我已经回答了你的问题,但请记住,它更多属于 serverfault.com 或 superuser.com

标签: linux sudo sudoers


【解决方案1】:

您可以轻松指定允许的参数。

例如,我有一个用户testuser。您必须编辑的文件是/etc/sudoers,但请记住使用visudo 命令进行编辑 - 它会验证文件的内容,因此您最终不会出现会阻止您再次执行 sudo 的错字(有时这是访问 root 帐户的唯一方法。

所以,输入visudo

假设我想让测试运行/bin/yes --help。我无权为除 root 以外的任何其他用户使用 x

你要补充的是:

testuser ALL=(ALL) /bin/yes --help

这意味着testuser 可以在任何主机上以任何用户身份运行/bin/yes --help。默认情况下,sudo /bin/yes --help 会询问testuser 的密码。 sudo /bin/yes 会给access denied

如果您想在不提供密码的情况下允许它,请将该行替换为:

testuser ALL=(ALL) NOPASSWD: /bin/yes --help

请注意,您不能明确拒绝参数。如果testuser 是默认sudoers 组的成员,则此方法将不起作用。

【讨论】:

  • 谢谢...似乎有效。我将测试以查看命令选项中的警告。再次感谢
  • 没问题!如果它适合你,请接受我的回答:) 如果不是 - 编辑你的问题并在此处添加评论,以便我收到通知。