- 论坛徽章:
- 0
|
现有一个要求是普通用户不能su到别的用户,但至少不能su到root。有一方法如下:
首先建立一个群组 nosu (或 nomax 等,请自行命名):
groupadd nosu
此时在 /etc/group 内会出现类似下行的信息 (gid 会因机器而异):
nosu:x:512:
·编辑 /etc/group,把欲禁用 su 的使用者加入 nosu 这个群组,例如把
john 与 qoo 列入禁用的范围:
nosu:x:512:john,qoo
·把 /bin/su 的群组改成 nosu,并移除群组的权限:
chgrp nosu /bin/su
chmod g= /bin/su
·对 /bin/su 执行 ls -l,若权限与群组与下图相同即告完成:
-rws---r-x 1 root nosu 18452 7月 24 2001 /bin/su
效果如下:
[oracle@ha2 oracle]$ su - max
-bash: /bin/su: 权限不够
[oracle@ha2 oracle]$ su -
-bash: /bin/su: 权限不够
[oracle@ha2 oracle]$
这样,如果一个用户属于一个组,问题解决了。但如果用户属于两个组,这个办法就失灵了。这样还要修改另一个文件。如下:
修改 /etc/pam.d/su 找到如下一行
#auth required pam_wheel.so use_uid
把 前面的# 去掉,保存
这样只有wheel 组的用户可以使用su命令到root用户或别的用户
根据要求,你只需把能su到别的用户添加到wheel 组即可。例如如下命令,假如用
户为max
usermod -G wheel max
效果如下所示:
[root@max ~]# su - max
[max@max ~]$ su - root
口令:
[root@max ~]# su - oracle
[oracle@max ~]$ su - root
Password:
su: incorrect password
[oracle@max ~]$ su - max
Password:
su: incorrect password
[oracle@max ~]$
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/85323/showart_2058619.html |
|