sftp 限制用戶登陸指定目錄(家目錄)
限制 sftp 用戶登陸後,只能在家目錄下活動,不能到其他或上級目錄,可以按照下面方法進行操作:
一、升級ssh軟件,版本必須在 4.8 以上;
二、備份配置文件:(以下所有命令,都需要使用root用戶來執行)
cd /etc/ssh/
mv sshd_config sshd_config.bak
mv sshd_config.rpmnew sshd_config
三、修改 /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server (這行必須註釋掉)
Subsystem sftp internal-sftp
Match Group chroot
ChrootDirectory /chroot/%u
ForceCommand internal-sftp
說明:本配置中,ChrootDirectory 是 /chroot/%u,匹配這個規則的組名爲 chroot(根據自己需求更改可以),所以以後添加需要限制活動目錄的用戶時,必須屬於chroot這個組;
四、建立相關目錄,添加用戶和組,這裏以work用戶爲例:
cd /
mkdir chroot
groupadd chroot
useradd -d /chroot/work -g chroot -s /bin/false work
passwd work
chown root /chroot/work
chmod 750 /chroot/work
說明:在/chroot目錄下,用戶家目錄 work 的屬主必須是root,而不能是用戶本身,屬組的話,必須是chroot,權限 750 (需要注意的是,新建用戶的家目錄,權限是700,但這樣sftp登陸的話,是看不到目錄下的列表的,所以,必須是750的權限(否則連接失敗))且 chroot目錄應爲755權限 例如:
1 drwxr-x--- 7 root chroot 4096 Aug 5 13:23 work
多個用戶時,重複以上操作,使其屬於chroot組即可。
五、如果需要上傳文件,則按照下面執行:
cd /chroot/work
mkdir {upload,pub}
chmod a+w upload -R upload
其中,upload目錄爲可讀寫權限,可以用來上傳,pub目錄爲只讀權限,可以用來下載。(當然upload權限足夠,既可以用於上傳也可下載)
六。重啓服務
service sshd restart