为端口命令设置 visudo nopasswd 后权限被拒绝
Permission denied after visudo nopasswd set for port command
我试图阻止 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
如果我sudo
它,同样的selfupdate
命令运行很顺利。
我的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,它应该可以工作。
我试图阻止 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
如果我sudo
它,同样的selfupdate
命令运行很顺利。
我的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,它应该可以工作。