shell脚本用于批量创建Linux用户账号并加入群组

使用环境:在windows中使用Excel编辑好账号、群组,使用Xmanager或其它方式上传至Linux系统,然后使用sh运行该脚本即可。

1. 使用excel准备账号群组文件,A栏为账号名,B栏为其加入的群组名:

批量创建Linux用户账号_职场

2. 将其另存为:adduser.txt(默认使用ANSI编码方式)

3. 使用xmanager等工具将adduser.txt上传至Linux系统中(以/tmp/script/为例)。

4. 预先创建相应群组:

[root@LKCentOS ~]#groupadd group100

[root@LKCentOS ~]#groupadd group200

[root@LKCentOS ~]#groupadd group300

[root@LKCentOS ~]#groupadd group400

(以上也可用script完成)

5. 制作以下script,存为adduser.sh,并在root下运行sh adduser.sh:

#!/bin/bash

#Program:

# This program shows how to create accounts using a text file which include a lot of accounts and groups,etc.

#History:

#2011/11/20 LuoKun V1.0

#If you have any questions or suggestions,please write to luokun0810@hotmail.com.

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin

export PATH

# grep -v '^$' /tmp/script/adduser.txt 将空白行过滤掉;tr -d '\r'去除 DOS 档案留下来的 ^M 断行的符号。;awk '{print $1}'将adduser.txt第一栏(账号)取出。

usernames=$(grep -v '^$' /tmp/script/adduser.txt|tr -d '\r'|awk '{print $1}')

i=0

for username in $usernames

do

#根据$i将adduser.txt中每个账号对应的群组名取出。

      i=$((i+1))

      groupname=$(grep -v '^$' /tmp/script/adduser.txt|tr -d '\r'|awk '{print $1}'|sed -n "${i}p")

#将账号后面的群组设置为初始群组。

      useradd $username -g $groupname

#将每个账号密码都设置成P@ssw0rd,并强制下次登录时修改密码。

      echo "P@ssw0rd"|passwd --stdin $username

      chage -d 0 $username

      echo $username "has been created!"

done

 

6. 验证:

1) 群组:

批量创建Linux用户账号_用户_02

2) 账号

批量创建Linux用户账号_账号_03