5.14. 阻止 su 到 root;面向所有用户

su (Substitute User) 命令允许您成为系统上其他现有用户。例如,您可以临时成为 root 用户,并以超级用户 root 身份执行命令。如果您不想让任何人 su 到 root 用户,或者想限制 su 命令只允许特定用户使用,那么请将以下两行添加到您的 su 配置文件顶部,该文件位于/etc/pam.d/目录。我们强烈建议您限制允许 su 到 root 账户的用户。

  1. 使用 vi 编辑 su 文件/etc/pam.d/su并在文件顶部添加以下两行
                   auth sufficient /lib/security/pam_rootok.so debug
                   auth required /lib/security/pam_wheel.so group=wheel
                    
    添加以上两行之后,/etc/pam.d/su文件应如下所示
                   #%PAM-1.0
                   auth	      sufficient   	/lib/security/pam_rootok.so debug
                   auth             required    	/lib/security/pam_wheel.so group=wheel
                   auth       	required     	/lib/security/pam_pwdb.so shadow nullok
                   account    	required     	/lib/security/pam_pwdb.so
                   password   	required     	/lib/security/pam_cracklib.so
                   password   	required     	/lib/security/pam_pwdb.so shadow use_authtok nullok
                   session    	required     	/lib/security/pam_pwdb.so
                   session    	optional     	/lib/security/pam_xauth.so
                   
    这意味着只有 wheel 组的成员才能 su 到 root 用户;它还包括日志记录。请注意,wheel 组是您系统上的一个特殊账户,可用于此目的。您不能随意使用组名来进行此操作。此技巧与指定 root 用户允许登录的 TTY 设备相结合,将大大提高您系统的安全性。

  2. 现在我们已经在我们的/etc/pam.d/su配置文件中定义了 wheel 组,现在是时候添加一些允许 su 到 root 账户的用户了。例如,如果您想让用户 admin 成为 wheel 组的成员,从而能够 su 到 root 用户,请使用以下命令
                   [root@deep] /# usermod -G10 admin
                   

    • 这意味着G是附加组的列表,

    • 用户也是这些组的成员,10是用户 ID wheel 的数值,

    • admin 是我们想要添加到 wheel 组的用户。

    对您系统中所有想要能够 su 到 root 账户的用户使用上述命令。 如果您无法在 GNOME 终端中 su,那是因为您使用了错误的终端。所以不要因为终端问题而认为这个建议不起作用!