我想更改 sudo 超时,因此我通过 visudo 编辑 sudoers(按照在线许多教程中的建议)为以下形式:
Defaults env_reset , timestamp_timeout=20
root ALL=(ALL:ALL) ALL
%admin ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL
Defaults:my_username timestamp_timeout=10
问题是,什么都不起作用,而且似乎我有 sudo timeout=0。这是我的输出uname -a
:
Linux comp 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:56:25 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
更新
我注意到,只有当我使用 fish(又名用户友好型 shell)时才会发生这种情况。因此问题可能出在 fish 本身,而不是 sudoers 文件。
解决方案 问题出在我的 shell fish 上,也就是用户友好的 shell(这次不太友好,不是吗?)。出于某种原因,每次 sudo 命令似乎都来自不同的会话。在 sudoers 文件中添加 Defaults !tty_tickets(如所述http://us.generation-nt.com/answer/bug-598567-sudo-requires-reauthentication-each-use-ignoring-time-stamp-help-200510161.html)解决了该问题。请参阅上面的链接以获取附加信息。
谢谢大家的关注,如果没有你们的关注,我就无法弄清楚这件事。
答案1
问题出在我的 shell fish 上,也就是用户友好的 shell(这次不太友好,不是吗?)。出于某种原因,似乎 sudo 命令每次都来自不同的会话。添加
Defaults !tty_tickets
在 sudoers 文件中(如上所述)http://us.generation-nt.com/answer/bug-598567-sudo-requires-reauthentication-each-use-ignoring-time-stamp-help-200510161.html)解决了该问题。请参阅上面的链接以获取附加信息。
谢谢大家的关注,如果没有你们的关注,我就无法弄清楚这件事。
答案2
这样 sudo 就永远不会要求你输入密码
由于默认用户是管理员组的成员,我的用户名是“one”
id one
uid=1000(one) gid=1000(one) groups=1000(one),4(adm),20(dialout),24(cdrom),46(plugdev),116(lpadmin),118(admin),124(sambashare),125(debian-tor)
sudo visudo & 添加
NOPASSWD
%admin
Members of the admin group may gain root privileges
%admin ALL=(ALL)NOPASSWD: ALL
然后按“ctrl+x”,然后按“y”,完成按回车键。
答案3
默认情况下,sudo 会记住你的密码 15 分钟。如果你想更改它,可以通过以下方式进行
sudo visudo
时间戳超时=X
其中 X 是超时时间(以分钟为单位)。如果指定 0,系统将始终询问您密码。如果指定负值,超时将永不过期。例如默认 env_reset,timestamp_timeout=5
答案4
我想知道标记周围的空格是否,
是您的问题。我还没有看到 sudoers 文件使用这种语法。也许可以尝试删除 sudoers 文件中前后的空格,
,看看这是否有帮助。
您还可以尝试将特定于用户的设置Defaults:moonwalker timestamp_timeout=20
应用于您的用户帐户,这样您就可以跳过该行及其任何潜在的语法问题。