安装:
sudo apt install vsftpd
其配置文件为 /etc/vsftpd.conf
write_enable=YES #允许写文件操作
useradd -M -s /sbin/nologin ftp1 #创建一个本地 ftp 用户 ftp1
sudo passwd ftp1
sudo service vsftpd restart
530 Login incorrect :
修改 /etc/pam.d/vsftpd:
将 auth required pam_shells.so 修改为 auth required pam_nologin.so 或者将 auth required pam_shells.so 注释
创建虚拟用户:
虚拟用户的文件读写需要一个真实用户配合,先创建一个真实用户(在配置文件中关联guest_username)
sudo useradd -m -d /home/vsftpd vsftpd
sudo usermod -s /sbin/nologin vsftpd
启用匿名用户 anonymous
匿名用户使用的是系统的 ftp 用户
sudo vim /etc/vsftpd.conf
write_enable=YES #允许写文件操作
anonymous_enable=YES
anon_upload_enable=YES #匿名用户上传使能
anon_mkdir_write_enable=YES #匿名用户创建文件夹使能
#anon_root=/home/ftp #匿名用户根目录,默认为/srv/ftp
sudo service vsftpd restart
关于根目录写权限:
从 2.3.5 之后,vsftpd 增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报错误:
vsftpd: refusing to run with writable root inside chroot ()
解决方法:去除用户主目录的写权限
chmod a-w /srv/ftp
在根目录创建一个ftp用户可以写的目录
sudo mkdir /srv/ftp/public
sudo chmod 777 /srv/ftp/public
或者修改配置 allow_writeable_chroot=YES #允许根目录写
|