如何在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 ...
随机推荐
- kafka配置参数详解【收藏】
3.1 Broker Configs 基本配置如下: -broker.id -log.dirs -zookeeper.connect Topic-level配置以及其默认值将在下面讨论. ...
- Android getWindow().setFlags方法
//设置窗体全屏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams ...
- tf.constant
tf.constant constant( value, dtype=None, shape=None, name='Const', verify_shape=False ) 功能说明: 根据 val ...
- MVC LinqToSql Json DbComparisonExpression 需要具有可比较类型的参数。
需求是:使用post方式传入Controller一个id,然后返回给前台一个Json.突然就报了这个错误,折腾了俩小时, 发现是linq to sql 的语法错了
- iOS 中JSONModel的使用
基本使用 涉想你的JSON数据像这样: { "id": "10", "country": "Germany", &quo ...
- Functions: C++'s Programming Modules
在这一章中要学习以下内容: 函数基础 函数原型 通过value向函数传递参数 设计处理数组的函数 使用const指针参数 设计函数处理文本字符串 设计函数处理结构体 设计函数处理string类型的对象 ...
- w3svc无法启动
w3svc无法启动 运行命令regedit,打开注册表编辑器,进入:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP]: a) Cha ...
- VS2017安装PCL1.8.1
很多使用在windows环境下编译和使用PCL,这样让我想试试,所以就迫不得已的放弃使用Ubuntu环境,但是我还是建议使用Ubuntu系统,毕竟在Ubuntu下几条命令就搞定了,为了迎合在windo ...
- 漂亮的圆角文本框 CSS3实现
进入人人小站发现了个挺好看的文本框,圆角的,原来是利用了CSS3的效果,不过暂时只有IE9 和FF浏览器支持. <html xmlns="http://www.w3.org/1999/ ...
- JSP之Cookie对象使用
1.写入Cookie //如果用户勾选一个月内自动登录,则将信息保存至Cookie String[] strings=request.getParameterValues("autoLogi ...