背景
有時(shí)開發(fā)為了方便查找問題窑业,需要臨時(shí)申請(qǐng)服務(wù)器登錄權(quán)限心墅,查看日志,給普通權(quán)限的話竞川,權(quán)限太大棋嘲,容易引起安全問題酒唉。
為啥需要登錄服務(wù)器查看日志,直接分析文本文件更靈活沸移。
jailkit部署
$ sudo cd /usr/local/services/src
$ sudo wget http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.bz2
$ sudo tar xf jailkit-2.19.tar.bz2
$ sudo cd jailkit-2.19
$ sudo ./configure --prefix=/usr/local/services/jailkit-2.19 >/dev/null
$ sudo make >/dev/null && make install >/dev/null
jailkit應(yīng)用
創(chuàng)建chroot目錄
$ sudo mkdir /data/chroot
注:組初始化時(shí)/data/目錄必須root權(quán)限
添加普通用戶
$ sudo useradd testuser
開啟xterm痪伦,編輯jk_init.ini文件內(nèi)容
$ cd /usr/local/services/jailkit-2.19
$ sudo sed -i '/#\[xterm\]/,$s/^#//' ./etc/jailkit/jk_init.ini
組初始化
$ sudo jk_init -v -j /data/chroot basicshell jk_lsh xterm
注:組初始化,具體初始化的group請(qǐng)參考jailkit/jk_init.ini
增加chroot系統(tǒng)用戶
$ sudo jk_jailuser -m -j /data/chroot -s /bin/bash testuser
增加環(huán)境變量
$ sudo cat /data/chroot/home/soauser/.bashrc
... ...
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
export TERM=xterm
export GREP_OPTIONS='--color=auto'
export PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:$HOME/bin
增加命令
jk_cp -v -f /data/chroot $(type -p id)
jk_cp -v -f /data/chroot $(type -p clear)
jk_cp -v -f /data/chroot $(type -p ps)
jk_cp -v -f /data/chroot $(type -p top)
jk_cp -v -f /data/chroot $(type -p tail)
jk_cp -v -f /data/chroot $(type -p less)
jk_cp -v -f /data/chroot $(type -p df)
jk_cp -v -f /data/chroot $(type -p find)
jk_cp -v -f /data/chroot $(type -p ss)
jk_cp -v -f /data/chroot $(type -p sort)
jk_cp -v -f /data/chroot $(type -p ip)
上面操作麻煩的話,可以用下面的命令
COMMANDS="id clear ps top tail less df tree find ss sort ip uniq"
for command in $COMMANDS;do echo $command; sudo jk_cp -v -f /data/chroot $(type -p $command); done
移除命令(根據(jù)實(shí)際情況來(lái)增減命令)
COMMANDS="chmod cpio dd false gunzip gzip ln mkdir mktemp mv rm rmdir sync tar touch true zcat cp"
for command in $COMMANDS;do echo $command; sudo rm -f /data/chroot/bin/$command; done
綁定目錄雹锣,比如top & ps
命令都需要/proc
目錄里的數(shù)據(jù)
sudo mkdir -p /data/chroot/{data/logs,proc}
sudo mount --bind /proc /data/chroot/proc
日志存放路徑(/data/logs
)需要對(duì)研發(fā)開放
mount --bind /data/logs /data/chroot/data/logs
/etc/rc.local
cat /etc/rc.local
... ...
mount --bind /proc /data/chroot/proc
mount --bind /data/logs /data/chroot/data/logs