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