一、使用脚本建立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!!"
}
}