当前位置:首页 > linux教程 > 列表

linux中vsftpd虚拟用户配置脚本示例

发布:smiling 来源: PHP粉丝网  添加日期:2014-10-11 08:31:15 浏览: 评论:0 

下面来看一段linux中vsftpd虚拟用户配置脚本示例,希望这个例子能帮助到各位快速成功配置好自己的vsftpd服务器.

每次新安装服务器后,都要进行一系列的配置,安装软件,修改配置等,为了今后更好的部署vsftpd,特此写了个脚本用于部署.

登录FTP有三种方式,匿名登录、本地用户登录和虚拟用户登录.

匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous.

本地用户登录:使用系统用户登录,在/etc/passwd中.

虚拟用户登录:这是FTP专有用户,有两种方式实现虚拟用户,本地数据文件和数据库服务器。

FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全,代码如下:

  1. #!/bin/bash 
  2. ######################################### 
  3. ######### descprition ################## 
  4. # 1.安装vsftpd 
  5. # 2.配置vsftpd虚拟化 
  6. ######################################## 
  7. #init variables 
  8. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin 
  9. export PATH 
  10.  
  11. ff_outputdir=/tmp/liufofu 
  12. curdate=$(date +%Y%m%d) 
  13. curtime=$(date +%H%M%S) 
  14. ff_logfile=${ff_outputdir}/$$.log 
  15. # 
  16. if [ ! -e ${ff_outputdir} ];then 
  17.     mkdir -p ${ff_outputdir} 
  18. fi 
  19.  
  20. #处理过程中产生的日志由日志函数来进行处理记录 
  21. function log() 
  22. { 
  23.     echo "`date +"%Y:%m:%d %H-%M-%S"` $1 "  >> ${ff_logfile} 
  24. } 
  25.  
  26. yum -y install vsftpd 
  27. yum -y install db4-utils 
  28. #生成vsftpd配置文件 
  29. cat > /etc/vsftpd/vsftpd.conf<<EOF 
  30. anonymous_enable=NO 
  31. local_enable=YES 
  32. write_enable=YES 
  33. local_umask=022 
  34. log_ftp_protocol=YES 
  35. dirmessage_enable=YES 
  36. xferlog_enable=YES 
  37. connect_from_port_20=YES 
  38. xferlog_file=/var/log/xferlog 
  39. xferlog_std_format=YES 
  40. chroot_list_enable=YES 
  41. chroot_list_file=/etc/vsftpd/chroot_list 
  42. listen=YES 
  43. pam_service_name=vsftpd 
  44. guest_enable=YES 
  45. #guest_username=www 
  46. dual_log_enable=YES 
  47. vsftpd_log_file=/var/log/vsftpd.log 
  48. user_config_dir=/etc/vsftpd/vuser_conf 
  49. userlist_enable=YES 
  50. tcp_wrappers=YES 
  51. #listen_address=172.20.1.175 
  52. #listen_port=21000 
  53. virtual_use_local_privs=YES 
  54. EOF 
  55. log "生成vsftpd配置文件" 
  56. #创建虚拟用户目录 
  57. if [ ! -e /etc/vsftpd/vuser_conf ];then 
  58.     mkdir -p /etc/vsftpd/vuser_conf 
  59. fi 
  60. log "创建虚拟用户目录" 
  61. #创建测试用户的根目录 
  62. if [ ! -e /var/www/html/liufofu ];then 
  63.      mkdir -p /var/www/html/liufofu 
  64. fi 
  65. log "创建虚拟用户目录" 
  66. #创建测试用户 
  67. cat >/etc/vsftpd/vuser_conf/liufofu<<EOF 
  68. local_root=/var/www/html/liufofu 
  69. write_enable=YES 
  70. anon_world_readable_only=NO 
  71. anon_upload_enable=YES 
  72. anon_mkdir_write_enable=YES 
  73. anon_other_write_enable=YES 
  74. EOF 
  75.  
  76. #限制虚拟用户的虚根 
  77. ls -l /etc/vsftpd/vuser_conf| grep -v total | awk '{print $NF}' > /etc/vsftpd/chroot_list  
  78.  
  79. #设置虚拟用户名和密码 
  80. cat >/etc/vsftpd/ftplogins.txt<<EOF 
  81. liufofu 
  82. liufofu 
  83. EOF 
  84.  
  85. if [ -f /etc/vsftpd/ftplogins.txt ];then 
  86.     chmod 600 /etc/vsftpd/ftplogins.txt 
  87. fi 
  88.  
  89. #设置vsftpd的虚拟验证方法 
  90. if [ $(uname -a | grep x86_64 | wc -l) -eq 1 ];then 
  91. cat >/etc/pam.d/vsftpd<<EOF 
  92. #%PAM-1.0 
  93. auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd  
  94. account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd 
  95. EOF 
  96. else  
  97. cat >/etc/pam.d/vsftpd<<EOF 
  98. #%PAM-1.0 
  99. auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd  
  100. account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd 
  101. EOF 
  102. fi 
  103. log "设置vsftpd的虚拟验证方法" 
  104. #建立vsftpd的宿主用户 
  105. if [ $(grep vsftpd /etc/passwd) -lt 1 ];then 
  106.     useradd vsftpd -s /sbin/nologin 
  107.     usermod -a -G www vsftpd 
  108. fi  --phpfensi.com 
  109. log "建立vsftpd的宿主用户" 
  110.  
  111. db_load -T -t hash -f /etc/vsftpd/ftplogins.txt /etc/vsftpd/vsftpd.db 
  112. log "生成虚拟用户数据库" 
  113. #启动vsftpd 
  114. service vsftpd start

Tags: vsftpd虚拟用户 vsftpd用户配置

分享到: