网上教程很多,配置完成之后却发现无法登陆。
第一、问题出在Pam认证环节,所以
配置好虚拟用户发现用ftp客户端登录报530 Login incorrec错误,网上查了一会,问题定位为pam认证配置得不正确,将pam_userdb.so指定路径改为相对路径问题得以解决。
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/ftpusr
account required /lib/security/pam_userdb.so db=/etc/vsftpd/ftpusr改为:
auth required pam_userdb.so db=/etc/vsftpd/ftpusr
account required pam_userdb.so db=/etc/vsftpd/ftpusr
第二、另外FTP 用户上传于web用户权限不统一,怎么办? 记得web用户也是一个不能ssh登录的用户吧,那么好
把ftp的专属用户改为web用户吧
即:
vi /etc/vsftpd/vsftpd.conf
#启用虚拟用户
#guest_username=ftp_virt ---改为web用户www
guest_username=www
重启vsftp服务
第三、能上传不能下载,结果发现用户权限配置文件YES和NO区分大小写。汗颜!
#download_enable=Yes 错了哦
download_enable=YES
第四、附加网上的配置方式
VSFTP
虚拟用户创建方法
yum -y install vsftpd*
yum -y install pam*
yum -y install db4*
一、建立一个存放用户名和密码的文件vi mima.txt (记住路径,后面要用的着)
在文件里输入
用户名一
密码一
用户名二
密码二
用户名三
密码三
保存
二、生成虚拟用户帐户数据库
db_load -T -t hash -f /etc/vsftpd/mima.txt /etc/vsftpd/vsftpd_login.db
生成能被pam.d认识的数据库vsftpd_login.db
mima.txt
是前面建立的那个文件,
vsftpd_login.db可自己命名然后记好。如果以后要更改
mima.txt里的用户名的密码,重新执行上面命令才能生效。
chmod 600 /etc/vsftpd/vsftpd_login.db
更改权限只有ROOT用户才能读写
三、在pam.d下建立一个文件vsftpd_login(可自己命名,但要记住)
输入以下内容然后保存
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
#这里的vsftpd_login为之前建立的数据库文件vsftpd_login.db
在这里面把.db去掉
四、创建一个叫ftp_virt的用户,它的主目录为/home/ftpsite且不能登陆系统
useradd -d /home/ftpsite -s /nologin ftp_virt
chmod 777 /home/ftpsite/ #
更改属性
五、修改配制文件visftpd.conf
vi /etc/vsftpd/vsftpd.conf
在后面添加
guest_enable=YES
#启用虚拟用户
guest_username=ftp_virt
#
所有虚拟用户所对应系统贴是ftp_virt之前建立的那个。
pam_service_name=vsftpd_login
#调用之前建立在pam.d下的vsftpd_login文件,读取用户的信息保存、重启VSFTP就行。
虚拟用户的添加和为不同用户指定不同目录。
先在配制文件下添加这代码:
user_config_dir=/etc/vsftpd/user.d
然后在/etc/vsftpd/
建立user.d文件夹之后在文件夹里以mima.txt用户名为准新建和用户名同名的文件
vi /etc/vsftpd/user.d/用户名一
之后在文件里面输入如下代码:
#/etc/vsftpd/user.d/用户名一
local_root=/home/wuxiufeng/wxf
#End
为用户名一指定主目录为home/wuxiufeng/wxf
给用户设置权限
# vi /etc/vsftpd/user.d/用户名一
所有权限
write_enable=YES
anonymous_enable=NO
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
download_enable=Yes
local_root=/tools
# vi/etc/vsftpd/user.d/用户名二
上传权限
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
download_enable=NO
local_root=/data
# vi /etc/vsftpd/user.d/用户名三只能下载
write_enable=NO
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
local_umask=022
download_enable=yes
local_root=/data
10.
用户管理userdel选项用户名
#删除用户
常用的选项是-r,它的作用是把用户的主目录一起删除。
passwd选项用户名#修改口令
passwd -l 用户名
锁定口令,即禁用账号。
passwd -u 用户名
口令解锁。
passwd -d 用户名
使账号无口令。
passwd -f 用户名
强迫用户下次登录时修改口令。
如果默认用户名,则修改当前用户的口令。
如果是超级用户,可以用下列形式指定任何用户的口令:
passwd 用户名
passwd -d 用户名
此命令将用户的口令删除,这样用户下一次登录时,系统就不再询问口令
11.
是否想修改21端口呢?
先修改防火墙,增加其FTP端口,下面使用921
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 921 -j ACCEPT
/etc/init.d/iptables restart
#
重启防火墙
/etc/vsftpd/vsftpd.conf
里增加加
listen_port=921
/etc/rc.d/init.d/vsftpd restart
#重启vsftpd
netstat -an |grep 921
#查看端口是否正常启动