在visudo nopasswd为port命令设置后权限被拒绝

时间:2016-10-24 12:57:00

标签: linux bash sudo macports visudo

我正在尝试阻止bash请求sudo权限运行port command(OSX数据包管理器)将其添加到visudo。我基本上试图遵循这个SO thread,但我仍然收到错误

manfredo@cave05:~$ port selfupdate
--->  Updating MacPorts base sources using rsync
Error: Error synchronizing MacPorts sources: command execution failed
Please run `port -v selfupdate' for details.
Error: /opt/local/bin/port: port selfupdate failed: Error synchronizing MacPorts sources: command execution failed

如果我selfupdatesudo命令运行顺利。

我的visudo有以下几行

# User privilege specification
  root     ALL=(ALL) ALL
  %admin   ALL=(ALL) ALL
  %admin ALL=(ALL) NOPASSWD: /opt/local/bin/port

我也尝试了最后一行

<user_name> ALL=(ALL) NOPASSWD: /opt/local/bin/port

我错过了什么?也有人可以解释visudo文件的最后一行的语法。

1 个答案:

答案 0 :(得分:1)

你实际上想要实现两件事:

1。无需输入密码即可运行sudo port

您已经通过将以下行添加到/etc/sudoers来解决了这个问题:

%admin ALL=(ALL) NOPASSWD: /opt/local/bin/port

2。无需明确键入sudo port

即可运行sudo

这可以通过shell别名来完成。由于问题标记为bash,我认为你的shell是bash。在这种情况下,修改您的.bashrc并添加以下行:

alias port='sudo port'

启动一个新shell,它应该可以工作。