VSFTPD - 如何将用户禁锢在自己的目录中

VSFTPD - 如何将用户禁锢在自己的目录中

我想将用户“监禁”在其各自的目录中,但他们被监禁在 /var/www,并且有权在 www 的任何目录中“行走”和写入。

CentOS 7 上的 Vsftpd- 系统详细信息:

地点 1:

Path: /var/www/site1
Owner and group:  site1:site1
/home/site1 is a symbolic link to /var/www/site1

地点 2:

Path: /var/www/site2
Owner and group:  site2:site2
/home/site2 is a symbolic link to /var/www/site2

我的/etc/passwd:

[...]
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
site1:x:1000:1000::/var/www/./site1:bin/bash
php-fpm:x:995:992:php-fpm:/var/lib/php/fpm:/sbin/nologin
site2:x:1001:1001::/var/www/./site2:/bin/bash

我的 /etc/vsftpd/vsfptd.conf:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
xferlog_enable=YES

connect_from_port_20=YES
xferlog_std_format=YES
ascii_upload_enable=YES

chroot_local_user=YES
user_sub_token=$USER
local_root=/var/www/$USER ### also tried: local_root=/home/$USER
allow_writeable_chroot=YES
passwd_chroot_enable=YES
listen=NO
listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_max_port=10100
pasv_min_port=10090
force_dot_files=YES

我也禁用了 SELinux,启用后就无法使用 Windows 访问 ftp(即使在主动模式下)。

有人能看出这个问题吗?

答案1

解决了,伙计们!问题出在 /etc/passwd 主路径中的点。

之前(不工作):

site1:x:1000:1000::/var/www/./site1:bin/bash

工作中):

site1:x:1000:1000::/var/www/site1:bin/bash

相关内容