0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

批量创建10个用户用脚本如何实现

阿铭linux 来源:阿铭linux 作者:阿铭linux 2022-10-31 09:14 次阅读

要求:创建10个普通用户,并给它们设置随机密码,将密码记录到一个文档里,用户名为user_01 — user_10,密码要求包含大小写字母以及数字,密码长度15位。

题目要求,让我们创建user_01到user_10共10个用户,所以需要使用循环构建01 - 10的序列,方法是 "seq -w 1 10"这个命令执行后,会打印 ”01 02 ... 09 10" 10个数字出来,这个"-w"选项的意思是等宽,即按序列中最大宽度的数字来,本例中10就是2位,所以1个数字时会在前面补上一个0。

seq 构建序列后,需要循环,使用for即可所以最终写成这样

foriin`seq-w110`
do
useradduser_$i
done

这个seq 用的还是蛮多的,所以请记住以下用法:

1)seq 支持步长, 默认步长为1,步长可以定义成2,比如

seq  1 2 10
1
3
5
7
9

2)也可以倒序

seq  10 -2 1  
10
8
6
4
2

创建用户没啥可说的,直接 useraddusername 即可,关键是这个随机密码这里,这个并没有标准答案,只要构建出符合要求的字符串就行,我建议的方法是使用mkpasswd命令

默认系统没有,所以你使用它之前需要先判断一下

if ! which  mkpasswd &>/dev/null
then   
    yum install   -y expect  
fi

这里有个前提,yum是centos/RHEL/Rocky系统用的,那如果是Debian/ubuntu呢,那就得使用apt安装了,所以,要想脚本完美,还需要判断系统版本。当然我们写脚本的时候就已经知道系统是啥系统了,这里就根据系统版本确定命令就行了。

mkpasswd命令 可以生成随机字符串,默认生成 9位的 ,例如

87488c2e-58ab-11ed-a3b6-dac502259ad0.png

要想使用mkpasswd生成一个15位的密码还需要加个参数 -l(length) ,长度的意思

mkpasswd -l 15

另外 mkpasswd也可以指定生成指定字符的个数,比如 -s 2,s(special),表示特殊符号有2个。啥是特殊符号呢?比如 "* ( ) [ ] & ^ @ # ! : ? /"等。mkpasswd -s 0 意思是特殊符号为0。另外还有几个选项:

-d指定数字

-C指定大写字母

-c 指定小写字母

生成密码后,需要给它赋值到变量里,比如 p=`mkpasswd -l 15 -s 0`。然后就是给用户设置密码了,设置密码使用passwd命令,正常设置密码 这样做 :

87631882-58ab-11ed-a3b6-dac502259ad0.png

但这样写到脚本里 就会有问题啦,因为需要交互,脚本里肯定不合适。所以还有另外一种方法 :

8777903c-58ab-11ed-a3b6-dac502259ad0.png

这样一条命令就可以啦,写到脚本里,完美!

再往后就是将密码保存到一个文件里,题目里我虽然没有要求大家把用户名也保存,但是大家想想,如果咱们的用户名不规则,那你能知道哪个密码是哪个用户么。所以最好是将用户名 密码写到一起。

大家都知道使用 >>追加重定向,但是否忘记了,如果这个文本里就有内容呢?所以,最好是先将文本做一个清空的操作:

if  [ -f /tmp/user_pass.txt ]
then  
    rm -f /tmp/user_pass.txt
    echo  "user_$i  $p" >> /tmp/user_pass.txt
fi

当然这段代码要放到循环的外面去,也就是要放到脚本一开始的时候。如果在循环里面,那么脚本执行完,这个文本里就只会记录一行,大概就是这么多内容最后再给大家发一下最终的脚本:

#!/bin/bash
if  [ -f /tmp/user_pass.txt ]
then  
    rm -f /tmp/user_pass.txt
fi
if ! which mkpasswd
then
    yum install -y expect
fi
for i in `seq -w 1 10`
do
    p=`mkpasswd -l 15 `
    useradd user_$i && echo "$p"| passwd --stdin user_$i
    echo "user_$i  $p" >> /tmp/user_pass.txt
done

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 字符串
    +关注

    关注

    1

    文章

    554

    浏览量

    20290
  • 命令
    +关注

    关注

    5

    文章

    638

    浏览量

    21874
  • 脚本
    +关注

    关注

    1

    文章

    378

    浏览量

    14708

原文标题:批量创建10个用户用脚本如何实现

文章出处:【微信号:aming_linux,微信公众号:阿铭linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于Python脚本的R语言的函数

    本文介绍了采用创建Python脚本脚本模仿R风格的函数的方法来方便地进行统计。 是R
    的头像 发表于 10-12 09:33 1933次阅读
    基于Python<b class='flag-5'>脚本</b>的R语言的函数

    10杀手级的Python自动化脚本

    今天浩道跟大家分享10日常工作中用到的python自动化脚本。让你感受一番python简单强大之处!
    发表于 11-28 11:07 567次阅读

    windows补丁批量安装脚本

    windows补丁批量安装脚本现在Windows的补丁已经是越来越多了,累积下来有几十,就算发布一次也有近十,一个一个点击安装真累……而
    发表于 05-07 08:55

    阿里云ECS开放批量创建实例接口,实现弹性资源的创建

    摘要: 为了更方便的实现弹性的资源创建,方便用户一次运行多台ECS按量实例来完成应用的开发和部署,阿里云开放了ECS的批量创建实例接口Run
    发表于 03-05 17:40

    如何创建链接脚本

    FJ256GP710GLD,即使原来的意思是针对PIC24探险者板。有没有人在那里为我的芯片创建了一链接脚本,或者知道我在哪里可以找到一或告诉我如何
    发表于 05-08 14:11

    如何创建和执行一简单的Linux shell脚本

     如果您愿意要尝试更长的shell脚本,请将下面的shell脚本(并附加为PDF和ODT文件)复制到文本编辑器中,保存,使其可执行并运行。当您了解更多Linux命令时,您可以创建更复杂的shell
    的头像 发表于 11-06 17:28 1.3w次阅读

    什么是脚本脚本程序学习

    脚本中编写VB脚本代码。可以象使用系统函数一样使用项目中完成的脚本创建脚本时,确定其型号并定义传送参数。“Function”类型的
    的头像 发表于 05-11 10:39 6346次阅读
    什么是<b class='flag-5'>脚本</b>?<b class='flag-5'>脚本</b>程序学习

    MyBatis批量插入数据的3种方法你知道几种

    批量插入功能是我们日常工作中比较常见的业务功能之一, 今天 来一 MyBatis 批量插入的汇总篇,同时对 3 种实现方法做一性能测试,
    的头像 发表于 12-08 17:56 3985次阅读
    MyBatis<b class='flag-5'>批量</b>插入数据的3种方法你知道几种

    10行 BASIC 语言创建很棒的游戏

    BASIC 10 Liner Contest 的目标是 10 行 BASIC 语言创建完整的电脑游戏。
    发表于 07-30 17:21 1687次阅读
    <b class='flag-5'>用</b><b class='flag-5'>10</b>行 BASIC 语言<b class='flag-5'>创建</b>很棒的游戏

    怎么脚本产生一验证环境

    之前有朋友问我怎么脚本产生一验证环境,这个问题今天和大家介绍下两种做法。
    的头像 发表于 08-11 09:07 1209次阅读

    如何创建简单的脚本

    Shell 脚本可以为您节省时间和精力,但是如果您不保护您的密码,它们就会成为您的负担。以下是如何保持安全的方法。
    的头像 发表于 10-10 11:12 8262次阅读

    分享10实用的Python自动化脚本

    重复性任务总是耗时且无聊,想一想你想要一张一张地裁剪 100 张照片或 Fetch API、纠正拼写和语法等工作,所有这些任务都很耗时,为什么不自动化它们呢?在今天的文章中,我将与你分享 10 Python 自动化脚本
    的头像 发表于 01-21 15:58 1174次阅读

    分享249拿来即用的shell脚本

      由于脚本案例太多,在此仅展示部分,完整版领取方式请见文末       249拿来即用的shell脚本!   这249Shell脚本
    的头像 发表于 07-07 10:52 902次阅读
    分享249<b class='flag-5'>个</b>拿来即用的shell<b class='flag-5'>脚本</b>

    Vyond推出首款基于提示的脚本和视频创建

    VyondGo 是一款新的脚本和视频创建应用程序,将集成到Vyond的人工智能视频创建平台中。借助易于使用、基于提示的界面,用户可以根据几个简单的提示立即构建视频初稿,然后使用Vyon
    的头像 发表于 07-12 10:32 637次阅读

    shell实例三(编写批量修改扩展名脚本)

    实现功能: 编写批量修改扩展名脚本,如批量将 txt 文件修改为 doc 文件 执行脚本时,需要给
    的头像 发表于 11-09 09:35 432次阅读
    shell实例三(编写<b class='flag-5'>批量</b>修改扩展名<b class='flag-5'>脚本</b>)