我想知道从 Linux 中的 sudoer 列表中删除用户的命令。我已使用以下命令添加了用户:
sudo adduser user_name
并将其添加到组中。
我现在想从 sudoer 列表中删除该用户。我该怎么做?
答案1
它可能不像运行命令那样直接。没有 sudoerlist - sudoers 文件是可以为用户或组提供各种权限的指令列表。如果您擅长使用 vi,则可以使用 visudo 编辑此文件。如果不擅长,您可能不应该乱动它,但可能可以使用 nano /etc/sudoers(以 root 身份)。sudoers 文件通常有相当完善的文档。
不过,根据您的操作系统,您可能实际上不需要这样做。大多数发行版都有一个组,只需修改谁有权访问哪个组即可授予提升的权限。您可能需要查看 sudoers 文件以查看有哪些组/组 - 在我的 ubuntu 16.04 中有一个“admin”组和一个“sudo”组。“wheel”和“admin”组是其他常见的组。
由于用户可能已经是具有 sudo 访问权限的组的成员,因此输入(以 root 身份)grep "username" /etc/group" 将显示用户所属的组列表。要删除用户,您可以(以 root 身份)从 /etc/group 中编辑它们,或使用类似以下命令
gpasswd -d username groupname
或者
deluser username groupname
答案2
该命令不会将用户添加到/etc/sudoers
文件中。
根据您将用户添加到的组,可能会授予他们使用 sudo 的权限。使用 检查用户的组成员身份groups username
。
您可以/etc/sudoers
使用该visudo
实用程序编辑文件 - 如果您不喜欢 vi/vim,您可以通过将其指定为环境变量来使用任何其他编辑器。
sudo EDITOR=/bin/nano visudo
请注意,虽然文件是纯文本,但使用visudo
它来编辑它很重要,因为visudo
在实际保存之前会检查语法等。如果语法错误,您将无法sudo
再次运行来修复它。
所以...检查您的用户的组成员,检查哪些组被允许sudo
访问,并检查哪些用户被允许sudo
访问。
/etc/sudoers
Debian/Ubuntu/etc 发布的基本内容
ivan@darkstar:~$ sudo cat /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:/snap/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) NOPASSWD:ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d