【ChrootDirectory】目的和用途:實現chroot
特別注意:該目錄,必須!!必須!!只有且僅有root用戶有w權限,其他用戶不能有w權限!
否則,會出現 “Write failed: Broken pipe” 錯誤。
【ChrootDirectory】用法1:全局禁用,Match條件啟用
#ChrootDirectory none # override default of no subsystems #Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp # Example of overriding settings on a per-user basis #Match User root,user2 # X11Forwarding no # AllowTcpForwarding no # ChrootDirectory none Match User user3 X11Forwarding no AllowTcpForwarding no ChrootDirectory /root/jin Match Group chroot X11Forwarding no AllowTcpForwarding no ChrootDirectory /root/jin
【ChrootDirectory】用法2:全局起用,Match條件禁用(比如,root例外)
ChrootDirectory /root/jin # override default of no subsystems #Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp # Example of overriding settings on a per-user basis Match User root,user2 X11Forwarding no AllowTcpForwarding no ChrootDirectory none
【ChrootDirectory】難點:必須自己手工准備這個“chroot directory”
- 可以自己從宿主系統通過ldd和strace從頭分析、提取相關文件搭建;
- 也可以直接找一個rootfs系統搭建,典型的如alpine-minirootfs-3.13.5-x86_64.tar
- 再難點的,你可以通過baseos或docker image中提取相關文件系統來搭建
- 更加騷的操作是,直接解壓各種livecd的squashfs來搭建
【ChrootDirecory】注意事項:
- sftp子系統,強烈推薦使用internal-sftp 來代替傳統兼容模式的openssh-sftp
- ssh登錄一般不會有問題,但scp就不一定了。