我正在尝试阻止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
如果我selfupdate
,sudo
命令运行顺利。
我的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
文件的最后一行的语法。
答案 0 :(得分:1)
你实际上想要实现两件事:
sudo port
。您已经通过将以下行添加到/etc/sudoers
来解决了这个问题:
%admin ALL=(ALL) NOPASSWD: /opt/local/bin/port
sudo port
sudo
这可以通过shell别名来完成。由于问题标记为bash
,我认为你的shell是bash。在这种情况下,修改您的.bashrc
并添加以下行:
alias port='sudo port'
启动一个新shell,它应该可以工作。