另一种使用超级用户帐户的方法是设置基于角色的访问控制。基于角色的访问控制称为 RBAC。有关 RBAC 的概述信息,请参见基于角色的访问控制(概述)。要设置 RBAC,请参见第 9 章,使用基于角色的访问控制(任务)。
sulog 文件列出了 su 命令的每次使用情况,而不仅仅包括用于从用户切换到超级用户的 su 尝试。
# more /var/adm/sulog SU 12/20 16:26 + pts/0 stacey-root SU 12/21 10:59 + pts/0 stacey-root SU 01/12 11:11 + pts/0 root-rimmer SU 01/12 14:56 + pts/0 pmorph-root SU 01/12 14:57 + pts/0 pmorph-root |
这些项显示以下信息:
缺省情况下,通过 /etc/default/su 文件中的以下项启用此文件中的 su 记录:
SULOG=/var/adm/sulog |
此方法可立即检测访问本地系统的超级用户尝试。
查看 /etc/default/login 文件中的 CONSOLE 项。
CONSOLE=/dev/console |
缺省情况下,控制台设备设置为 /dev/console。使用此设置,root 可以登录到控制台。root 无法远程登录。
检验 root 是否可以远程登录。
从远程系统,尝试以超级用户身份登录。
mach2 % rlogin -l root mach1 Password: <键入 mach1 的超级用户口令> Not on system console Connection closed. |
监视成为超级用户的尝试。
缺省情况下,会使用 SYSLOG 实用程序在控制台上列显成为超级用户的尝试。
在此示例中,SYSLOG 不会记录超级用户尝试。因此,管理员将通过删除 /etc/default/su 文件中的 #CONSOLE=/dev/console 项的注释来记录这些尝试。
# CONSOLE determines whether attempts to su to root should be logged # to the named device # CONSOLE=/dev/console |
当用户尝试成为超级用户时,将在终端控制台上列显该尝试。
SU 09/07 16:38 + pts/8 jdoe-root |
要在 /etc/default/login 文件包含缺省 CONSOLE 项的情况下从远程系统成为超级用户,用户必须先使用其用户名登录。使用其用户名登录后,用户便可以使用 su 命令成为超级用户。
如果控制台显示类似于 Mar 16 16:20:36 mach1 login: ROOT LOGIN /dev/pts/14 FROM mach2.Example.COM 的项,则系统允许远程 root 登录。要禁止远程超级用户访问,请将 /etc/default/login 文件中的 #CONSOLE=/dev/console 项更改为 CONSOLE=/dev/console。