centos7.3 vsftpd 多用户配置
1. 安装vsftpd及pam认证服务软件
yum install vsftpd* -y yum install pam* libdb-utils libdb* --skip-broken -y
#设置开机启动
systemctl enable vsftpd.service
#启动
systemctl start vsftpd.service
2. 配置/etc/vsftpd/vsftpd.conf 文件
listen=YES #若设定为 YES 表示 vsftpd 是以 standalone 的方式来启动的 anonymous_enable=NO #静止匿名登录 local_enable=YES #设定本地用户可以访问 local_umask=022 #设定上传后文件的权限掩码 dirmessage_enable=YES #设定开启目录标语功能 use_localtime=YES xferlog_enable=YES #设定开启日志记录功能 connect_from_port_20=YES #设定端口20进行数据连接 chroot_local_user=YES #禁止用户访问除主目录以外的目录 local_root=/data/vsftpd #访问的目录 ascii_upload_enable=YES ascii_download_enable=YES #设定支持ASCII模式的上传和下载功能 pam_service_name=vsftpd #设定,启用pam认证 guest_enable=YES #启动虚拟用户 guest_username=vsftpd #虚拟用户使用的系统用户名 user_config_dir=/etc/vsftpd/vsftpd_user_conf #虚拟用户使用的配置文件目录 virtual_use_local_privs=YES #虚拟用户和本地用户有相同的权限 allow_writeable_chroot=YES #只能访问自身所属目录,否则会有 500 错误
3. 创建虚拟用户
创建vsftpd系统用户 #useradd vsftpd -d /data/vsftpd -s /sbin/nologin #chown -R vsftpd:vsftpd /data/vsftpd 填写用户名good和密码123,其它依次填写 #vim /etc/vsftpd/ftpuser.txt good 123 生成数据库文件 #db_load -T -t hash -f /etc/vsftpd/ftpuser.txt /etc/vsftpd/vsftpd_login.db 在/etc/pam.d/下创建配置vsftpd的数据库pam认证文件vsftpd,其它注释或删掉 #vim /etc/pam.d/vsftpd auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login account required pam_userdb.so db=/etc/vsftpd/vsftpd_login 配置good用户 #mkdir -p /etc/vsftpd/vsftpd_user_conf #vim /etc/vsftpd/vsftpd_user_conf/good local_root=/data/vsftpd/good write_enable=YES #mkdir -p /data/vsftpd/good
4. 配置selinux
查看 selinux配置 [root@localhost ~]# getsebool -a | grep ftpd ftpd_anon_write --> off ftpd_connect_all_unreserved --> off ftpd_connect_db --> off ftpd_full_access --> off ftpd_use_cifs --> off ftpd_use_fusefs --> off ftpd_use_nfs --> off ftpd_use_passive_mode --> off 使能ftpd_full_access #setsebool -P allow_ftpd_full_access 1
需要防火墙添加FTP服务。
#firewall-cmd --permanent --zone=public --add-service=ftp
#firewall-cmd --reload
5. 重启vsftpd并测试
[root@localhost ~]#systemcl restart vsftpd.service [root@localhost ~]# ftp localhost Trying ::1... ftp: connect to address ::1拒绝连接 Trying 127.0.0.1... Connected to localhost (127.0.0.1). 220 (vsFTPd 3.0.2) Name (localhost:root): good 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (127,0,0,1,166,74). 150 Here comes the directory listing. -rwxrwxrwx 1 1001 1001 0 Sep 18 09:17 good -rwxrwxrwx 1 1001 1001 0 Sep 18 09:23 test2 226 Directory send OK. ftp>
6. 虚拟用户权限配置
管理员权限 local_root=/data/vsftpd anon_world_readable_only=NO write_enable=YES anon_mkdir_write_enable=YES anon_upload_enable=YES anon_other_write_enable=YES 只能读写不能修改删除 local_root=/data/vsftpd/good anon_world_readable_only=NO write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=NO virtual_use_local_privs=NO 只能读 local_root=/data/vsftpd anon_world_readable_only=NO
参考文献:
https://www.cnblogs.com/chenbaoli/p/8195697.html
https://blog.csdn.net/xujin12368/article/details/80920246
http://www.cnblogs.com/fengdejiyixx/p/9324689.html
https://blog.csdn.net/programer_bei/article/details/52333586