vsftpd用户配置教程
主要步骤为:
1 生成虚拟用户口令库文件
2 配置生成vsftpd的认证文件
3 建立虚拟用户所要访问的目录并设置相应权限
4 建立配置文件
====================================================================
开始前:
yum install vsftpd db4 db4-devel db4-utils ftp
service vsftpd start
vi /etc/vsftpd/vsftpd.conf
关闭匿名用户登陆和匿名用户上传、创建目录权限
然后在文件尾部添加
#设置被动模式的端口变化范围
pasv_min_port=65510
pasv_max_port=65535
guest_enable=YES
#设置本地用户名 (以后你创建的虚拟用户都属于ftp:ftp)
guest_username=apache
#虚拟用户文件存放目录
user_config_dir=/etc/vsftpd/userconf
#限制本地用户在宿主目录
chroot_local_user=YES
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list
#只限制chroot_list 中的用户在宿主目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
1 生成虚拟用户口令库文件
cd /etc/vsftpd
vi user_login
xiaoshi1991
123456
此文本文件的格式为:奇数行为用户名,偶数行为口令
使用db_load命令生成口令库文件
vi dbuser.sh
rm -f vsftpd_login.db
db_load -T -t hash -f /etc/vsftpd/user_login /etc/vsftpd_login.db
chmod 600 /etc/vsftpd_login.db
:wq保存退出,然后
./dbuser.sh
chmod 755 dbuser.db
2 编译生成虚拟用户所需的PAM配置文件
vi /etc/pam.d/ftp
注释掉原来的
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
3 建立虚拟用户所要访问的目录并设置
mkdir userconf
cd userconf
vi xiaoshi1991
local_root=/var/ftp/pub
write_enable=YES
anon_upload_enable=YES
anon_world_readable_only=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=NO
virtual_use_local_privs=YES
#让虚拟用户可以修改所有用户在当前目录创建的文件
=================================常见错误解决方案============================
1、
550 Create directory operation failed
这个往往是SELinux搞的鬼,SELinux(Security-Enhanced Linux----是美国国家安全局对于
强制访问控制的实现, 是Linux 上最杰出的新安全子系统.) 只要disable SELinux就可以了
.(简单吧! 一个小问题搞得我废寝忘食)
# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing (把默认的改成disabled)
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
# reboot (重启机器)
问题即可解决!
2、localhost可以连接FTP ,其他机器不可以连接(例如宿主机)
这一般就是iptables的问题,暂时关闭iptables试试,如果关闭后可以连接,那就是防火墙
问题了
关闭防火墙命令:service iptables stop
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT
3、输入service vsftpd start后不能启动
解决方案
service xinetd stop
service vsftpd restart