如何在linux中批量建立用户并设置随机密码
Ubuntu是基于linux的免费开源操作系统,同时也是真正意义上的“多任务多用户”操作系统,既然是多用户系统,自然就涉及到创建多个用户的问题。同时由于Ubuntu系统中的root用户具有最高权限,无节制地使用root用户容易发生误操作破坏系统,因此在Ubuntu中创建多个用户也是很有必要的。本经验要教大家如何使用Ubuntu命令行批量创建用户并设置随机密码。首先需要明白在Ubuntu中创建一个新用户的命令是 useradd username,如图命令是创建了一个名为“duanzhang666”的用户。虽然创建多个用户可以采用重复执行useradd命令的方法实现,但是这种操作很繁琐,如果在实验环境中要创建100个用户岂不是要重复输入100遍?因此不建议采用这种方法批量创建用户。

工具/原料
- Ubuntu操作系统
方法/步骤
Ubuntu中创建新用户需要先获取root管理员权限,因此先使用sudo su命令获取最高权限。注意获取root权限需要输入你自己的用户密码。

批量创建20个以“duanzhang”为用户名前缀的用户,命令为:seq -w 20|sed -r "s#(.*)#useradd duanzhang\1#g"|bash 。在这条命令中“duanzhang”表示新建用户的用户名前缀,你可以修改为你需要的其他字符串;“20”表示创建20个用户,也表示这20个用户的用户名后缀分别为1到20。明白这两个字符串表达的意思后你就可以根据你自己的需要修改命令行了。

查看新用户是否创建成功,命令为:tail -20 /etc/passwd 。这条命令的意思是输出passwd文件的后20行。这里为什么是后20行呢?因为我们刚刚创建了20个新用户,系统会将用户名写入到passwd文件的末尾,每一个用户占据一行,因此后20行就是刚刚生成的20个用户的信息。从图中可以看到已经成功创建了用户名为“duanzhang01”、“duanzhang01”到“duanzhang20”的20个新用户。

将要修改的用户名和密码写入pass.log文件中,命令为:echo duanzhang{01..20}:$((RANDOM))|tr " " "\n" >pass.log 。命令里的RANDOM表示生成随机数,以作为随机密码。

查看生成的pass.log文件的内容,以确认是否成功写入文件。从图中可以看到生成了20行数据,每一行使用冒号隔开用户名及其对应的密码,可以看到这20个密码并无规则,是随机的。

执行chpasswd命令:chpasswd<pass.log 。其中chpasswd命令在Ubuntu中用于批量更改用户密码,它需要先读取我们前一步生成的密码文件pass.log,然后根据该文件内容修改密码。

根据pass.log文件里记录的这20个用户的密码逐个查看对应的随机密码是否有效。使用su命令切换到新用户并输入pass.log里记录的对应的密码,成功登录,可见用户创建成功。到此“如何在Ubuntu中批量建立用户并设置随机密码”问题成功解决。

如何在linux中批量建立用户并设置随机密码的更多相关文章
- (转)通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加
通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加 原文:http://www.21yunwei.com/archives/4773 有一个朋友问我如何批量创建用户和设置密码 , ...
- 如何在Linux中添加新的系统调用
系统调用是应用程序和操作系统内核之间的功能接口.其主要目的是使得用户 可以使用操作系统提供的有关设备管理.输入/输入系统.文件系统和进程控制. 通信以及存储管理等方面的功能,而不必了解系统程序的内部结 ...
- 如何在Linux中使用sFTP上传或下载文件与文件夹
如何在Linux中使用sFTP上传或下载文件与文件夹 sFTP(安全文件传输程序)是一种安全的交互式文件传输程序,其工作方式与 FTP(文件传输协议)类似. 然而,sFTP 比 FTP 更安全;它通过 ...
- 100个Shell脚本——【脚本7】批量建立用户
[脚本7]批量建立用户 编写shell脚本,批量建立用户user_00, user_01, ... user_100并且所有用户同属于users组. 一.脚本 #!/bin/bash group=`c ...
- 如何在Linux中查看所有正在运行的进程
如何在Linux中查看所有正在运行的进程 FROM:http://os.51cto.com/art/201101/244090.htm 进程是一个其中运行着一个或多个线程的地址空间和这些线程所需要的系 ...
- 如何在 Linux 中查看可用的网络接口
在我们安装完一个 Linux 系统后最为常见的任务便是网络配置了.当然,你可以在安装系统时进行网络接口的配置.但是,对于某些人来说,他们更偏爱在安装完系统后再进行网络的配置或者更改现存的设置.众所周知 ...
- 如何在 Linux 中查看进程占用的端口号【转】
对于 Linux 系统管理员来说,清楚某个服务是否正确地绑定或监听某个端口,是至关重要的.如果你需要处理端口相关的问题,这篇文章可能会对你有用. 端口是 Linux 系统上特定进程之间逻辑连接的标识, ...
- 如何在Linux中使用Firejail运行应用程序
有时您可能希望使用在不同环境中未经过良好测试的应用程序,但您必须使用它们.在这种情况下,关注系统的安全性是正常的.在Linux中可以做的一件事是在沙箱中使用应用程序. “沙盒”是在有限环境中运行应用程 ...
- [Linux] 如何在 Linux 中提取随机数
如何在 Linux 中提取随机数 一.设备文件 /dev/random & /dev/urandom 字符特殊文件 /dev/random 和 /dev/urandom (存在于Linux 1 ...
随机推荐
- tcp/udp只发不接,会丢包还是send失败?
这篇文章源于我看libevent的源码时想到的问题,对于libevent的buffer机制,如果接受端一直不取数据的话,会怎样?如果丢包,不现实,因为会导致数据丢失,如果不丢包,就会导致占用内存一直扩 ...
- 【转】更改 shell 终端的默认键绑定为 vi 模式
我们使用的 shell 终端是 bash,它的默认键绑定方式是 emacs 模式.比如键入 Ctrl+a 光标会停在行首,Ctrl+e 光标会停在行尾等等. 如果希望在终端输入时使用 vi 的模式,比 ...
- Zabbix监控数据库连通性所遇问题
Zabbix配合db2bp监控DB2数据库能否远程连接问题分析: 所遇问题,有时监控一直获取不到数据,原因是connect to连接超时了,zabbix默认监控脚本获取数据时间是3s,但最多支持30s ...
- Python3求m以内的素数、求m个数中最小的n个数
[本文出自天外归云的博客园] 题1:求m以内的素数(m>2) def find_all_primes_in(m): def prime(num): for i in range(2, num): ...
- iOSTableview 禁止下拉,允许上拉
1 回弹机制:bounces alwaysBounceHorizontal alwaysBounceVerticalbounces:描述的当scrollview的显示超过内容区域的边缘以及返回时,是否 ...
- jquery文字纵向滚动效果(带间隔停留)
<script type="text/javascript"> //文字纵向滚动 $(function() { var $this = $("#quotati ...
- Spark Streaming 执行流程
Spark Streaming 是基于spark的流式批处理引擎,其基本原理是把输入数据以某一时间间隔批量的处理,当批处理间隔缩短到秒级时,便可以用于处理实时数据流. 本节描述了Spark Strea ...
- 【Unity笔记】根骨骼动画/运动(Root Motion)
根骨骼动画:当动画中角色发生位移后,动作坐标原点跟随角色移动.例如一个向前跳跃的动画,如果在场景中重复该动画,能够看到角色一路往前跳跃,位置一直在前进.适用于有位移的放技能动作等. 非根骨骼动画:当动 ...
- ActiveMQ实战篇之ActiveMQ实现request/reply模型(二)
ActiveMQ实战篇之ActiveMQ实现request/reply模型(二)
- Virtools元素、类和面向对象设计
无意中发现了在某个不存在的网站( https://sites.google.com )上,还存有09年写的一些半成品教材,下面这篇文章就是其中一部分. 概述 Virtools将元素(Element)组 ...