1、创建用户数据库
点击(此处)折叠或打开
2 生成数据库:
1
2
3
|
db_load:安装 db4,db4-devel,db4-utils
#yum -y install db4*
#db_load -T -t hash -f /etc/vsftpd/vsftpd_login.txt /etc/vsftpd/vsftpd_login.db
|
3 修改数据文件访问权限:
1
|
chmod 600 /etc/vsftpd/vsftp_login.db
|
4 修改pam配置:
1
2
3
4
5
|
#cat /etc/pam.d/vsftpd.vu
将原来的全部注释掉,加入:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
注意:db=/etc/vsftpd/vsftpd_login 后面的.db必须去掉
|
5 创建虚拟账号对应的系统用户:
就用ftp默认账户
修改主配置文件,guest_enable代表开启虚拟账户功能,
所有的虚拟账户都将被映射为guest_username指定的系统账户。
如果需要对虚拟账户做权限设置,通过与匿名账户一样的设置项进行,
如anon_mkdir_write_enable=NO既是控制虚拟账户无法创建目录。
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=NO #在每个虚拟账户里单独设置
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES #允许虚拟账户
guest_username=ftp #所有虚拟账户的真实映射账户
listen=YES
listen_port=21
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd/vconf
pasv_promiscuous=YES
max_clients=40 #最多40个客户端连接
max_per_ip=5 #每个IP最多5个连接
6、配置/etc/vsftpd/vconf里的虚拟用户配置
[root@localhost vconf]# ls
user1 user2
vi user1
local_root=/data/ftp
write_enable=YES
vi user2
local_root=/data/ftp #user2只有下载的权利,没有上传的权利。
7、重新启动
service vsftpd restart
ps:配置完成后,在用ftp客户端测试时,发现问题。
1、提示错误代码:530 Login incorrect.
在vsftpd.vu里把
里的/lib/security/pam_userdb.so绝对路径去掉,只用pam_userdb.so
2、提示错误连接失败 OOPS: 500 OOPS: child died
网上的方法
修改vsftpd服务端配置文件
vi /etc/vsftpd/vsftpd.conf
增加下面行,重启服务即可
pasv_promiscuous=YES
解决办法二,如果上面办法还是解决不了我们可以尝试如下解决办法
1、 查看 SELinux 的状态: sestatus -b | grep ftp
2、 在出现的结果中可以看到
ftp_home_dir off
tftpd_disable_trans off
之类。我们现在只要把其中之一设置为on就可以啦。
3、 setsebool -P ftpd_disable_trans on 或者 setsebool -P ftp_home_dir on
4、 重启vsftpd: service vsftpd restart
5.如果还是不成功的话,执行以下命令,然后重启FTP
[root@windos-test-01 vsftpd]# setsebool allow_ftpd_full_access 1
[root@windos-test-01 vsftpd]# setsebool allow_ftpd_use_cifs 1
[root@windos-test-01 vsftpd]# setsebool allow_ftpd_use_nfs 1
[root@windos-test-01 vsftpd]# setsebool -P ftp_home_dir 1
[root@windos-test-01 vsftpd]# setsebool httpd_enable_ftp_server 1
[root@windos-test-01 vsftpd]# setsebool tftp_anon_write 1
[root@windos-test-01 vsftpd]# service vsftpd restart
|
|
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29820633/viewspace-2140967/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29820633/viewspace-2140967/