使用脚本对用户进行操作(创建、删除)

一、使用脚本建立USERNAME文件中的用户
要求:
(1)在命令行输入/mnt/create_users.sh  /mnt/userfile即可执行
(2)/mnt/userfile中存放要建立用户的名称
(3)执行此命令的人必须是超级用户
(4)脚本后不能为空,必须加文件
(5)脚本后文件必须存在
(6)用户创建好后提醒创建完成
(7)已经创建过的用户提醒已经存在
操作:

	vim /mnt/create_user.sh  #编辑脚本文件
		#!/bin/bash   #幻数
		[ "$USER" !="root" ] && {     #使用者若不是root
			echo -e "\033[31mError: This scripts is run as root!!\033[0m"
			exit 0   #返回0值 
		}
		[ -z "$1" ] && {     #未加用户名称文件
			echo -e "\033[31mError: Please input userfile following script!!\033[0m"
			exit 0
		}
 		[ -e "$1" ] || {       #用户名称文件不存在
			echo -e "\033[31mError: $1 is not exist!!\033[0m"
			exit 0
		}
		for USERNAME in `cat $1`
		do
		useradd $USERNAME &> /dev/null && {    #建立雅虎
		echo -e "\033[32m$USERNAME is created\033[0m"  #建立超过
		}||{
		echo -e "\033[32m$USERNAME is exist\033[0m"  #执行错误时输出
		}
		done

在这里插入图片描述

	vim /mnt/userfile  #建立用户名称文件
		user1
		user2
 		user3

在这里插入图片描述

vim  ~/.bash_profile
   PATH=$PATH:$HOME/bin:/mnt  #添加:/mnt,使得直接执行/mnt/文件名称就会执行文件中的内容
chmod +x create_user.sh    #给文件加写权限
create_user.sh userfile    #执行

在这里插入图片描述
二、使用脚本建立USERNAME文件中的用户,并为其设置密码

	vim /mnt/userfile   #用户文件
		user1
		user2
		user3

在这里插入图片描述

	vim passfile  #密码文件
		user1123
		user2456
		user3789

在这里插入图片描述

	vim /mnt/create_users.sh
		#!/bin/bash
		Max_Line=`awk 'BEGIN{N=0}{N++}END{print N}' $1`   #抓取userfile文件第一列,使用N计数,将N值赋给Max_Line
		for NUM in `seq 1 $Max_Line` #从1递增到Max_Line,一次增加一个
		do
			USERNAME=`sed -n ${NUM}p $1` #查看显示userfile文件第NUM行
			PASSWORD=`sed -n ${NUM}p $2`   #查看输出文件第NUM行
		useradd $USERNAME &> /dev/null && {
		echo $PASSWORD | passwd --stdin $USERNAME &> /dev/null    #设置密码,将文件中密码标准输入给用户添加密码passwd时,对应的密码框
		echo $USERNAME created
		}||{
		echo $USERNAME is exist!!
		}
		done

在这里插入图片描述

   	chmod +x vim /mnt/create_user.sh
    /mnt/create_users.sh userfile passfile

在这里插入图片描述
再次创建:
在这里插入图片描述
三、使用脚本建立USERNAME文件中的用户,并为其设置密码,判断脚本后文件个数已经文件行数

vim create_users.sh
	#!/bin/bash
	ECHO()
	{
		echo -e "\033[${1}m$2\033[0m"
	}
	[ "$#" -lt "2" ]&&{
		ECHO 31 "Error:Please input two file following $0"
		exit 0
	}
	[ ! -e "$1" ] &&{
		ECHO 31 "Error: $1 is not exist!!!"
		exit 0
	}
	 Max_Line1=`awk 'BEGIN{N=0}{N++}END{print N}' $1`
	Max_Line2=`awk 'BEGIN{M=0}{M++}END{print M}' $2`
	[ "$Max_Line1" = "$Max_Line2" ] ||{
		ECHO 31 "Error: $1 and $2 has different line!!!"
		exit 0
	}
	for NUM in `seq 1 $Max_Line1`
	do
		USERNAME=`sed -n ${NUM}p $1`
		PASSWORD=`sed -n ${NUM}p $2`
		useradd $USERNAME &> /dev/null
			[ "$?" = "0" ] &&{
				echo $PASSWORD | passwd --stdin $USERNAME &> /dev/null
				ECHO 31 "$USERNAME is created!!!"
			}||{
				ECHO 32 "$USERNAME is exist!!!"
			}
	done

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
四、执行脚本userctrl.sh 后边加参数执行对应动作
-d 表示删除用户
-c 表示新建用户
要求:
执行userctl.sh -d
提示please input username:
输入用户名称lee,该用户被删除 提示:lee will delete
执行userctl.sh -c
提示please input username:
please input password:
若用户不存在时建立
用户存在时提示已经存在
后边没加参数时提醒
please input -d|-c following userctrl.sh
操作:

	vim userctrl.sh
 	#!/bin/bash
	[ "$1" != "-d" -a "$1" !="-c" ] $${
		echo "Please input -d |-c following $0"
		exit 0
	}
	[ "$1" = "-c" ] && {
		read -p "Please input username: " USERNAME
		read -p "Please input password: " -s PASSWORD
		echo ""
		useradd $USERNAME &> /dev/null && {
		echo $PASSWORD | passwd --stdin $USERNAME &> /dev/null
		echo $USERNAME created
	}||{
		echo $USERNAME is exist!!
	}
	}
	[ "$1" = "-d" ] && {
		read -p "Please input username: " USERNAME
		userdel -r $USERNAME || {
		echo "Can't del $USERNAME because $USERNAME is not exist or busy!!"
	}
	}

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值