免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2156 | 回复: 2
打印 上一主题 下一主题

[FTP] Proftpd User Administration Tool [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-08-08 20:31 |只看该作者 |倒序浏览
最近为研发部建立一个FTP服务器,之前打算用MYSQL来管理,可惜PAM_MYSQL死活编译不出来,作罢。
又不敢用系统用户,所以只好用虚拟用户,基于文件用户数据库。
但是用户的管理,比如增加删除或者改密码等简单操作,总不能一个个的去敲命令吧,决心一边学一边写,整了个用户基本管理工具出来。
功能比较简单,大致如下:
0. SHOW USERS
1. ADD USER
2. CHANGE PASSWORD FOR USER
3. DELETE USER
4. QUIT
注意:水平有限,头一次写SHELL,在创建用户时没有办法自动提供UID,所以只能先把所有用户都列出来,再找一个没有在使用中的UID,在创建用户的手工输入,如果有感兴趣的同志能完美一下就够好了。
欢迎测试,希望能对大家的工作带来一些方便,如果你有更好的工具,也希望能得到你的推荐。
  1. #!/bin/bash
  2. echo "Welcome to use Our FTP SERVER user administration tool"
  3. echo "FEEDBACK:chinaid@msn.com"
  4. echo "LATEST:2012/08/08"

  5. ##begin##################
  6. #global settings
  7. #proftpd password file location
  8. proftpd_passwd=/etc/proftpd/proftpd_passwd
  9. #ftp users home directory location
  10. ftproot=/home/database/ftproot
  11. #########################

  12. #########################
  13. #print menu
  14. echo "0. SHOW USERS"
  15. echo "1. ADD USER"
  16. echo "2. CHANGE PASSWORD FOR USER"
  17. echo "3. DELETE USER"
  18. echo "4. QUIT"
  19. read n
  20. case $n in
  21. #########################

  22. #########################
  23. #Print all users
  24. 0)
  25. echo "All users listed here:"
  26. echo "UID:        USERNAME:        HOME:"
  27. awk -F ':' '{print $3"        "$1"        "$6}' "$proftpd_passwd"
  28. ;;
  29. #########################

  30. #########################
  31. #Add user
  32. 1)
  33. echo "Please input username:"
  34. read new_ftp_username
  35. echo "Please input UID(Please RUN memn.0-SHOW USERS for get a UID if not used):"
  36. read uid

  37. #make user home dirctory
  38. echo "Create ftp home direcotry for $new_ftp_username..."
  39. mkdir -p "$ftproot/$new_ftp_username"
  40. if [ -d "$ftproot/$new_ftp_usernam" ]; then
  41. echo "Done!"

  42. #update proftpd user database
  43. echo "Update ftp user database......done!"
  44. ftpasswd --guid=10001 --passwd --name="$new_ftp_username" --home="$ftproot/$new_ftp_username/" --shell="/sbin/nologin" --file="$proftpd_passwd" --uid="$uid"
  45. chown ftpuser:ftpuser "$ftproot/$new_ftp_username"

  46. #update userlist
  47. if [ -d "$ftproot/$new_ftp_username" ];then
  48. echo "$uid:$new_ftp_username:$ftproot/$new_ftp_username/" >> /etc/proftpd/user_create_list
  49. echo "Create user......done!"
  50. fi
  51. else
  52. echo "Password does not match, please try again"
  53. fi
  54. ;;
  55. #########################

  56. #########################
  57. #Change password
  58. 2)
  59. echo "Please input username:"
  60. read user_tobe_changepassword
  61. ftpasswd --passwd --name="$user_tobe_changepassword" --change-password --file="$proftpd_passwd"
  62. echo "Change password......done!"
  63. ;;
  64. #########################

  65. #########################
  66. #Delete user
  67. 3)
  68. echo "Please input username:"
  69. read user_tobe_delete

  70. #update ftp user database
  71. #uncomment for force delete user for user database
  72. #sed -i "/$user_tobe_delete/d" "$proftpd_passwd"
  73. ftpasswd --name="$user_tobe_delete" --file="$proftpd_passwd" --delete-user --passwd
  74. echo "Delete user $user_tobe_delete from ftp user database......done!"

  75. #delete user dir
  76. rm -rf --no-preserve-root $ftproot/$user_tobe_delete
  77. echo "Delete user home directory......done!"
  78. ;;
  79. #########################

  80. #########################
  81. #Quit
  82. 4)
  83. exit
  84. ;;
  85. esac;
  86. ##end####################
复制代码
打包下载
ftpusertool.rar (1007 Bytes, 下载次数: 1)

论坛徽章:
0
2 [报告]
发表于 2012-08-09 10:49 |只看该作者
proftpd_admin. 有这么一个后台管理的PHP。也许你用的上。

论坛徽章:
0
3 [报告]
发表于 2012-08-24 20:52 |只看该作者
回复 2# lxxpsp2007

非常感谢,所谓听君一席胜读十年书就是如此,无敌真可怕!

另外感慨一下,今年发现在本坛注册已经接近九年了,真不知道有不能挺得过世界末日迎接十周年!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP