我想强制用户每次使用“sudo”发出命令时都使用密码进行身份验证。但是,有一个命令(一个 init 脚本)我想排除这种需要。这个单一命令应该能够以 sudo 身份运行,而不需要密码。知道这是否可行吗?或者我需要为此设置一个不同的用户帐户,并且唯一的权限是调用该命令?
答案1
mirko ALL=(ALL) ALL, NOPASSWD: /sbin/service blah start
这sudoers
手册页对此进行了非常详细的描述。
答案2
由于 sudoers 手册页过于复杂,一开始需要更多示例,就像快速帮助一样......
我认为这提供了良好的限制访问:
yourUserName ALL=NOPASSWD:/usr/bin/startx -- \:1
yourUserName ALL=NOPASSWD:/usr/sbin/firestarter --start-hidden
在上面这两个例子中,您可以阻止其他命令,例如“firestarter --stop”,如果没有密码,这些命令会很危险;
和“startx -- :1”(您不能在 sudoers 中使用“startx -- :1”,没有“\”,将会失败,所以这是一个技巧),您可以将它绑定到像 Super+F8 这样的键(xterm -e“/usr/bin/startx -- :1”),所以如果你的 X 搞乱了(比如在玩 3D 游戏时)你可以按 Super+F8 并得到一个新的 X 来修复它(因为在 ubuntu 上 ctrl+alt+f1 很多次都会给我们一个空白屏幕..)