gclegal
我正在嘗試使用 chroot Jail將使用者限制在名為的特定目錄中。我已取消註解/etc/vsftpd.conf
文件中的行
chroot_local_user=YES
建立了一個名為 的新使用者kg
:
$ sudo groupadd xenomai
$ sudo useradd -d /var/www/html/gclegal -g xenomai kg
$ sudo passwd kg
透過此配置,我可以使用kg
使用者透過 vsftpd 登錄,但我也可以瀏覽回父目錄並修改它們,直到/var/www/html
.
如何停用使用者 ( /var/www/html/gclegal
) 家以外的所有操作?
答案1
從vsftpd
2.2.2 版本開始,有兩種將使用者關在chroot
監獄中的選項:
chroot_list_enable
只需將用戶添加到chroot
列表中/etc/vsftpd/chroot_list
,例如您想要放入chroot jail
.
chroot_local_user
這將把所有當地用戶關進chroot
監獄,然而,如果設定了此選項,則將chroot_list
成為使用者的列表不要進去 a chroot jail
.
kg
因此,如果您已配置,請檢查您的清單不包含使用者chroot_local_user=YES
。
顯然,vsftpd
在進行配置變更後重新啟動守護程序。
摘自 man vsftpd.conf
chroot_list_enable
If activated, you may provide a list of local users who are placed in a chroot() jail in their home directory upon login. The meaning is slightly different if
chroot_local_user is set to YES. In this case, the list becomes a list of users which are NOT to be placed in a chroot() jail. By default, the file containing this list
is /etc/vsftpd/chroot_list, but you may override this with the chroot_list_file setting.
Default: NO
chroot_local_user
If set to YES, local users will be (by default) placed in a chroot() jail in their home directory after login. Warning: This option has security implications, especially
if the users have upload permission, or shell access. Only enable if you know what you are doing. Note that these security implications are not vsftpd specific. They
apply to all FTP daemons which offer to put local users in chroot() jails.
Default: NO
我已經為使用者配置了 vsftpd chroot
,這些是/etc/vsftpd.conf
我使用的設定 ( Ubuntu 14.04
):
listen=YES
anonymous_enable=NO
local_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
chroot_list_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
allow_writeable_chroot=YES
筆記:
確保/etc/vsftpd.chroot_list
或/etc/vsftpd/chroot_list
為空。
一旦你讓它工作,如果你想追蹤ftp
登錄,那麼你可以設置session_support=YES
,然後這些應該使用以下last
命令顯示:
username vsftpd:12025 IP address Tue Oct 14 14:05 - 14:10 (00:05)
username vsftpd:12011 IP address Tue Oct 14 14:04 - 14:05 (00:00)
注意 - utmp 和 wtmp 支援僅在啟用 PAM 的版本中提供。
答案2
我將 selinux 設定為permissive
並重新啟動vsftpd.service
,這解決了問題。