文档章节

Linux系统批量添加用户,从一个文件中读取用户列表

M
 Mach_osc
发布于 2017/08/15 17:36
字数 261
阅读 5
收藏 0
#!/bin/bash
#Function: Add system user from a file list
#Author: Mach
#Email: mach_aly@aliyun.com
#Modify time: 04.10/2017, refactoring
#Modiry time: 04.15/2017, add function Filteruser()

Adduser(){
	if [ ! -f $1 ]; then
		echo "Error: $1 file non-existent."
		exit 1
	fi
	Filteruser $1
	for NM in $(cat $1)
	do
		useradd $NM && echo "Add user $NM successful."
	done
}

Filteruser(){
  TimSta=$(date +%F_%T)
	for NM in $(cat $1)
	do
		grep -w "^$NM" /etc/passwd > /dev/null 2>&1
		if [ "$?" -eq 0 ]; then
			echo -e "user '$NM' has existent.\n" | tee -a ./exisuserlist-$TimSta.log
		fi
	done
	if [ -f exisuserlist-$TimSta.log ]; then
		echo "Please handle the above user name.(./exisuserlist-$TimSta.log)"
		exit 1
	fi
}

Addgroup(){
	grep -w "^$2" /etc/group > /dev/null 2>&1
	if [ "$?" -ne 0 ]; then
		useradd -Ms /bin/fales $2 && echo "Add UNIgroup $2 successful."
		echo -e "$(id -gn $2) (unified IDnum group)\n" >> ./newadduserlist.log
	fi
	for NM in $(cat $1)
	do
		usermod -G $2 $NM && echo "Add user $NM to group $2 successful."
	done
}

PDandlog(){
	for NM in $(cat $1)
	do
		echo -en "$NM\t\t$(id -Gn $NM)\t\t" >> ./newadduserlist.log
		PD=`echo $RANDOM | md5sum | head -c 8`
		echo $PD | tee -a ./newadduserlist.log | passwd --stdin $NM
		echo -e "\n" >> ./newadduserlist.log
	done
}

if [ "$UID" -ne 0 ]; then
	echo "Error: Need root permission!"
	exit 1
fi

case $# in
	1)
		Adduser $1
		PDandlog $1
		;;
	2)
		Adduser $1
		Addgroup $1 $2
		PDandlog $1
		;;
	*)
		echo "Error: Parameters error."
		echo "usage: $0 UserListFile [GroupName]"
		;;
esac

 

© 著作权归作者所有

M
粉丝 0
博文 3
码字总数 408
作品 0
武汉
私信 提问
Linux添加/删除用户和用户组(转载)

Linux添加/删除用户和用户组(转载) 在使用linux时,经常会出现好多原先加的帐户未删除的情况,给系统运行带来隐患,因此一定要彻底删除。 进入root用户,输入   cd /etc 在这个目录下输入 ...

18802340040
2013/06/08
0
0
Linux 第11天文件和用户管理

Linux 第11天 时间: 20180728 目录 用户和组管理命令 文件权限管理命令 文本处理工具 用户和组管理 即添加用户,删除用户,组的管理等 /etc/passwd /etc/shadow getent 输出指定的数据库里的...

Winthcloud
2018/07/28
0
0
linux: 常用shell脚本珍藏

我们在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运维常用的脚本。如何学好脚本,最...

随风化作雨
2017/12/20
0
0
Linux系统的账号管理

写在前面 作为一个运维工程师来讲,系统下的账号管理是工作中很重要的一个环节,所以了解系统的账号管理还是非常有必要的。 首先,我们要知道对于Linux系统而言,它并不知道你是谁,它仅识别...

志_恒
2017/09/18
0
0
在 Linux 中把用户添加到组的四个方法

Linux 组是用于管理 Linux 中用户帐户的组织单位。对于 Linux 系统中的每一个用户和组,它都有惟一的数字标识号。它被称为 用户 ID(UID)和组 ID(GID)。组的主要目的是为组的成员定义一组...

作者: Magesh Maruthamuthu
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Class 文件结构

https://www.cnblogs.com/honghuzidelaoren/p/3622021.html

Java搬砖工程师
13分钟前
2
0
未分类资料

$ Inside the Linux Kernel 与知乎出产 一张漫画看懂Linux系统结构

十万猛虎下画山
14分钟前
1
0
Android人脸识别Demo竖屏YUV方向调整和图片保存

本博客包含三个常用方法,用于盛开Android版人脸识别Demo中竖屏使用时送入yuv数据,但一直无法识别的情况。 1.首先可以尝试顺时针旋转90°或270°,然后送入识别SDK。 2.旋转方向后依然无法识...

是哇兴哥棒棒哒
17分钟前
1
0
选择阿里云数据库HBase版十大理由

根据Gartner的预计,全球非关系型数据库(NoSQL)在2020~2022预计保持在30%左右高速增长,远高于数据库整体市场。 阿里云数据库HBase版也是踏着技术发展的节奏,伴随着NoSQL和大数据技术的兴...

阿里云云栖社区
30分钟前
1
0
平滑与滤波

五种常见的平滑滤波器: (1)方框型滤波器: 顾名思义,方框型滤波器就是用一个方框型的kernel跟二维图像进行卷积,其核定义如下: kernel= 其中, a = 1 当该滤波器非归一化滤波器 (1) a=...

yepanl
36分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部