如果我們需要給某個用戶提供訪問權限,但是又不想讓他看所有的資源,可以通過配置ssh,修改登錄用戶的根目錄。
1、這里建一個測試賬號test
ubuntu@localhost:~$ tail -n 1 /etc/passwd test:x:1001:1001:,,,:/home/test:/bin/bash ubuntu@localhost:~$ ls -l /home/ total 8 drwxr-xr-x 4 test test 4096 Feb 19 15:53 test drwxr-xr-x 10 ubuntu ubuntu 4096 Feb 19 16:07 ubuntu
2、在test目錄下創建一個jail目錄,用作test用戶登陸的根目錄,然后搭建一個chroot環境,為了方便,這里將根目錄綁定到jail目錄
ubuntu@localhost:~$ sudo mount --bind / /home/test/jail ubuntu@localhost:~$ ls /home/test/jail/ bin boot dev etc home initrd.img initrd.img.old lib lib64 lost+found media mnt opt proc root run sbin snap srv sys tmp usr var vmlinuz vmlinuz.old ubuntu@localhost:~$
3、修改jail路徑上的目錄的所有者為root:root,這里test到原所有者是test
ubuntu@localhost:~$ ls -l /home total 8 drwxr-xr-x 4 test test 4096 Feb 19 15:53 test drwxr-xr-x 10 ubuntu ubuntu 4096 Feb 19 16:07 ubuntu ubuntu@localhost:~$ sudo chown root:root /home/test ubuntu@localhost:~$ ls -l /home total 8 drwxr-xr-x 4 root root 4096 Feb 19 15:53 test drwxr-xr-x 10 ubuntu ubuntu 4096 Feb 19 16:07 ubuntu
4、修改sshd配置文件,在/etc/ssh/sshd_config末尾加上下面語句
Match User test
ChrootDirectory %h/jail
5、重啟sshd服務,使用test賬戶連接,可以看到,新的根目錄的proc沒有掛載proc系統
test@localhost:~$ ls / bin boot dev etc home initrd.img initrd.img.old lib lib64 lost+found media mnt opt proc root run sbin snap srv sys tmp usr var vmlinuz vmlinuz.old test@localhost:~$ ls /proc/