用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

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

时间:2015-01-23  来源:西部数据  作者:西部数据

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, 完全可用。

来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
栏目更新
栏目热门