linux下vsftp服务器相关配置问题

 

  最近需要在linux下写PHP程序实现ftp文件的上传和下载功能,需实现不同ftp用户登陆到各自目录下,并对其进行相关权限配置,经过

搜索,发现vsftpd使用比较广泛,决定采用vsftpd架设ftp服务器来进行测试。

 

  安装比较简单,直接安装vsftpd及db4的rpm包即可,默认是支持匿名登陆方式的,考虑实际应用,肯定是不允许匿名登陆的,而采用linux系统用户的话安全性也会是一个不容忽视的问题,因此考虑采用虚拟用户的方式,创建一个虚拟用户组,同时采用pam认证的方式

进行密码验证,vsftpd.conf的相关配置网上比较多就不再做详细说明,下面就几个关键的步骤进行一下说明。

 

1.创建ftpd组用户

建立虚拟用户及所要访问的目录并设置相应权限

[root@mail ftp]# groupadd ftpd
[root@mail ftp]# mkdir /home/ftpd
[root@mail ftp]# useradd -g ftpd -d /home/ftpd/ -s /sbin/nologin -M ftpd
[root@mail ftp]# chmod 700 /home/ftpd/
[root@mail ftp]# chmod 700 /home/ftpd
[root@mail ftp]# chown ftpd.ftpd /home/ftpd

 

 

2.创建pam认证文件

首先写一个用户列表文本文件,其中奇数行为用户名,偶数名为密码

然后使用如下命令生成db格式文件并设置其访问权限

[root@mail ftp]# db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
[root@mail ftp]# chmod 600 /etc/vsftpd_login.db

下面一步是关键,我想很多人会遇到即使添加上ftp用户了,可不管如何登陆,vsftpd服务器密码总是验证失败的问题,我开始也是

在网上到处找寻也没找到,最后自己在不经意间测试成功了。

打开/etc/pam.d/vsftpd文件,把其中的认证行全部注释掉,然后添加下面两行认证信息:

auth required pam_userdb.so db=/etc/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd_login

3.配置虚拟用户权限

在ftp目录下新建各个用户的目录(目录名与用户列表文件中的用户名相同),并设置宿主为虚拟用户组(ftpd)

注意如果设置虚拟用户的话需在vsftpd.conf中添加:

guest_enable=YES
guest_username=beinan
chroot_local_user=YES
user_config_dir=/etc/vsftpd_user_conf

其中user_config_dir用于保存各虚拟用户的个人配置文件,文件名与用户名相同,下面一个配置格式:

#绑定用户目录

local_root=/home/ftpd/ftp_e-dfzd
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES

 

一般注意以上几点即可再加上网络上的关于vsftpd配置大全基本上就可以解决vsftpd配置及登陆等相关问题。

 

写得比较杂乱无章,如有问题,可联系我。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值