---[2015-05-03 21:29]---
(系统环境: Centos 7 64bit)
一、下载源码包,或直接从库中安装
二、配置
vim /etc/vsftpd/vsftpd.conf
设以下选项
anonymous_enable=NO # 是否支持匿名用户
ascii_upload_enable=YES
ascii_download_enable=YES
userlist_enable=YES # 是否支持文件列表管理用户
listen_port=21 # 以独立进程监听此端口
pasv_enable=YES # 被动模式
chroot_local_users=YES # 将用户转到各自home目录
local_umask=022 # 系统user上传时,使用此权限(文件:644,文件夹:755)
anon_umask=022 # 虚拟用户上传时,使用此权限
file_open_mode=644 # 文件权限
三、(可选)/etc/vsftpd/ftpusers 此文件中用户禁止登录
四、/etc/vsftpd/user_list(使用实际系统用户时需要)
进入编辑 /etc/vsftpd/user_list 用户列表
开启userlist支持:
userlist_enable=YES
userlist_deny=YES #user_list里的用户拒绝登录
userlist_deny=NO #user_list里的用户允许登录
五、/etc/vsftpd/chroot_list
# chroot_local_user=YES #设为YES将把所有用户限制在home目录
或者, 只限定指定用户到home目录
# chroot_list_enable=YES
# chroot_list_file=/etc/vsftpd/chroot_list
以上的账号部分,都是针对实际user的。或者,我们可以使用虚拟账户。如下
六、上传文件权限
chown_uploads=YES #开启上传文件自动更改own
chown_username=vsftpd #上传完毕时,文件所有者更改为此用户。
需要注意的是, vsftpd的系统user账号(vsftpd) 需要拥有 上传目录的写入权限,才能chown改所有者
※ 建立虚拟用户
这是一个非常有用的功能, 它建立的是虚拟账号, 在操作时以指定user执行的。
@开启虚拟账户选项
编辑 /etc/vsftpd/vsftpd.conf:
pam_service_name=vsftpd
guest_enable=YES #开启虚拟用户
guest_username=vsftp #虚拟用户实际上使用的系统账号
@建立这个系统账号
# useradd -s /sbin/nologin vsftp
@生成用户账号及密码,并应用
# vim vuser_list.txt #编辑, 奇数行账号,偶数行密码
# db_load -T -t hash -f /etc/vsftpd/vuser_list.txt /etc/vsftpd/vuser_list.db
# pam_service_name=vsftpd # 放在/etc/pam.d/下面认证文件的名字
# vim /etc/pam.d/vsftpd
注释所有,添加以下两行 指定为 vuser_list.db
# auth required pam_userdb.so db=/etc/vsftpd/vuser_list
# account required pam_userdb.so db=/etc/vsftpd/vuser_list
@可以给虚拟账号限定home目录,即用户ftp连接顶层目录
user_config_dir=/etc/vsftpd/vuser.d
在此文件夹下,给每个用户建立一个同名文件,内容如
local_root=/var/www/html/abc.com
@关于虚拟用户的权限(这些选项可以单独写到虚拟user独立配置文件中去)
virtual_use_local_privs=NO # 是否让虚拟用户和实际系统user具有相同权限
write_enable=YES
主要用户权限项:
anon_world_readable_only=YES # 是否只读
anon_upload_enable=YES # 是否允许上传
anon_mkdir_write_enable=YES # 是否可以创建文件夹
anon_other_write_enable=YES # 是否允许其他写权限,如删除、重命名
@关于文件权限
anon_umask 和 file_open_mask 控制
(本博客相关文章:给linux下网站目录配置SFTP )