tools linux用户管理脚本 发表于 2022-04-29 浏览量 448 没有评论 # 说明 - 首次使用,记得在当前目录下新建`user.txt`文件。 - 新增用户需要在user.txt文件中添加,然后再执行脚本。 - 批量新建用户,并设置`8位数`的随机密码。 - 把用户信息存到当前目录下的`user_info.txt`文件中。 - 删除用户时,会删除`user.txt`以及`user_info.txt`里面有关用户的信息 ``` #!/bin/bash ############################################################### # Version: 1.0 ####### # Date: 2022/4.29 ####### # Author: Ewain ####### # Contact: 1054241234@qq.com ####### # Blog https://ewain.top ####### ############################################################### [ -f /etc/init.d/functions ] && . /etc/init.d/functions || exit info=./user.txt info2=./user_info.txt echo echo -e "\033[36m***************************************************************** ***************************************************************** ******** 欢迎使用「辉哥」编写的批量生成用户工具 ********** ***************************************************************** ******** 批量添加用户并随机生成8个字符串作为其密码 ********* ***************************************************************** *** 首次使用请在当前目录下新建user.txt文件写入用户信息 ******** ***************************************************************** *****************************************************************\033[0m" echo function adduser(){ for name in `cat $info` do passwd=`echo $(date +%t%N)$RANDOM|md5sum|cut -c 1-10` #生成随机密码 id $name &> /dev/null #判断用户是否存在 [ $? -ne 0 ] && { useradd -s /sbin/nologin $name &> /dev/null && user_status=$? echo "$passwd"|passwd --stdin $name &> /dev/null && passwd_status=$? if [ "$user_status" == 0 -a "$passwd_status" == 0 ];then action "新建用户: $name" /bin/true echo -e "user:$name \t passwd:$passwd" >> ./user_info.txt fi } || action "用户:'$name' ---> 已存在!!!" /bin/false; done } function deluser(){ echo echo -e "\033[32m可以删除以下用户:\033[0m" echo cat $info echo while true do read -p "请输入想要删除的用户:" username if [ -z $username ];then echo "输入有误,或者用户不存在,请重新输入!" else userdel -r $username if [ $? -eq 0 ];then echo -e "\033[32m用户:$username 已删除!\033[0m" sed -i "/${username}/d" user_info.txt sed -i "/${username}/d" user.txt echo -e "\033[32m用户:${username} 信息==> user_info.txt 和 user.txt 已删除!\033[0m" fi fi break done } echo -e "\033[32m1.新建用户" echo echo "2.删除用户" echo echo "3.查看用户" echo echo -e "\033[32m4.退出程序\033[0m" while true do read -r -p "请选择要执行的操作:" input case $input in 1) adduser ;; 2) deluser ;; 3) echo cat $info2 echo ;; 4|exit) exit 0 ;; *) echo -e "\033[32m请输入:[“1”(新建用户) or “2”(删除用户) or “3”(查看用户) or “4/exit”(退出程序)]\033[0m" ;; esac done ```