利用openssh實現chroot監牢 我們不想讓SSH 登陸的使用者隨意瀏覽我系統的檔案,只給他固定在指定地方活動。 環境:Red Hat Enterprise Linux Server release 6.2 openssh 需要4.7p 以上版本 建立一個允許ssh的登陸使用者 [root@localhost ~]# useradd gao 更改使用者的密碼 www.2cto.com [root@localhost ~]# passwd gaoChanging 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/bashcmd="bash touch more less awk sed vim mkdir"for i in $cmddo a=`which $i` cp $a ./done命令可以自行添加 www.2cto.com 再拷貝執行依賴的檔案,參考拷貝依賴檔案指令碼456.sh [root@localhost bin]# cd ../lib64/ [root@localhost lib64]# cat 456.sh#!/bin/bashcmd="touch more less awk sed vim mkdir"for i in $cmddo ldd `which $i` |awk '{print $3}'|while read a ;do cp $a ./;donedone全部拷貝完成後修改ssh 的設定檔 www.2cto.com [root@localhost lib64]# vim /etc/ssh/sshd_config 在其最後加上 Match User gaoChrootDirectory /vm/chroot 重啟SSH服務 [root@localhost lib64]# /etc/init.d/sshd restart 使用其他機器登陸測試 www.2cto.com [root@perl ~]# ssh gao@10.1.100.103gao@10.1.100.103'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$ lsbin home lib64-bash-4.1$ 簡單的chroot 已經完成