【发布时间】:2017-03-06 06:27:09
【问题描述】:
我试图阻止 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文件最后一行的语法。
【问题讨论】:
-
您根本不使用
sudo执行port命令。你能指望什么?看来你不明白sudo在做什么。 -
这正是我想要做的。运行需要
sudo的命令,而无需在其前面键入sudo。这对我来说似乎很清楚。也冷静一下,你的语气很烦人。 -
两次投反对票,和往常一样不予置评。阅读 -1 箭头时,我读到“没有显示任何研究努力,不清楚或没有用”我不知道后者,但我研究了我的问题并试图尽可能清楚地写出来。
-
对不起,我只是说你不明白
sudo,或者如何从命令行调用程序——显然是这样。我已经问过你的期望,因为对于阅读你的问题的人来说,这很难得到。如果你想在不明确输入sudo命令的情况下始终使用sudo运行port,则可以创建一个bash 别名,例如alias port='sudo port' -
不,不难得到,不,显然不是这样。我经常使用
sudo并且经常从命令行运行程序。这是否意味着我完全了解sudo和命令行,当然不是。这是否意味着我不理解他们?两者都不。但是你的语气还是很烦人吗?肯定是的。如果我将port别名为sudo port,当我运行port命令时,我仍然会被要求输入密码。我想要的是能够运行某个命令,该命令通常需要sudo,而命令前面没有sudo。
标签: linux bash sudo macports visudo