我正在寻找以下解决方案:
允许在 sudoers 文件中执行带有选项 A 的命令,但拒绝带有选项 B 的相同命令:
示例:允许:sudo my_command optionA
不允许这样做:sudo my_command optionB
这可能吗 ?
您可以轻松指定允许的参数。
例如,我有一个用户testuser
。您必须编辑的文件是/etc/sudoers
,但请记住使用visudo
命令进行 - 它会验证文件的内容,因此您最终不会出现会阻止您再次执行 sudo 的错字(有时这是访问的唯一方法根帐户)。
所以,输入visudo
。
假设我想让 test 运行/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 组的成员,则此方法将不起作用。