Linux创建低权限用户

2018-10-30

使用 useradd 命令创建 SSH 用户:

useradd boy

也可以用高级交互式命名创建用户

adduser boy

根据提示一步步操作

使用 mknod 命令创建 /dev 下的文件。在下面的命令中,-m 标志用来指定文件权限位,c 意思是字符文件,两个数字分别是文件指向的主要号和次要号。

mkdir -p /home/test/dev/      
cd /home/test/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

对于交互式会话,这需要至少一个 shell,通常为 sh 和基本的 /dev 节点,例如 null、zero、stdin、stdout、stderr 和 tty 设备:

ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}

在 chroot 中设置合适的权限。注意 chroot 和它的子目录以及子文件必须被 root 用户所有,并且对普通用户或用户组不可写:

chown root:root /home/test
chmod 0755 /home/test
ls -ld /home/test

为 SSH chroot 设置交互式 shell,创建 bin 目录并复制 /bin/bash 到 bin 中:

mkdir -p /home/test/bin
cp -v /bin/bash /home/test/bin/

识别 bash 所需的共享库,如下所示复制它们到 lib64 和 lib 中

ldd /bin/bash
mkdir -p /home/test/lib64
cp -v /lib64/ld-linux-x86-64.so.2 /home/test/lib64/
mkdir -p /home/test/lib/x86_64-linux-gnu/
cp -v /lib/x86_64-linux-gnu/{libtinfo.so.5,libdl.so.2,libc.so.6} /home/test/lib/x86_64-linux-gnu/

创建 chroot 通用配置目录 /home/test/etc 并复制已更新的账号文件(/etc/passwd 和 /etc/group)到这个目录中:

mkdir /home/test/etc
cp -vf /etc/{passwd,group} /home/test/etc/

注意:每次向系统添加更多 SSH 用户时,都需要将更新的帐户文件复制到 /home/test/etc 目录中。

配置 SSH 来使用 chroot

打开 sshd_config 文件

vim /etc/ssh/sshd_config

文件中添加或修改下面这些行

# 定义要使用 chroot 的用户
Match User boy
# 指定 chroot 
ChrootDirectory /home/test

重启sshd

systemctl restart sshd 或者

service sshd restart

参考文章

https://linux.cn/article-8313-1.html

相关脚本

创建低权限用户脚本