最模板 - 外贸网站建设,外贸网站模板

最模板

当前位置: 首页 > 建站教程 > php教程 >

vsftpd+mysql的虚拟用户配置记录

时间:2014-06-09 16:40来源: 作者: 点击:
1.安装vsftpd yum install vsftpd就ok 2.需要pam_mysql组件,在这里 3.编译参数看下INSTALL 我这里用了一个参数就 withmysql=/usr/local/amp/mysql5 4.建立mysql数据库、表 db=vsftpd table=users(username,userpass,homedir),建立对

1.安装vsftpd yum install vsftpd就ok

2.需要pam_mysql组件,在这里

3.编译参数看下INSTALL 我这里用了一个参数就 withmysql=/usr/local/amp/mysql5

4.建立mysql数据库、表 db=vsftpd table=users(username,userpass,homedir),建立对应mysql帐户 vsftpd vsftpd(当然也可以用root或者现有帐户)

5.修改/etc/pam.d/vsftpd 新增两行:

  1. account required /usr/lib/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=username passwdcolumn=userpass 

6.建立用来存放虚拟用户配置文件的文件夹,我的在/etc/vsftpd/virtual,里面放了一个配置文件模板叫_tpl write_enable=YES 

  1. anon_mkdir_write_enable=YES  
  2. anon_upload_enable=YES  
  3. anon_other_write_enable=YES 

代码意思是,就差一个homedir了

7.打开/etc/vsftpd/vsftpd.conf,设置修改为 #一定要有

  1. listen=YES 
  2. #listen_port=10021 
  3. connect_from_port_20=YES 
  4. #服务器提示 
  5. ftpd_banner=Welcome to My FTP server. 
  6. #关闭匿名访问 
  7. anonymous_enable=NO 
  8. local_enable=YES 
  9. write_enable=NO 
  10. anon_upload_enable=NO 
  11. anon_mkdir_write_enable=NO 
  12. anon_other_write_enable=NO 
  13. chroot_local_user=YES 
  14. guest_enable=YES 
  15. #虚拟用户所使用的帐号,如果这里是root,那你传上去的文件所有者也是root, 
  16. #一般安全情况下,请设立单独的vsftpd的用户,就像mysql的独立访问用户一样 
  17. guest_username=root 
  18. pasv_min_port=30000 
  19. pasv_max_port=30999 
  20. #这里对应着/etc/pam.d/下的那个vsftpd 见第6条 
  21. pam_service_name=vsftpd 
  22. #虚拟用户配置文件目录 
  23. user_config_dir=/etc/vsftpd/virtual 
  24. xferlog_enable=YES 
  25. #xferlog_file=/var/log/vsftpd.log 
  26. xferlog_file=/data1/logs/vsftpd/vsftpd.log 
  27. anon_world_readable_only=NO 
  28. anon_umask=022 
  29. file_open_mode=0777 
  30. local_umask=022 
  31. #20080811 last modify 
  32. data_connection_timeout=120 

要注意这里,local_umask和anon_umask的值,你的文件上传之后的权限值 = 777 local_umask,也就是,上例中的022,你上传之后,文件权限会是755

8./etc/vsftpd/vsftpd restart

9.我这里还有两个shell,但是我的bash很笨,if判断会有错误,增加ftp用户: 

  1. #!/bin/bash 
  2.  
  3. clear 
  4.  
  5.  
  6. echo "******************************" 
  7.  
  8. echo "* Add vsftpd User Script *" 
  9.  
  10. echo "* AnVy 2008.0516 *" 
  11.  
  12. echo "******************************" 
  13.  
  14. echo "Enter user account:[Enter Key]" 
  15.  
  16. read username 
  17.  
  18. echo "Username is $username, Now Enter the password:[Enter Key]" 
  19.  
  20. read userpass 
  21.  
  22. echo "Asign the user's ftp home directory:[Enter Key]" 
  23.  
  24. read home 
  25.  
  26. echo "create this dir?[y/n]:" 
  27.  
  28. read $cd 
  29.  
  30. if [ $cd="y" ] 
  31.  
  32. then 
  33.  
  34. mkdir $home 
  35.  
  36. fi 
  37.  
  38. #chown R www:www $home 
  39.  
  40. /usr/local/amp/mysql5/bin/mysql uvsftpd pvsftpd<<EOF 
  41.  
  42. use vsftpd; 
  43.  
  44. replace into users (username,userpass,homedir) values ('$username','$userpass','$home'); 
  45.  
  46. \q 
  47.  
  48. EOF 
  49.  
  50. cp /etc/vsftpd/virtual/_tpl /etc/vsftpd/virtual/$username 
  51.  
  52. #在用户配置文件追加家目录配置参数 
  53.  
  54. echo "local_root=$home" >> /etc/vsftpd/virtual/$username 
  55.  
  56. echo "$username with homedir= $home was added." 

ftp帐户列表以及删除用户

  1. #!/bin/bash 
  2.  
  3. clear 
  4.  
  5. echo "******************************" 
  6.  
  7. echo "* Add vsftpd User Script *" 
  8.  
  9. echo "* AnVy 2008.0516 *" 
  10.  
  11. echo "******************************" 
  12.  
  13. echo "UserList:" 
  14.  
  15. /usr/local/amp/mysql5/bin/mysql uvsftpd pvsftpd<<EOF 
  16.  
  17. use vsftpd; 
  18.  
  19. select * from users; 
  20.  
  21. \q 
  22.  
  23. EOF 
  24.  
  25. echo "Delete user account:[Enter Key]" 
  26.  
  27. read username 
  28.  
  29. /usr/local/amp/mysql5/bin/mysql uvsftpd pvsftpd<<EOF 
  30.  
  31. use vsftpd; 
  32.  
  33. delete from users where username='$username'
  34.  
  35. \q 
  36.  
  37. EOF 
  38.  
  39. unlink /etc/vsftpd/virtual/$username 
  40.  
  41. echo "$username without homedir was removed." 

以上代码设置,可以简单实现我的虚拟用户分配,我也不太懂什么高深的设置,这样就可以实现我输入用户名,密码,家目录,就能开vsftpd帐户了,而且文件上传之后权限是755, 完全可用。

(责任编辑:admin)
------分隔线----------------------------
栏目列表
推荐内容