- 论坛徽章:
- 0
|
最近为研发部建立一个FTP服务器,之前打算用MYSQL来管理,可惜PAM_MYSQL死活编译不出来,作罢。
又不敢用系统用户,所以只好用虚拟用户,基于文件用户数据库。
但是用户的管理,比如增加删除或者改密码等简单操作,总不能一个个的去敲命令吧,决心一边学一边写,整了个用户基本管理工具出来。
功能比较简单,大致如下:
0. SHOW USERS
1. ADD USER
2. CHANGE PASSWORD FOR USER
3. DELETE USER
4. QUIT
注意:水平有限,头一次写SHELL,在创建用户时没有办法自动提供UID,所以只能先把所有用户都列出来,再找一个没有在使用中的UID,在创建用户的手工输入,如果有感兴趣的同志能完美一下就够好了。
欢迎测试,希望能对大家的工作带来一些方便,如果你有更好的工具,也希望能得到你的推荐。- #!/bin/bash
- echo "Welcome to use Our FTP SERVER user administration tool"
- echo "FEEDBACK:chinaid@msn.com"
- echo "LATEST:2012/08/08"
- ##begin##################
- #global settings
- #proftpd password file location
- proftpd_passwd=/etc/proftpd/proftpd_passwd
- #ftp users home directory location
- ftproot=/home/database/ftproot
- #########################
- #########################
- #print menu
- echo "0. SHOW USERS"
- echo "1. ADD USER"
- echo "2. CHANGE PASSWORD FOR USER"
- echo "3. DELETE USER"
- echo "4. QUIT"
- read n
- case $n in
- #########################
- #########################
- #Print all users
- 0)
- echo "All users listed here:"
- echo "UID: USERNAME: HOME:"
- awk -F ':' '{print $3" "$1" "$6}' "$proftpd_passwd"
- ;;
- #########################
- #########################
- #Add user
- 1)
- echo "Please input username:"
- read new_ftp_username
- echo "Please input UID(Please RUN memn.0-SHOW USERS for get a UID if not used):"
- read uid
- #make user home dirctory
- echo "Create ftp home direcotry for $new_ftp_username..."
- mkdir -p "$ftproot/$new_ftp_username"
- if [ -d "$ftproot/$new_ftp_usernam" ]; then
- echo "Done!"
- #update proftpd user database
- echo "Update ftp user database......done!"
- ftpasswd --guid=10001 --passwd --name="$new_ftp_username" --home="$ftproot/$new_ftp_username/" --shell="/sbin/nologin" --file="$proftpd_passwd" --uid="$uid"
- chown ftpuser:ftpuser "$ftproot/$new_ftp_username"
- #update userlist
- if [ -d "$ftproot/$new_ftp_username" ];then
- echo "$uid:$new_ftp_username:$ftproot/$new_ftp_username/" >> /etc/proftpd/user_create_list
- echo "Create user......done!"
- fi
- else
- echo "Password does not match, please try again"
- fi
- ;;
- #########################
- #########################
- #Change password
- 2)
- echo "Please input username:"
- read user_tobe_changepassword
- ftpasswd --passwd --name="$user_tobe_changepassword" --change-password --file="$proftpd_passwd"
- echo "Change password......done!"
- ;;
- #########################
- #########################
- #Delete user
- 3)
- echo "Please input username:"
- read user_tobe_delete
- #update ftp user database
- #uncomment for force delete user for user database
- #sed -i "/$user_tobe_delete/d" "$proftpd_passwd"
- ftpasswd --name="$user_tobe_delete" --file="$proftpd_passwd" --delete-user --passwd
- echo "Delete user $user_tobe_delete from ftp user database......done!"
- #delete user dir
- rm -rf --no-preserve-root $ftproot/$user_tobe_delete
- echo "Delete user home directory......done!"
- ;;
- #########################
- #########################
- #Quit
- 4)
- exit
- ;;
- esac;
- ##end####################
复制代码 打包下载
ftpusertool.rar
(1007 Bytes, 下载次数: 1)
|
|