目标
利用 jaikit 環境, 能夠把某個目錄虛拟成為 / , 并且把遠端使用者限制在該目錄中活動,與真正的系統 / 環境進行隔離
利用該環境能夠避免開發人員過多地通路系統資源,增加系統安全性
1. 編譯jailkit-2.16.tar.gz
./configure && make && make install
2. 定義 /data作為資料存放區間, 籠環境專用分區
利用 sdb1
挂載 /data
chown root:root /data
/etc/fstab 定義自動挂載
/dev/sda1 /data ext4 defaults 0 0
3. 自動建立 chroot需要檔案,庫檔案資料
jk_init -v -j /data basicshell editors extendedshell netutils ssh sftp scp
指令執行後,會發現 /data 目錄下生成了 shell 環境必須的檔案與目錄
ls /data/
bin dev etc lib lib64 lost+found usr
4. 建立使用者方法
mkdir /data/usr/sbin
cp /usr/sbin/jk_lsh /data/usr/sbin/jk_lsh
useradd terry
jk_jailuser -m -j /data terry
注: jk_jailuser 能夠把系統使用者切換成為籠環境受限使用者
注意 /etc/passwd
中使用者資料中,預設的 shell 環境發生了變化
terry:x:500:500::/data/./home/terry:/usr/sbin/jk_chrootsh
5. 建立chroot後的 /tmp目錄
mkdir /data/tmp
chmod 1777 /data/tmp
cp /usr/bin/id /data/usr/bin/id
6. 參考籠環境下的passwd檔案
/data/etc/passwd
root:x:0:0:root:/root:/bin/bash
terry:x:500:500::/home/terry:/usr/sbin/jk_lsh
/data/etc/group
root:x:0:root
terry:x:500:
7. 注意,目前 shell /usr/sbin/jk_lsh隻允許 scp, cvs, sftp,假如需要使用
ssh登入,必須修改 /data/etc/passwd 中 shell 為/bin/bash
8. 要讓使用者登入, 還需要修改 "/etc/jailkit/jk_chrootsh.ini" 檔案添加下面字段, 注, 每個使用者都需要獨立添加
[terry]
relax_home_group_permissions=1
relax_home_other_permissions=1
[mary]
9. 預設情況下, 使用者登入後,隻具備英文環境, 參考下面連結, 添加使用者中文環境
參考
<a target="_blank" href="http://blog.csdn.net/signmem/article/details/14447739">jailkit-2.16.tar.gz 籠環境增加中文環境[備忘]</a>