我們不想讓SSH 登陸的用戶隨意瀏覽我係統的文件,只給他固定在指定地方活動。
環境:Red Hat Enterprise Linux Server release 6.2
openssh 需要4.7p 以上版本
建立一個允許ssh的登陸用戶
[root@localhost ~]# useradd gao
更改用戶的密碼
[root@localhost ~]# passwd gao
Changing password for user gao.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
建立chroot目錄
[root@localhost ~]# mkdir /vm/chroot
切換到建好的目錄下,再創建登陸需要的目錄結構
[root@localhost chroot]# mdkir bin home lib64
把gao用戶的主目錄拷貝到剛剛建好的home下
[root@localhost chroot]# cp -r /home/gao/ /vm/chroot/home/
拷貝可執行程序和登陸bash,參考拷貝執行程序腳本123.sh
[root@localhost chroot]# cd bin/
[root@localhost bin]# cat 123.sh
#!/bin/bash
cmd="bash touch more less awk sed vim mkdir"
for i in $cmd
do
a=`which $i`
cp $a ./
done
命令可以自行添加
再拷貝執行依賴的文件,參考拷貝依賴文件腳本456.sh
[root@localhost bin]# cd ../lib64/
[root@localhost lib64]# cat 456.sh
#!/bin/bash
cmd="touch more less awk sed vim mkdir"
for i in $cmd
do
ldd `which $i` |awk '{print $3}'|while read a ;do cp $a ./;done
done
全部拷貝完成後修改ssh 的配置文件
[root@localhost lib64]# vim /etc/ssh/sshd_config
在其最後加上
Match User gao
ChrootDirectory /vm/chroot
重啓SSH服務
[root@localhost lib64]# /etc/init.d/sshd restart
使用其他機器登陸測試
[root@perl ~]# ssh [email protected]
[email protected]'s password:
Last login: Wed Oct 10 11:54:00 2012 from 10.1.100.104
-bash-4.1$ cd /
-bash-4.1$ pwd
/
-bash-4.1$ ls
bin home lib64
-bash-4.1$
簡單的chroot 已經完成