不足之處,盡請諒解。
用openssh改變用戶根目錄:一個簡單的方式約束用戶在他們的家目錄
1,確保你安裝的openssh版本為4.9p1或高於該版本
2,編輯/etc/ssh/sshd_config
添加以下內容
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
確保“match”指令在文件末尾,這會告訴openssh,所有處於sftp組的用戶,限制他們的家目錄。
3,添加你想限制的用戶到sftp組
usermod -G sftp joe
usermod -s /bin/false joe
chown root:root /home/joe
chmod 0755 /home/joe
改組用戶沒有shell權限,可用chown和chmod設置目錄權限,當設置這些權限的時候,用戶可以上傳或下載
文件,但不能創建目錄或文件在根目錄,換句話說,如果這些用於web集群,確保子目錄在根下,如/home/joe/public_html/ 用戶有效且擁有所有權,這種方式用戶可以在/home/joe/public_html下寫和創建目錄,但是不能自己改變根目錄(/home/joe)
在chroot里創建一個基本的系統
# mkdir /chroot
# cd /chroot
# mkdir {bin,dev,lib}
# cp -p /bin/bash bin/
# cp -p /lib/{ld-linux.so.2,libc.so.6,libdl.so.2,libtermcap.so.2} lib/
# mknod dev/null c 1 3
# mknod dev/zero c 1 5
# chmod 0666 dev/{null,zero}
# mkdir -p /chroot/home/joe
用戶joe可以遠程受限的目錄,通常的情況下,這種作法不常見,但給了你一個思路,你可以安裝庫和二進制文件在受限目錄中。