启用用户帐户的 sudo 权限并全局禁用 root 访问权限

启用用户帐户的 sudo 权限并全局禁用 root 访问权限

我想启用 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 上到底要修改哪个文件。

相关内容