1。使运行
2。无需显式键入
就可以运行
我试图阻止bash请求sudo
权限来运行port command
(OSX数据包管理器),并将其添加到visudo
。我基本上试图遵循这个SO线程,但我仍然得到一个错误
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
文件最后一行的语法
您实际上想要实现两件事:
1。使运行sudo port
无需输入密码成为可能。
您已经通过向/etc/sudoers
添加以下行解决了这个问题:
%admin ALL=(ALL) NOPASSWD: /opt/local/bin/port
2。无需显式键入sudo
就可以运行sudo port
这可以通过shell别名完成。由于问题标记为bash
,我假设您的shell是bash。在这种情况下,修改.bashrc
并添加以下行:
alias port='sudo port'
启动一个新的shell,它应该可以工作。