有一台服务器在使用su - root命令切换到root账号时,老是报密码不正确。但是root密码完全是正确的,
而且可以使用账号密码直接ssh登录服务器。很是纳闷,如下所示:
[oracle@DB-Server ~]$ more /etc/redhat-release
Red Hat Enterprise Linux Server release 5.7 (Tikanga)
[oracle@DB-Server ~]$ su - root
Password:
su: incorrect password
[oracle@DB-Server ~]$
在Linux中为了更进一步加强系统的安全性,很有必要建立了一个管理员的组,
只允许这个组的用户来执行“su -”命令登录为root用户,而让其他组的用户即使执行“su -”、
输入了正确的root密码,也无法登录为root用户。在UNIX和Linux下,这个组的名称通常为“wheel”。
而这个是在配置文件/etc/pam.d/su里面配置的。如下截图所示:
"auth required pam_wheel.so use_uid"
表示禁止非wheel组用户切换到root。所以就出现了上面在oracle用户下切换root用户报密码错误的情况
[root@DB-Server ~]# groups oracle
oracle : oinstall dba
[root@db02 ~]# cat /etc/pam.d/su
#%PAM-1.0
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required pam_wheel.so use_uid ######----
auth substack system-auth
auth include postlogin
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session include postlogin
session optional pam_xauth.so
Wheel组概念
Wheel组是Unix系统一个遗留物。当服务器需要做比日常例行维护更高级的工作的时候,就经常需要用到root权限了。
而这个wheel组就是建立用来归纳一些特殊的系统用户用的,这其中的用户都或多或少地拥有root的部分功能和权限。
也就是说如果你不是wheel组成员,那就没有root身上任何的特权。也因为这样,使用wheel组成员用户的话,
会尽量减少对系统“摧毁性”破坏的概率和风险。如今大多数的Linux发行版本中,仍然保留了wheel这个组,
虽然它已经不像当初设计出来的那样必要了,但是有些老玩家还是忠于这种旧式经典风格的,
所以他们经常还是依旧让wheel组发挥着以往的作用。他们是这样做的:在建立他们自己的用户时,
将其添加入wheel组中(用wheel组作为用户的主组),或者使用vigr来编辑/etc/group文件,
将他们的用户名追加到wheel组那行的末尾。
通常在UNIX下,即使我们是系统的管理员,也不推荐用 root 用户登录来进行系统管理。一般情况下用普通用户登录,
在需要 root 权限执行一些操作时,再 su 登录成为 root 用户。但是,任何人只要知道了 root 的密码,
就都可以通过 su 命令来登录为 root 用户——这无疑为系统带来了安全隐患。所以,将普通用户加入到 wheel 组,
被加入的这个普通用户就成了管理员组内的用户,但如果不对一些相关的配置文件进行配置,
这个管理员组内的用户与普通用户也没什么区别
1:查看wheel组
[root@DB-Server ~]# cat /etc/group | grep wheel
wheel:x:10:root
--查看某个用户的用户组
[root@DB-Server ~]# groups oracle
oracle : oinstall dba
2:检查日志发现那些做了su切换的日志信息。
[root@DB-Server ~]# grep su /var/log/secure | grep -v sudo
Dec 5 09:15:47 db02 su: pam_unix(su-l:auth): authentication failure; logname=oracle uid=502 euid=0 tty=pts/2 ruser=oracle rhost= user=oracle
Dec 5 09:15:47 db02 su: pam_succeed_if(su-l:auth): requirement "uid >= 1000" not met by user "oracle"
Dec 5 09:15:57 db02 su: pam_unix(su-l:session): session opened for user oracle by oracle(uid=502)
Dec 5 09:16:00 db02 su: pam_unix(su-l:session): session closed for user oracle
Dec 5 09:21:06 db02 su: pam_unix(su-l:session): session opened for user root by oracle(uid=502)
Dec 5 09:21:09 db02 su: pam_unix(su-l:session): session closed for user root
Dec 5 09:23:49 db02 su: pam_succeed_if(su-l:auth): requirement "uid >= 1000" not met by user "root"
Dec 5 09:24:14 db02 su: pam_unix(su-l:session): session opened for user root by oracle(uid=502)
Dec 5 09:24:17 db02 su: pam_unix(su-l:session): session closed for user root
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




