运维 Chroot限制普通用户登录特定目录
需求
普通用户登陆到服务器上只能执行ssh,ls,cat等有限的基础命令,另外要求把用户锁定在特定目录中,不能看到其他任何目录下文件
实现
创建查看日志的用户
12useradd -m ttxsgoto -s /bin/bashpasswd ttxsgoto初始化chroot环境
1234567891011121314151617181920mkdir /home/chrootmkdir /home/chroot/{bin,dev,lib,lib64,etc,home}CMD="/bin/bash /bin/ls /bin/cp /bin/mkdir /bin/mv /bin/rm /bin/rmdir /usr/bin/vim /bin/cat /usr/bin/tail"CHROOT="/home/chroot"lib1=`ldd $CMD | awk '{ print $1 }' | grep "/lib" | sort | uniq`lib2=`ldd $CMD | awk '{ print $3 }' | grep "/lib" | sort | uniq`for i in $CMDdocp -a $i $CHROOT/bin/ && echo "$i done"donefor j in $lib1docp -f $j $CHROOT/lib64/ && cp -f $j $CHROOT/lib/ && echo "$j done"donefor k in $lib2docp -f $k $CHROOT/lib64/ && cp -f $k $CHROOT/lib/ && echo "$k done"donechown -R root:root /home/chrootchmod -R 755 /home/chroot创建用户目录
12mkdir /home/chroot/home/ttxsgotochown -R ttxsgoto:ttxsgoto /home/chroot/home/ttxsgoto添加sshd_config
12Match User ttxsgotoChrootDirectory /home/chroot日志目录挂载
123mount --bind /var/logs /home/chroot/home/ttxsgoto#修改/etc/fstab文件,开机自挂载:echo "/var/logs /home/chroot/home/loglooker none rw,bind 0 0" >> /etc/fstab