vsftpd配置

---[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 )

 

转载于:https://www.cnblogs.com/antarctican/p/4474753.html