sudo 不再要求输入密码

sudo 不再要求输入密码

我没有注意到,但自从我输入使用 sudo 权限的密码以来已经过了相当长一段时间了。

这是我的/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    mail_badpass
Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# 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

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
%jupiter ALL=NOPASSWD: /usr/lib/jupiter/scripts/bluetooth, /usr/lib/jupiter/scripts/camera, /usr/lib/jupiter/scripts/cpu-control, /usr/lib/jupiter/scripts/resolutions, /usr/lib/jupiter/scripts/rotate, /usr/lib/jupiter/scripts/touchpad, /usr/lib/jupiter/scripts/vga-out, /usr/lib/jupiter/scripts/wifi

这让我很担心,因为现在任何脚本都可以运行,而不需要我输入密码。

我看到了以下问题,但它们似乎与这篇文章无关:

我该如何sudo 总是提示我输入密码(除了/etc/sudoers文件中给出的超时时间?

附言:.bash_aliases我在我的命令中设置了一些别名,但我希望这与密码提示无关,不是吗?

答案1

你的最后一行是罪魁祸首。我不知道为什么,也许是一个错误,或者我不知道所有的 Linux 规则。

您应该考虑以下几行:

# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.

因此,删除最后一行并将其放入/etc/sudoers.d/sudo-jupiter。现在将权限恢复/etc/sudoers到 ux 和重启系统

答案2

我找到使用 devstack 安装 grizzly openstack在Ubuntu 12.10上使用创建了一个文件,/etc/sudoers.d/50_stack_sh其内容如下:

jobin ALL=(root) NOPASSWD:ALL
Defaults:jobin secure_path=/sbin:/usr/sbin:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin

这删除了所有命令的密码提示,我可以以 root 身份运行这些命令,因此从未提示我输入密码。

为了解决这个问题,我删除了该/etc/sudoers.d/50_stack_sh文件(我不再需要 openstack)。对于那些需要 openstack 和密码提示的人,请将文件内容更改/etc/sudoers.d/50_stack_sh为:

<username> ALL=(root) ALL
Defaults:<username> secure_path=/sbin:/usr/sbin:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin

<username>用需要密码提示的账户的用户名替换。


这个答案基于用户 neckTwi的回答和问题Unix 和 Linux 关于 /etc/sudoers 文件的语法


注意::我已经提出ask.openstack.org 上有一个问题,要求澄清上述方法,希望我们能尽快收到答复:)

相关内容