sudo 在 fish shell 中不断询问我的密码

sudo 在 fish shell 中不断询问我的密码

Ubuntu 中的 sudo 每次执行命令时都会要求我输入密码。以前,我只需要输入一次密码,然后密码就会被记住一段时间。这种情况最近有所改变,可能是在“升级”到 Natty 之后。

我已经完成sudo visudo并设置Defaults env_reset, timestamp_timeout = 60,尝试重新启动,但仍然不起作用。我该如何解决这个问题?

根据以下建议,我的/etc/sudoers情况如下:

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults:endolith timestamp_timeout=60

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

#includedir /etc/sudoers.d

更新:

我升级了 VirtualBox,它开始遇到同样的问题。我猜,我运行了 bash,并尝试在其中使用 sudo,密码被正确记住了。只有当我使用默认 shell 时才会出现这种情况它不记得了。在之前的 Ubuntu 版本中它记得,但现在不记得了。

更新:

我升级到 13.05,它又神奇地开始工作了。现在它要求我输入一次密码,过一会儿就不再询问,然后过一段时间再询问。

答案1

@endolith:是的,它似乎只影响 fish。我遇到了同样的问题,该问题是由 sudo 选项“tty_tickets”引起的。在 /etc/sudoers 文件中禁用该选项将解决问题。

下面的操作将禁用 tty_tickets:

Defaults        env_reset,!tty_tickets

答案2

如果其他方法都不管用,那就试试sudo -i(单独尝试)。输入一个密码后,它将为您提供 root shell。

答案3

我只需要输入一次密码,它就会被记住一段时间。

如果让我猜的话,我敢打赌你的/var/run/sudo目录肯定出了问题。这个目录是存储时间戳文件的地方。也许 /var/run 已满,也许权限出了问题。不管怎样,看看那个目录,我怀疑你的问题可能就在那里。

我的文件夹的权限如下所示。

# find /var/run/sudo/ -ls
1164242    4 drwx------   6 root     root         4096 Jan  1  1985 /var/run/sudo/
1179694    4 drwx------   2 root     www-data     4096 Jan  1  1985 /var/run/sudo/www-data
1164286    4 drwx------   2 root     myuser      4096 Jul 21 23:03 /var/run/sudo/myuser
1163399    0 -rw-------   1 root     myuser         0 Jul 13 22:42 /var/run/sudo/myuser/0
1163453    0 -rw-------   1 root     myuser         0 Jul 21 22:59 /var/run/sudo/myuser/2
1164309    0 -rw-------   1 root     myuser         0 Jul 21 23:03 /var/run/sudo/myuser/6
1163303    0 -rw-------   1 root     myuser         0 Jul 13 22:31 /var/run/sudo/myuser/5

为了确保万无一失,您可能还想尝试运行sudo -K以终止当前的时间戳文件。

答案4

我会检查 /etc/sudoers.d/ 目录。

您也可以尝试将 sudo 包降级到以前的版本。

相关内容