将 chroot jail 设置为除少数本地用户之外的所有本地用户的默认 $HOME 目录
- 在VSFTP Server配置文件/etc/vsftpd/vsftpd.conf中,设置:
# vi /etc/vsftpd/vsftpd chroot_local_user=YES chroot_list_enable=YES
- 在 /etc/vsftpd/chroot_list 文件中添加不需要 chroot jail 的用户。
在本例中,我们将添加用户 user01 和 user02:
# cat /etc/vsftpd/chroot_list user01 user02
- 在VSFTP Server上重启vsftpd服务:
# service vsftpd restart Shutting down vsftpd: [ OK ] Starting vsftpd for vsftpd: [ OK ]
- 测试一个用户user01,设置为chroot jail,在chroot目录下创建一个目录:
# ftp ftp_host Connected to ftp_host (192.168.149.10). 220 (vsFTPd 2.0.5) Name (192.168.149.10:root): user01 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> pwd 257 "/" ftp> ls 227 Entering Passive Mode (192.168.149.10,61,227) 150 Here comes the directory listing. 226 Directory send OK. ftp> cd / 250 Directory successfully changed. ftp> ls 227 Entering Passive Mode (192.168.149.10,61,163) 150 Here comes the directory listing. 226 Directory send OK. ftp> mkdir chroot_jail 257 "/chroot_jail" created ftp>
- 检查VSFTP服务器上创建的目录:
[root@ftp_host ~]# ls / | grep chroot_jail [root@ftp_host ~]# ls /home/user01/ | grep chroot_jail chroot_jail
- 测试一个被排除在 chroot jail 中的用户 user03:
[root@ftpclient ~]# ftp ftp_host Connected to ftp_host (192.168.149.10). 220 (vsFTPd 2.0.5) Name (192.168.149.10:root): user03 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> pwd 257 "/home/user03" ftp> cd / 250 Directory successfully changed. ftp> mkdir chroot_jail 257 "/chroot_jail" created ftp>
- 检查VSFTP服务器上创建的目录:
[root@ftp_host ~]# ls / | grep chroot_jail chroot_jail
on
it
road
.com
将 chroot jail 设置为只有少数本地用户的默认 $HOME 目录
- 在 VSFTP Server 配置文件 /etc/vsftpd/vsftpd.conf 中,设置:
chroot_list_enable=YES
注意:确保“chroot_local_user”未设置为“YES”。
- 在 /etc/vsftpd/chroot_list 中列出需要 chroot jail 的用户,添加用户 user01 和 user02:
[root@ftp_host ~]# cat /etc/vsftpd/chroot_list user01 user02
- 在VSFTP Server上重启vsftpd服务:
[root@ftp_host ~]# service vsftpd restart Shutting down vsftpd: [ OK ] Starting vsftpd for vsftpd: [ OK ]
- 测试一个用户user01,设置为chroot jail,在chroot目录下创建一个目录:
[root@ftpclient ~]# ftp ftp_host Connected to ftp_host (192.168.149.10). 220 (vsFTPd 2.0.5) Name (192.168.149.10:root): user01 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> pwd 257 "/" ftp> ls 227 Entering Passive Mode (192.168.149.10,238,61) 150 Here comes the directory listing. 226 Directory send OK. ftp> cd / 250 Directory successfully changed. ftp> ls 227 Entering Passive Mode (192.168.149.10,83,211) 150 Here comes the directory listing. 226 Directory send OK. ftp> mkdir chroot_jail 257 "chroot_jail" created ftp>
- 检查VSFTP服务器上创建的目录:
[root@ftp_host ~]# ls / | grep chroot_jail [root@ftp_host ~]# ls /home/user01/ | grep chroot_jail chroot_jail
- 测试一个被排除在 chroot jail 中的用户 user03:
[root@ftpclient ~]# ftp ftp_host Connected to ftp_host (192.168.149.10). 220 (vsFTPd 2.0.5) Name (192.168.149.10:root): user03 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> pwd 257 "/home/user03" ftp> ls 227 Entering Passive Mode (192.168.149.10,231,117) 150 Here comes the directory listing. 226 Directory send OK. ftp> cd / 250 Directory successfully changed. ftp> mkdir chroot_jail 257 "chroot_jail" created ftp>
- 检查VSFTP服务器上创建的目录:
[root@ftp_host ~]# ls / | grep chroot_jail chroot_jail
如何设置 sftp 使用户无法离开其主目录,确保不影响其他用户?
嗯,有一个简单的方法来做到这一点。
我们可以将所有本地用户 chroot 到默认的 $HOME 目录,或者仅对特定用户执行此操作。
这篇文章专门列出了仅针对特定用户 chroot vsftpd 的步骤。
日期:2020-09-17 00:12:19 来源:oir作者:oir