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

 

posted @ 2012-09-18 15:00  xiaoshi1991  阅读(1056)  评论(2编辑  收藏  举报