有一台服务器是前段时间设置的,我需要更改一些设置,其中之一是具有超级用户权限的用户。但是,我到处都看到提示使用visudo
或编辑/etc/sudoers
,但这些都不是存在于该服务器上。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
$ whereis visudo
visudo:
$ visudo
-bash: visudo: command not found
$ ls -l /etc/sudoers
ls: cannot access '/etc/sudoers': No such file or directory
那个配置应该在哪里?
** 编辑 **
要明确的是,用户su
不需要密码就可以,因此这是在某处设置的,但由于/etc/sudoers
不存在,并且visudo
没有安装(也没有sudo
),那么该配置在哪里?
答案1
要清楚的是,用户可以不用密码,所以这是在某个地方设置的,
当然,不是 sudoers。它们是完全独立的命令 -su
有自己的授予 root 权限的逻辑,并且不使用“sudo”或“sudoers”任何事物,无论是否无密码。它们只是名字相似。
常规的 Linux 'su' 主要依赖于 PAM 配置:如果您可以通过 PAM 身份验证,那么您就可以获得 root 权限。现在通常这是为了调用您通常的密码检查模块(pam_unix 或其他),但也可以使用其他模块 - 事实上默认模块/etc/pam.d/su
通常有一个您正在寻找的无密码模式的示例:
Arch Linux 的默认 /etc/pam.d/su:
#%PAM-1.0 身份验证充分 pam_rootok.so # 取消注释以下行以隐式信任“wheel”组中的用户。 #auth adequate pam_wheel.so trust use_uid # 取消注释以下行以要求用户属于“wheel”组。 #auth 需要 pam_wheel.so use_uid 身份验证需要 pam_unix.so
因此,如果您的“su”没有密码,则很有可能它在其 PAM 堆栈 (/etc/pam.d/su) 中使用 pam_wheel。检查是否是这种情况,如果是,则使用它gpasswd
来添加或删除“wheel”组中的人员。
答案2
您没有visudo
该文件,sudoers
因为您没有sudo
安装。请以 root 身份使用此命令进行安装:
apt install sudo