千家信息网

linux下如何配置ftp服务器并设置虚拟账号的不同权限

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,本篇文章给大家分享的是有关linux下如何配置ftp服务器并设置虚拟账号的不同权限,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、创建
千家信息网最后更新 2024年11月22日linux下如何配置ftp服务器并设置虚拟账号的不同权限

本篇文章给大家分享的是有关linux下如何配置ftp服务器并设置虚拟账号的不同权限,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

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服务器并设置虚拟账号的不同权限,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

0