shell脚本-批量添加用户

摘要:
批量添加用户,要求如下脚本一:不是很严格但是很简洁的脚本#!if[-f/data/user_passwd];thenmv/data/user_passwd/data/user_passwd.bak-`date+%F`elseecho"hello"˃/dev/nullfi##使用for循环创建用户##passwd从标准输入读取密码,并使用tee命令保存密码到/data/user_passwdfor;douseradd-gusersuser_$iecho`opensslrand-base648`|tee-a/data/user_passwd|passwduser_$i--stdindone脚本二:在脚本一中密码可以使用专门的密码命令mkpasswd,实现更丰富的密码规则。    并且脚本一也存在一个问题,就是用户名要求为user01的格式。/data/user_passwd只保存了秘密没有保存用户名。/bin/bash#该脚本用来实现批量添加用户。

批量添加用户,要求如下

shell脚本-批量添加用户第1张

脚本一:不是很严格但是很简洁的脚本

#!/bin/bash

#该脚本用来实现批量添加用户。
#
#作者阿鑫
#日期2019/5/27
#版本v1

#提示用户脚本使用方法
[ $# -eq 0 ] && echo "Usage useradd.sh number" &&exit
#判断是否存在/data/user_passwd,若存在则移动该文件,做备份。
if [ -f /data/user_passwd ];then
        mv /data/user_passwd /data/user_passwd.bak-`date +%F`
elseecho "hello" > /dev/nullfi
##使用for循环创建用户
##passwd从标准输入读取密码,并使用tee命令保存密码到/data/user_passwd
for (( i=1;i<=$1;i++ ));douseradd -g users user_$i
        echo ` openssl  rand -base64  8 ` | tee -a /data/user_passwd | passwd user_$i --stdin
done

脚本二:在脚本一中密码可以使用专门的密码命令mkpasswd,实现更丰富的密码规则。

    并且脚本一也存在一个问题,就是用户名要求为user01的格式。

/data/user_passwd只保存了秘密没有保存用户名。

脚本二解决了这些问题

#!/bin/bash
#该脚本用来实现批量添加用户。
#作者阿鑫
#日期2019/5/27#版本v1

#查看是否安装了mkpasswd命令
which mkpasswd &>/dev/null || yum install -y mkpasswd

#提示用户脚本使用方法
[ $# -eq 0 ] && echo "Usage useradd.sh number" &&exit

#判断是否存在/data/user_passwd,若存在则移动该文件,做备份。
if [ -f /data/user_passwd ];then
        mv /data/user_passwd /data/user_passwd.bak-`date +%F`
elseecho "hello" > /dev/nullfi

##使用for循环创建用户
##passwd从标准输入读取密码,并使用tee命令保存密码到/data/user_passwd
for i in `seq 99`;douseradd -g users user_$i
        pass=`mkpasswd -l 12 -s 0`
        echo $pass | passwd  --stdin user_$i
        echo "user_$i $pass" >> /data/user_passwd
done

#单独创建用户user_100
useradd -g users user_100
echo 'mkpasswd -l 12 -s 0' | tee -a /data/user_passwd | passwd user_100 --stdin

echo “用户创建完成”,密码保存在/data/user_passwd

免责声明:文章转载自《shell脚本-批量添加用户》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Tomcat服务器wpf简单进度条下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

shell命令之find的用法

最近面试的时候碰到了shell中问到find的问题,因此今天总结一下find的用法   1、find的应用场景   2、find的使用方法和参数解析 1、find的应用场景  首先我们回答一下find的应用场景。我个人觉得find可以和grep来进行对比分析。find是用来查找文件或者目录的,而grep是用来查找文件中的字符串的。 2、find的使用方法和...

对网站的代码采集实例

1.采集的网站:http://www.abnova.com/support/publication.asp 2. 相关的代码:列表(规则采集)页面使用:phpQuery.php,可以参考:PHP curl_setopt函数用法介绍中篇 3.产品详情页面:信息(不规则采集),参考代码如下: <?php header('Content-Type:tex...

Javascript 基础夯实 —— 使用 webWorker 实现多线程(转)

原文链接:https://zhuanlan.zhihu.com/p/29219879 当我们开始学习 javascript 的时候,我们就知道 js 其实是单线程的,所以当我们在浏览器中运行某些耗时算法或者阻塞线程的代码时,浏览器就会出现卡顿的现象 然而 js 引擎却拥有多个线程,比如渲染界面线程、浏览器事件触发线程、http 请求线程、事件轮询处理线程等...

python websocket Django 实时消息推送

概述: WebSocket 是什么? WebSocket 是 HTML5 提供的一种浏览器与服务器间进行全双工通讯的协议。依靠这种协议可以实现客户端和服务器端 ,一次握手,双向实时通信。 WebSocket 服务端: 用的是 dwebsocket,安装命令pip installdwebsocket. WebSocket 基本方法: 1.request.i...

数据集成之主数据管理(一)基础概念篇

数据集成是当下比較热门的话题,相关的产品和平台也越来越多。非常多CIO都在各种数据集成平台和产品之间犹豫不决。因此对数据集成平台的框架体系有全面的理解,对各个厂家产品所提供的功能有深入的认识才干为数据平台选型的决策提供可靠的保证。 我有幸參与了国内一个知名企业的集成平台的设计工作,并主导了数据集成平台的需求分析和产品选型工作。这次工作中,研究了非常多新的...

JAVA RSA私钥 加密(签名) 对应 C# RSA私钥 加密(签名)

非对称密钥RSA算法加解密在C#和Java之间交互的问题,这两天看了很多其他人写的文章,碰到了几个问题,最终解决问题。 参考地址:http://xw-z1985.iteye.com/blog/1837376 需求目的:完成c#请求端RSA加密(签名)问题,客户端采用C#开发,服务器端采用Java开发。服务器端给客户端提供私钥,进行数据加密(签名),客户端加...