安装软件包:yum install -y vsftpd
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #不允许匿名用户登录
local_enable=YES #允许本地用户登录
write_enable=YES #写入权限
local_umask=077 #本地用户创建文件的umask值
anon_upload_enable=NO #不允许匿名用户上传
anon_mkdir_write_enable=NO #不允许匿名用户创建目录
dirmessage_enable=YES #当用户进入某个目录时,会显示该目录需要注意的内容,显示的档案默认是”.message”
xferlog_enable=YES # 表明将记录的上传下载情况写在xferlog_file所指定的文件中
connect_from_port_20=YES #主动模式数据传输接口
chown_uploads=YES #如果启用,所有匿名上传文件的所有权将更改为chown_username中指定的用户
chown_username=virtualuser
xferlog_file=/var/log/xferlog
xferlog_std_format=YES #传输日志文件将以标准 xferlog 的格式书写
idle_session_timeout=600 #空闲会话中断时间
data_connection_timeout=120 #表明数据连接超时时间为120秒
ftpd_banner=welcome #首次登录提示信息
chroot_local_user=YES #把所有用户限制在主目录
chroot_list_enable=NO #吧所有用户限制在主目录,不允许chroot_list中的例外
#chroot_list_file=/etc/vsftpd/chroot_list
listen=YES #启用监听模式
listen_ipv6=NO #启用IPv6监听模式,与listen互斥
pam_service_name=vsftpd #PAM模块提供的认证服务所使用的配置文件名
userlist_enable=YES #禁止userlist_file指定的文件中的用户名登录
tcp_wrappers=YES #主机访问控制
allow_writeable_chroot=YES
anon_other_write_enable=NO #不允许匿名用户修改
anon_world_readable_only=NO #不允许匿名用户下载
delete_failed_uploads=TRUE #将上传失败的文件删除
dirlist_enable=YES #允许显示目录列表
download_enable=YES #允许下载
local_root=/home/virtualuser #FTP根目录
anon_max_rate=1048576 #匿名用户最大传输速率(字节/秒),0为无限制
local_max_rate=1048576 #本地用户最大传输速率(字节/秒),0为无限制
anon_umask=022 #匿名用户创建文件的umask值
max_login_fails=3 #3次登录失败终止会话
max_per_ip=10 #限制客户端的并发连接数
pasv_enable=YES #开启被动模式
pasv_min_port=24500 #被动模式最小端口
pasv_max_port=24600 #被动模式最大端口
listen_address=192.168.200.101 #监听地址
guest_enable=YES#开启虚拟用户
virtual_use_local_privs=YES
#当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限
guest_username=virtualuser #虚拟用户对应系统用户
创建虚拟用户
useradd -s /sbin/nologin virtualuser
systemctl start vsftpd
systemctl enable vsftpd
编辑虚拟用户账号密码
vim /etc/vsftpd/virtualuser
user123
123
user456
456
生成虚拟用户数据文件
db_load -T -t hash -f /etc/vsftpd/virtualuser /etc/vsftpd/virtualuser.db
删除保存有账号密码的文件
rm -f /etc/vsftpd/virtualuser
修改认证方式(注释掉所有内容,添加下列内容)
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtualuser
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtualuser
500 OOPS: vsftpd: refusing to run with writable root inside chroot()错误解决办法
在vsftpd配置文件中增加:
allow_writeable_chroot=YES 或:
chmod 555 virtualroot/ #去除ftp目录写权限
原文地址:https://www.cnblogs.com/liang-yao/p/8449640.html