Chinaunix首页 | 论坛 | 博客
  • 博客访问: 187186
  • 博文数量: 159
  • 博客积分: 7007
  • 博客等级: 准将
  • 技术积分: 1750
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-17 15:05
文章分类

全部博文(159)

文章存档

2010年(39)

2009年(106)

2008年(14)

我的朋友

分类: LINUX

2010-07-03 15:47:42

问题背景: 
为了加强linux服务器的安全性,要求指定的用户从登录后只能在指定的目录下工作并只能运行指定的命令或脚本 

解决: 
修改ssh的登录验证方法 
[root@localhost ~]# vi /etc/pam.d/sshd 
#%PAM-1.0 
auth include system-auth 
account required pam_nologin.so 
account include system-auth 
password include system-auth 
session include system-auth 
session required pam_loginuid.so 
session required pam_chroot.so (这是我们手动加入的一行) 

设置用户目录 
[root@localhost ~]# mkdir /virtual_root/chroot/lib -p 
[root@localhost ~]# mkdir /virtual_root/chroot/etc -p 
[root@localhost ~]# mkdir /virtual_root/chroot/bin -p 
[root@localhost ~]# mkdir /virtual_root/chroot/home/ziyang -p 
(你的/etc/passwd中应该有一个名为ziyang的用户) 
[root@localhost ~]# chown ziyang.ziyang /virtual_root/chroot/home/ziyang 

修改chroot配置文件 
[root@localhost ~]# vi /etc/security/chroot.conf 
ziyang /virtual_root/chroot (手动加入此行,ziyang就只能被限定在/virtual_root/chroot目录下了。 

注:是通过ssh登录的用户,对本地控制台登录的用户无效。但是可以有方法去实现) 

设置用户权限和可用命令 
[root@localhost ~]# cp /lib/ld-linux.so.2 /lib/libc.so.6 /lib/libdl.so.2 /lib/libtermcap.so.2 /virtual_root/chroot/lib 
[root@localhost ~]# cp /bin/bash /virtual_root/chroot/bin 
[root@localhost ~]# grep ziyang < /etc/passwd > /virtual_root/chroot/etc/passwd 

应用测试 
使用从其他的主机登录你的linux服务器,你会发现ziyang这个用户登录后被限定在了/virtual_root/chroot目录下,并且没有可以使用的shell命令。

原文地址:
阅读(813) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~