Chinaunix首页 | 论坛 | 博客
  • 博客访问: 109661
  • 博文数量: 55
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 630
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-13 10:59
文章分类
文章存档

2011年(1)

2009年(37)

2008年(17)

我的朋友

分类: LINUX

2009-09-23 17:34:29

     现有一个要求是普通用户不能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 ~]$


阅读(1440) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~