系统:Ubuntu 18.04 Server VSFTPD已安装。
我目前得到的:
sudo adduser 用户 sudo mkdir -p /opt/chroot/transfer sudo chown 用户 /opt/chroot/transfer
# */etc/ssh/sshd_config*
Include /etc/ssh/sshd_config.d/*.conf
Port 22
ChallengeResponseAuthentication no
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
#ChrootDirectory /opt/chroot/transfer (
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
# Example of overriding settings on a per-user basis
Match User user
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server
PasswordAuthentication yes
# */etc/vsftpd.conf*
listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=NO
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
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
ssl_enable=NO
allow_writeable_chroot=YES
我无法继续。用户可以访问任何地方。:/ 用户只能通过 ssh(端口 22)访问 /opt/chroot/transfer
答案1
解决方案:
使用此作为指南安装 vsftpd。
使用 useradd [user_name] 创建用户。
使用 passwd [user_name] 创建用户密码。(系统将提示您指定密码)。
在以下位置创建 FTP 目录/var/ftp然后绑定到您希望为该用户指定的“主”目录mount --bind /var/www/vhosts/domain.com/ /var/ftp/custom_name/。
使用以下命令更改用户的主目录usermod -d /var/ftp/自定义名称/ 用户名
在 /etc/vsftpd/vsftpd.conf 中,确保以下所有内容均已设置:-
*chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list*
如果您希望用户对服务器上的任何位置具有完全访问权限,则仅将用户列在 vsftpd.chroot_list 文件中。如果不在此文件中列出用户,则表示将所有 vsftpd 用户限制在其指定的主目录中。
换句话说(供参考):-
意味着默认情况下,除文件中的用户外,所有用户都会被 chroot...
chroot_local_user=是 chroot_list_enable=是
意味着默认情况下,只有文件中的用户会被 chrooted...
chroot_local_user=否 chroot_list_enable=是
来源:用户zigojacko