![启用用户帐户的 sudo 权限并全局禁用 root 访问权限](https://linux22.com/image/135696/%E5%90%AF%E7%94%A8%E7%94%A8%E6%88%B7%E5%B8%90%E6%88%B7%E7%9A%84%20sudo%20%E6%9D%83%E9%99%90%E5%B9%B6%E5%85%A8%E5%B1%80%E7%A6%81%E7%94%A8%20root%20%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90.png)
我想启用 sudo 访问用户帐户列表并禁用切换到 root 用户(即 sudo su - 或 su -)。我想要在 CentOS7 中启用此方法的步骤是什么?
另外,我想禁用用户列表的重新启动/关闭命令,这可能吗?
答案1
要允许用户alice
使用 root 身份运行命令sudo
,请将以下行添加到 sudoers 文件中:
alice ALL = (ALL:ALL) ALL
要允许组中的所有用户administrators
使用 root 身份运行命令sudo
,请将以下行添加到 sudoers 文件中:
%administrators ALL = (ALL:ALL) ALL
使用命令visudo
编辑 sudoers 文件。不要直接编辑该文件:您可能会破坏它并发现自己被锁定在 root 帐户之外。强烈建议您在执行此操作时在一个终端中以 root 身份保留正在运行的 shell,并在另一个终端中验证您是否仍然可以获得对 root 帐户的访问权限。
能够以root身份运行命令的用户可以成功运行sudo su -
。您可以阻止它工作,但这完全没有意义,因为您无法阻止诸如 、 等变化。sudo -i
要么sudo bash --login
您相信人们以 root 身份运行命令,要么您不相信。
su -
除非知道 root 密码,否则用户无法访问 root 帐户。如果您不希望他们无需 sudo 即可成为 root 用户,请不要向他们提供 root 密码。
如果您想允许用户重新启动但不以 root 身份运行任意命令,您可以授予他们运行权限reboot
,或更一般地说shutdown
,例如
charlie ALL = (root) /sbin/reboot
当然,可以以 root 身份运行任意命令的用户可以根据需要重新启动。再次,一切包括重新启动,并且“除了重新启动之外的所有操作”都是不可能的,因为存在无限多种变体,例如“等待一秒钟然后重新启动”,“发送电子邮件然后重新启动”等。
如果没有远程登录的用户,则默认允许控制台登录的用户重新启动。要禁用此功能,请修改波尔基特规则。我不知道在 CentOS 上到底要修改哪个文件。