对此绝对没有好的,直截了当的答案。问题很简单:
当我输入sudo su
时,如何强制linux要求输入密码?
答案 0 :(得分:1)
如果我理解正确,您可能有错误配置的/ etc / sudoers文件。 可以在那里配置一些用户或用户组以便能够运行" su"甚至所有命令都没有提供密码。
检查文件内是否包含" NOPASSWD"在其中,例如:
sudo cat /etc/sudoers |grep NOPASSWD
如果在文件中你有类似于以下行之一的东西(最重要的部分是从&#34的开头; NOPASSWD"到右边):
someuser ALL= NOPASSWD: /bin/su
ALL ALL= NOPASSWD: /bin/su
someuser ALL= NOPASSWD: ALL
%wheel ALL=(ALL) NOPASSWD: ALL
那么可能它就是罪魁祸首。
您必须从文件中删除该行/行(或者只有" NOPASSWD:"如果您希望用户/组仍然可以使用带密码的sudo su),或者注释使用visudo编辑器在行首开始使用#:
sudo visudo
答案 1 :(得分:1)
您可以使用命令sudo visudo查看和编辑您的sudo配置文件,如下所示: -
%wheel ALL =(ALL)ALL
%nopwd ALL = NOPASSWD:ALL
您当前的用户可能是特权组的成员,使他能够输入没有密码的sudo命令。在前面的示例中,您可以看到组轮的成员可以执行任何命令但会要求输入密码,但是组nopwd的成员不会提示密码。
答案 2 :(得分:0)
使用-k
(--reset-timestamp
):
sudo -k su
此外,您尝试实现的目标仅通过sudo
即可实现,无需冗余su
:
sudo -ks
如果您正在寻找登录shell会话:
sudo -ki