准备安装包:yum install vsftpd
启动服务: systemctl start vsftpd
步骤:
一、创建虚拟用户数据库文件
①编辑文本文件
vim /etc/vsftpd/ftpuser.txt 奇数行是用户名,偶数行是密码
ftpuser1
123456
ftpuser2
123456
②此文件需要被编码为hash格式
cd /etc/vsftpd/
db_load -T -t hash -f ftpuser.txt ftpuser.db 编码为hash格式
chmod 600 ftpser.db 为了安全修改权限
file ftpuser.db 查看文件格式
二、创建系统用户和访问FTP目录
①useradd -r -m -d /var/ftproot -s /sbin/nologin ftpuser 即/var/ftproot是根目录
②chmod 555 /var/ftproot/ 根目录上不能有写权限,否则不能登录
③mkdir /var/ftproot/upload 创建子目录,方便用户访问
④setfacl -m u:ftpuser:rwx /var/ftproot/upload 给予系统用户对该目录的rwx权限
三、创建pam配置文件,用来完成用户认证
vim /etc/pam.d/vsftpd.db
auth required pam_userdb.so db=/etc/vsftpd/ftpuser[.db]
account required pam_userdb.so db=/etc/vsftpd/ftpuser[.db]
后缀db可省略,会自动识别
四、编辑vsftpd配置文件,指定pam配置文件
vim /etc/vsftpd/vsftpd.conf
添加下面两行
guest_enable=YES
guest_username=ftpuser 映射为系统用户ftpuser
修改下行:
pam_service_name=vsftpd.db pam配置文件
五、SELinux设置
禁用selinu,或者setenforce 0
六、虚拟用户建立独立的配置文件
说明:vsftpd可以在配置文件目录中为每个用户提供单独的配置文件以定义其ftp服务访问权限,每个虚拟用户的配置文件名同虚拟用户的用户名。配置文件目录可以是任意未使用目录,只需要在vsftpd.conf指定其路径及名称即可。
①mdkir /etc/vsftpd/ftpuser.d/ 创建配置文件存放的路径
②编辑vsftp配置文件,指明用户配置文件路径:
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/ftpuser.d/
③创建用户ftpuser1自已的配置文件,登陆目录为默认目录(/var/ftproot/)
vim /etc/vsftpd/ftpuser.d/ftpuser1 文件名同用户名
anon_upload_enable=YES 支持上传
anon_mkdir_write_enable=YES 支持创建文件夹
实现效果:wang用户连接ftp登陆之后,进入upload目录可以上传文件和创建文件夹了
④创建用户ftpuser2的配置文件,实现登陆目录改变至指定目录
mkdir /var/ftproot2;chmod 555 /var/ftproot2 作为ftpuser2的登陆目录
vim /etc/vsftpd/ftpuser.d/ftpuser2
local_root=/var/ftproot2 登录目录改变至指定的目录
七、重启vsftpd服务
systemctl restart vsftpd
八、客户端测试:需要事先安装ftp客户端工具(yum install ftp)
①ftp 192.168.199.140(vsftpd服务器ip)
使用ftpuser1登陆,可以使用put上传文件并且可以创建文件夹。效果如下:
②ftp 192.168.199.140
使用ftpuser2登陆,使用ls看不到任何文件,说明已经更改登陆目录,效果如下:
感谢浏览,如有不同意见,欢迎留言。
本文转自lc0108131451CTO博客,原文链接:http://blog.51cto.com/13150617/1976542 ,如需转载请自行联系原作者