使用visudo nopasswd set for port命令后,权限被拒绝



我试图阻止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,它应该可以工作。

相关内容

  • 没有找到相关文章

最新更新