部署背景:
|
[root@server ~]# useradd -M ait [root@server ~]# passwd ait |
[root@server ~]# vi /etc/ssh/sshd_config #增加以下内容 Match User ait ChrootDirectory /var/chroot |
[root@server ~]# /etc/init.d/sshd restart #重启SSH服务 |
小贴士: 一个最基本的chroot环境至少有一个shell(例如sh,bash)和一些必要的系统设备文件(例如/dev/null,/dev/zero),如果要允许用户执行一些命令,那么还要准备相应的命令可执行文件和命令依赖的库文件。 |
[root@server ~]# mkdir /var/chroot 然后将要允许用户执行的可执行文件和依赖的库文件复制到相应位置。例如必须给用户一个可用的shell,则我们一般用/bin/bash,那么执行ldd命令查看相关信息:
[root@server chroot]# ll 总计 28 drwxr-xr-x 2 root root 4096 02-25 05:47 bin drwxr-xr-x 2 root root 4096 02-25 05:36 dev drwxr-xr-x 2 root root 4096 02-25 05:35 etc drwxr-xr-x 2 root root 4096 02-25 05:35 home drwxr-xr-x 2 root root 4096 02-25 05:51 lib drwxr-xr-x 2 root root 4096 02-25 05:35 lib64 -rw-r--r-- 1 root root 665 02-25 06:50 shell.sh [root@server chroot]# chmod 755 shell.sh [root@server chroot]# ./shell.sh /bin/bash done /bin/ls done /bin/cp done /bin/mkdir done /bin/mv done /bin/rm done /bin/rmdir done /lib/ld-linux.so.2 done /lib/libacl.so.1 done /lib/libattr.so.1 done /lib/libc.so.6 done /lib/libdl.so.2 done /lib/libpthread.so.0 done /lib/librt.so.1 done /lib/libselinux.so.1 done /lib/libsepol.so.1 done /lib/libtermcap.so.2 done 复制/etc/passwd和/etc/group文件到/var/chroot/etc中,并删除用户自己和root以外的所有帐号。如果没有这两个文件,用户登录以后会报“I have no name!” [root@server chroot]# cp -p /etc/passwd /var/chroot/etc/ [root@server chroot]# cp -p /etc/group /var/chroot/etc/
|
[root@server chroot]# mkdir /var/chroot/home/ait [root@server chroot]# chown -R ait /var/chroot/home/ait [root@server chroot]# chmod 700 /var/chroot/home/ait |
-bash-3.2$ pwd /home/ait -bash-3.2$ ls -bash-3.2$ mkdir ait_test -bash-3.2$ ls ait_test -bash-3.2$ ll -bash: ll: command not found |