本篇文章给大家分享的是有关linux下如何配置ftp服务器并设置虚拟账号的不同权限,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
成都做网站、成都网站建设、成都外贸网站建设介绍好的网站是理念、设计和技术的结合。创新互联拥有的网站设计理念、多方位的设计风格、经验丰富的设计团队。提供PC端+手机端网站建设,用营销思维进行网站设计、采用先进技术开源代码、注重用户体验与SEO基础,将技术与创意整合到网站之中,以契合客户的方式做到创意性的视觉化效果。
1、创建用户数据库
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里把
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
里的/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
但是我试过,还是不行。
3、连接失败 OOPS: cannot change directory:/data/ftp
usermod -d /data/ftp ftp #安排主目录给ftp账户
4、可以连上了,但是不能修改文件
chown -R ftp.ftp /data/ftp
发现上传的汉字文档会有乱码。建议采用winscp使用ftp。
挂载NAS盘后,按照平常的设置会无法修改文件目录的权限。在EMC存储上设置的时候注意,
以上就是linux下如何配置ftp服务器并设置虚拟账号的不同权限,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。