我确信这个问题以前曾被问过,但我找不到答案。
我想配置Linux,以便当我输入特定命令(例如apt-get
)时,我不必像现在一样输入密码。
我怎样才能做到这一点?
答案1
您无法将 Linux 配置为不需要 sudo。有些命令需要以root身份执行;如果您想从非特权帐户触发它们,则需要 sudo 或其他一些权限升级机制。
sudoers
您可以通过添加带有标签的规则,将 sudo 配置为不需要特定命令的密码NOPASSWD:
。注意NOPASSWD 规则必须位于与同一命令匹配的非 NOPASSWD 规则之后。
%admin: ALL = (ALL:ALL) ALL
%admin: ALL = (root) NOPASSWD: apt-get
请注意,允许apt-get
与允许任何命令一样危险,因为调用者可以传递导致apt-get
从他们指定的源下载包的选项,导致它调用他们指定的挂钩等。
如果您觉得看到的提示太多,可以减少 sudo 提示的频率。关闭tty_tickets
选项,以便您可以对整个会话进行一次身份验证,而不是每个终端进行一次身份验证。默认情况下,您需要再次输入密码的超时时间为 15 分钟。
答案2
用于visudo
配置 /etc/sudoers 文件。你可能想要这样的东西:
ALL ALL=NOPASSWD: /usr/bin/apt-get
man sudoers
详情请参阅。
如果你真的想完全避免 sudo,你可以像这样设置粘性位:
chmod u+s /usr/bin/apt-get
这是否有效取决于应用程序。这样,该命令以有效用户 root 身份运行,但该命令本身能够检测到该事实并拒绝工作(如果它决定这样做)。