Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1734642
  • 博文数量: 391
  • 博客积分: 8464
  • 博客等级: 中将
  • 技术积分: 4589
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-13 15:12
个人简介

狮子的雄心,骆驼的耐力,孩子的执著!

文章分类

全部博文(391)

文章存档

2023年(4)

2018年(9)

2017年(13)

2016年(18)

2014年(7)

2013年(29)

2012年(61)

2011年(49)

2010年(84)

2009年(95)

2008年(22)

分类: 系统运维

2009-03-06 13:17:05

     实现步骤如下:
     1.创建用户abc ,主目录为/home/abc
     2.用root用户建立目录及工作环境:
    mkdir /var/chroot  
    mkdir -p /var/chroot/{proc,lib,bin,etc,home/ambow,usr/lib,usr/bin,dev/pts}

   mknod /var/chroot/dev/null c 1 3
   mknod /var/chroot/dev/zero c 1 5
   mknod /var/chroot/dev/random c 1 8
   mknod -m 666 /var/chroot/dev/ptmx c 5 2 
 
   mount proc /var/chroot/proc -t proc
   mount devpts /var/chroot/dev/pts -t devpts
 
   chmod 666 /var/chroot/dev/*
 
   cp /bin ,/usr/bin 下需要使用的命令到chroot下对应的目录。 

     3. 把/lib ,/usr/lib 下库文件拷贝到对应的chroot目录下
     4. tail -1 /etc/passwd >;/var/chroot/etc/passwd
      
     5. 修改/etc/pam.d/sshd 在末尾加上一句
          session   required    pam_chroot.so
     6.修改/etc/security/chroot.conf
       增加 一行 abc        /var/chroot  保存后,使用abc 通过ssh 登录即可
   

 参考文章:
 
+++++  更有一篇同样的文章  +++++

2.1 构建chroot环境
因为jailkit在当前版本的linux下不能正常运行,而且我们想搭建一个简洁的
chroot环境,这里使用了手动制作:)
2.1.1 使用环境变量,以方便干活
export CHROOT_PATH=/home/chroot_env
2.1.2 创建基本目录
mkdir -p $CHROOT_PATH/{bin,home,usr,lib}
chown -r root.root $CHROOT_PATH
cd $CHROOT_PATH
2.1.3 创建 /bin/bash环境
cp /bin/bash $CHROOT_PATH/bin/bash
for a in $(ldd /bin/bash | awk ’{print $3}’)
do
[ -e $CHROOT_PATH`dirname $a` ] || mkdir -p $CHROOT_PATH`dirname $a`
cp -f $a $CHROOT_PATH$a;
done
2.1.4 创建 sftp-server 环境
export SFTP_SERVER=`grep sftp /etc/ssh/sshd_config | awk ’{print $3}’`
echo $SFTP_SERVER
mkdir -p $CHROOT_PATH/`dirname $SFTP_SERVER`
cp $SFTP_SERVER $CHROOT_PATH$SFTP_SERVER
for a in $(ldd $SFTP_SERVER | awk ’{print $3}’)
do
[ -e $CHROOT_PATH`dirname $a` ] || mkdir -p $CHROOT_PATH`dirname $a`
cp -f $a $CHROOT_PATH$a;
done

chroot环境已搭建完毕,只有一个bash可供使用
sftp-server,是为了相应用户的sftp登陆的

2.2 设置chroot-openssh
2.2.1 添加或指定享受此待遇的用户,这里是sftp_test
useradd -d /home/sftp_test sftp_test #如果没有用户,指向chroot/home
mv /home/sftp_test $CHROOT_PATH/home/sftp_test
ln -s $CHROOT_PATH/sftp_test /home/sftp_test
passwd sftp_test

这里使用了软连接,为了保持chroot环境和实际环境的一致。

2.2.2 修改sshd设置
[vi /etc/ssh/sshd_config]
UsePAM yes
2.2.3 修改sshd.pam设置
[vi /etc/pam.d/sshd]
session    required     pam_chroot.so
2.2.4 修改chroot设置
echo sftp_test   $CHROOT_PATH >> /etc/security/chroot.conf
cat /etc/security/chroot.conf
2.2.5 重新启动
service sshd restart
关键是chroot和ldd的使用。
阅读(2000) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-07-26 12:07:20

是啊 我按照上面的步骤试了一下,也没有成功!

chinaunix网友2009-10-31 18:54:49

配置的过程不完整,chroot环境没有完全建立成功,有待进一步完善.

chinaunix网友2009-08-21 08:45:16

你好,请问你这个是在redhat下配置成功的吗?我也按照这个配置的,可最后用这个用户登录的时候,登陆界面一闪而过,而且sftp也没法登陆,报了一个“无法初始化SFTP协议。主机是SFTP服务器吗?”错误,不知道能帮忙分析一下原因吗?谢谢