#!/bin/bash
#判断是否已存在用户
grep "log_user" /etc/passwd >/dev/null
if [ $? -eq 0 ]; then
echo "already exists"
exit 0
fi
#创建用户
useradd -d /home/log_user -m log_user
echo "password" | passwd --stdin log_user
#指定文件权限位
mkdir -p /home/log_user/dev/
cd /home/log_user/dev/
mknod -m 666 null c 1 3
mknod -m 666 tty c 5 0
mknod -m 666 zero c 1 5
mknod -m 666 random c 1 8
#chroot 监狱和它的子目录以及子文件必须被 root 用户所有
chown root:root /home/log_user
chmod 0755 /home/log_user
ls -ld /home/log_user
#安装几个用户命令
mkdir -p /home/log_user/bin
cp -v /bin/bash /home/log_user/bin/
cp -v /bin/cat /home/log_user/bin/
cp -v /bin/date /home/log_user/bin/
cp -v /bin/grep /home/log_user/bin/
cp -v /bin/head /home/log_user/bin/
cp -v /bin/ls /home/log_user/bin/
cp -v /bin/tail /home/log_user/bin/
cp -v /bin/telnet /home/log_user/bin/
#检查上面命令的共享库并将它们移到 chroot 监狱的库目录中
mkdir -p /home/log_user/lib64
cp -v /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2} /home/log_user/lib64/
\cp -v /lib64/{libselinux.so.1,libcap.so.2,libacl.so.1,libc.so.6,libpcre.so.1,libdl.so.2,ld-linux-x86-64.so.2,libattr.so.1,libpthread.so.0,libutil.so.1,libncurses.so.5} /home/log_user/lib64/
#创建 chroot 监狱通用配置目录
mkdir /home/log_user/etc
cp -vf /etc/{passwd,group} /home/log_user/etc/
#为 SSH 用户创建一个主目录
mkdir -p /home/log_user/log_user
cat > /home/log_user/log_user/.bash_profile <<EOF
# .bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
export TZ=GMT+16
PATH=\$PATH:\$HOME/.local/bin:\$HOME/bin
export PATH
EOF
cp /usr/share/zoneinfo/Asia/Shanghai /home/log_user/etc/localtime
chown -R log_user:log_user /home/log_user/log_user
chmod -R 0700 /home/log_user/log_user
source /home/log_user/log_user/.bash_profile
#配置 SSH 来使用 chroot 监狱
echo "# 定义要使用 chroot 监狱的用户" >> /etc/ssh/sshd_config
echo "Match User log_user" >> /etc/ssh/sshd_config
echo "# 指定 chroot 监狱" >> /etc/ssh/sshd_config
echo "ChrootDirectory /home/log_user" >> /etc/ssh/sshd_config
#重启 sshd 服务:
systemctl restart sshd
ssh受限用户
最新推荐文章于 2023-02-07 15:34:34 发布