受限shell(Jailed Shell)是一類被限制的shell,它看起來非常像真實的Shell,但是它不允許查看和修改真實的文件系統的任何部分。Shell內的文件系統不同於底層的文件系統。這種功能是通過chroot和其他多種程序實現的。舉例來說,給用戶建立一個linux shell去讓他“玩玩”,或者在一個限定的環境裡運行一些程序的所有功能等等。
在這個教程裡我們將會探討在Ubuntu下用jailkit建立一個受限shell。Jailkit是一個讓你快速建立一個受限shell的工具,將受限用戶放到裡面,並配置那些要在受限制環境裡運行的程序。
Jailkit 從這裡下載:http://olivier.sessink.nl/jailkit/
因為jaikit需要在系統上編譯,首先,我們需要有用於編譯的那些工具。所以,安裝如下包:
$ sudo apt-get install build-essential autoconf automake libtool flex bison debhelper binutils-gold
從下述URL下載Jailkit,或者訪問它的網站以下載最新版本的,如果有了更新版本的話。http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
$ wget http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
解壓
$ tar -vxzf jailkit-2.16.tar.gz
編譯並創建deb軟件包
Jailkit已經包含了用於編譯成deb軟件包的代碼和配置,可以直接安裝在Debian系的Linux上。運行下列命令來完成它。
$ cd jailkit-2.16/ $ sudo ./debian/rules binary
安裝deb軟件包
上述命令創建的deb軟件包叫做: jailkit2.16-1amd64.deb.
$ cd .. $ sudo dpkg -i jailkit_2.16-1_amd64.deb
就是這樣,現在Jailkit已經安裝完成了。Jailkit有許多命令可以用來設置一個基於chroot的受限環境,如下是這些命令:
$ jk_ jk_addjailuser jk_chrootlaunch jk_cp jk_jailuser jk_lsh jk_uchroot jk_check jk_chrootsh jk_init jk_list jk_socketd jk_update
上述命令都有man幫助信息,如果你使用它們時,可以參考。