Answers:
运行sudo visudo
并添加以下行:
Defaults timestamp_timeout=-1
请参阅man 5 sudoers
。-1
导致密码永不超时。您可以在数分钟内将数字更改为任意数字。
的手册页sudo
说sudo -v
“将sudo超时再延长5分钟”。
运行“ sudo visudo”而不是编辑文件将直接导致系统在提交更改之前先验证sudoers文件。例如,如果在某个地方留下了流浪字符,那么在保存并退出时,它会说“ sudoers文件中有错误,您想做什么?” ...因此给您机会重新进行编辑。这实际上只是在10分钟前发生在我身上。
visudo
在保存之前对sudoers文件运行一些基本的完整性检查。如果您vi
直接使用文件弄乱了文件,则可能使自己无法使用sudo,从而使撤消更改变得非常困难。
visudo
环绕系统默认编辑器(如果root已覆盖默认用户,我猜是root用户默认),所以与vi bar名称无关。在我的系统上(不是苹果顺便说一句),我得到了nano。尝试export EDITOR='/bin/nano'
或使用任何喜欢的编辑器,然后使用visudo。
要真的小心有关修改/etc/sudoers
直接!
例如,我直接尝试了上述建议:
sudo sh -c 'echo "\nDefaults timestamp_timeout=-1">>/etc/sudoers'
这弄乱了我的/etc/sudoers
文件(在CentOS Virtualbox VM上)。本来应该:
sudo sh -c 'echo -e "\nDefaults timestamp_timeout=-1">>/etc/sudoers'
幸运的是,我可以访问root帐户,以root身份登录,使用visudo
并修复了该问题!因此,我同意使用上述注释来visudo
代替。
有关sudoers的所有信息,可以使用以下命令从终端中找到
man sudoers
您甚至可以使用简单的文本来编辑文件,但是priv使其变得困难。sudoers是-r--r----- (Octal 0440)
这表明Apple确实不希望您弄乱文件。这确实是操作系统的核心安全性。
编辑选项包括vi,emacs或我个人最喜欢的BBEdit。
visudo
而不是自己编辑文件。此外,这与OS X无关。它是标准* nix。另外,如果要使用非默认编辑器,只需$EDITOR
在调用之前设置环境变量即可visudo
。例如EDITOR=nano sudo visudo
。
使用以下命令禁用sudo超时:
sudo sh -c 'echo "\nDefaults timestamp_timeout=-1">>/etc/sudoers'
要使用此方法重新启用sudo超时:
sudo sed -i "/Defaults timestamp_timeout=-1/d" /etc/sudoers
sudo
应该有一种无需更改文件即可更改它的单线方式!