修改 fish 下的 sudo 超时

修改 fish 下的 sudo 超时

我想更改 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

                                                                                    RootSudo 超时

答案4

我想知道标记周围的空格是否,是您的问题。我还没有看到 sudoers 文件使用这种语法。也许可以尝试删除 sudoers 文件中前后的空格,,看看这是否有帮助。

您还可以尝试将特定于用户的设置Defaults:moonwalker timestamp_timeout=20应用于您的用户帐户,这样您就可以跳过该行及其任何潜在的语法问题。

相关内容