老男孩教育第五关实战考试题:批量创建10个用户stu01-stu10,并且设置随机8位密码,要求不能用shell的循环(例如:for,while等),只能用linux命令及管道实现。

方法1:
[root@oldboy /]# echo stu{01..10}|tr " " "\n"|sed -r 's#(.*)#useradd \1 ; pass=$((RANDOM+10000000)); echo "$pass"|passwd --stdin \1; echo -e "\1 \t `echo "$pass"`">>/tmp/oldboy.log#g'|bash
 

上述命令实际就是再拼N条下面的命令的组合,举一条命令stu01用户的过程拆解如下:
useradd stu01 ; 
pass=$((RANDOM+10000000)); 
echo "$pass"|passwd --stdin stu01; 
echo -e "stu01        `echo "$pass"`">>/tmp/oldboy.log
特别说明:如果用shell循环结构会更简单,之所以限制使用循环的目的是锻炼学生的基础命令运用
能力,学到现在还没学到SHELL循环课程呢

方法2:来自酒醉饭饱
echo stu{11..12}|xargs -n1 useradd ;echo stu{11..12}:`cat /dev/urandom|tr -dc 0-9|fold -w8|head -1`|xargs -n1|tee -a pass.txt|chpasswd 
 

方法3:来自D调的华丽
有个参数写错了, cut时应该取第二个字段 应是 -f2  结果应该是这样: echo stu{21..30} | tr ' ' '\n' | sed -e 's/^/useradd /' -e 's/\(stu[0-9]\{2\}\)$/\1 \&\& echo "\1:`echo $[$RANDOM**3] | cut -c1-8`" | tee -a userInfo.txt | cut -d: -f2 | passwd --stdin \1/' | bash
功能: 创建10个用户 分别是 stu21-stu30 其密码是用随机数变量RANDOM生成,均保存至 userInfo.txt中,格式: username:passwd   这个写的不算好  如果有更好的一定要分享哦!  上面的随机数 我之前是用日期生成的,是不对的,因为有可能会有重复现象,所以我后来干脆用RANDOM**3取其前8位,可确保唯一性

方法4:来源 freeandeasy
echo stu{01..10} |tr ' ' '\n'|sed -rn 's@^(.*)$@useradd \1 ; echo $RANDOM|md5sum|cut -c 1-8 >/data/\1;cat /data/\1|passwd --stdin \1@gp'|bash
此题无法自己实现的同学都属于命令基础不过关,需要加足马力下功夫。

老男孩老师说:基础不牢,地动山摇!

听课,看了书本、视频,觉得会了,那不叫会,能够运用学习的知识,解决实际的问题,才是真正的会了,这也是老男孩教育的学生检验自己学习效果的最佳方法!

(转)linux实战考试题:批量创建用户和密码-看看你会么?的更多相关文章

  1. Linux系统下批量创建用户

    Linux批量创建用户 [root@ldapserver ~]# ) ; do useradd -d /home/ldapuser$i ldapuser#i; done [root@ldapserve ...

  2. Linux shell脚本 批量创建多个用户

    Linux shell脚本 批量创建多个用户 #!/bin/bash groupadd charlesgroup for username in charles1 charles2 charles3 ...

  3. Linux 下批量创建用户(shell 命令)

    第一种方法: 用shell批量创建用户,分为2中:1,批量创建的用户名无规律 :2.批量创建的用户名有规律首先,来说下批量创建的用户名无规律的shell:先把需要批量创建的用户名用一个文本文档列出来, ...

  4. Linux实战教学笔记14:用户管理初级(上)

    第十四节 用户管理初级(上) 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,账号管理 1.1 管理用户命令汇总 命令 注释说明(特殊颜色的必须掌握) useradd增 ...

  5. [工具] 分布式系统下批量创建用户及分发公钥打通ssh通道的脚本

    在分布式系统下偶尔会有这样的需求,要增加一个服务时,需要在集群的所有节点上创建同一个用户,然后打通ssh通道,再分发软件包.配置.执行命令.启动服务... 这个问题的根源是如何集中配置和管理系统,专业 ...

  6. salt进程查看插件&salt批量创建用户

    接受key 剔除主机   启动 salt-minion-d     软件包的安装   salt '*' state.sls init.env-init test=true   salt批量创建用户: ...

  7. SERVER 2012 R2 core域环境下批量创建用户

      Write by xiaoyang 转载请注明出处 步骤一:创建域 基本配置 1.         输入命令进入配置 2.         输入8进入网络配置 3.         选择要配置的网 ...

  8. windows批量创建用户

    一.建立用户的命令行语法: 建立用户:net  user  用户名  密码  /add           (如:net user test 123 /add)  提升权限:net  localgro ...

  9. Oracle使用外部表批量创建用户

    整体思路:通过使用外部表将用户名导入Oracle的表中,然后通过PL/SQL遍历数据表,批量创建用户. 具体步骤如下: 1.在安装数据库的服务器的C盘根目录创建一个User List.txt文件,内容 ...

随机推荐

  1. cookie的保存与提取

    爬虫过程中,cookie可以保留用户与服务器之间的交互信息,使服务器与用户相互能够识别.由于HTTP协议是无状态协议,即不能够识别客户端身份,即使客户端多次请求同一个url服务器仍然响应.这种协议导致 ...

  2. linux 进程学习笔记-共享内存

    如果能划定一块物理内存,让多个进程都能将该内存映射到其自身虚拟内存空间的话,那么进程可以通过向这块内存空间读写数据而达到通信的目的.另外,和消息队列不同的是,共享的内存在用户空间而不是核空间,那么就不 ...

  3. android自定义控件(六) 刷新

    三种得到LinearInflater的方法 a. LayoutInflater inflater = getLayoutInflater(); b. LayoutInflater localinfla ...

  4. Shell读取文件内容【转】

    while read wOne wTwo wThreedo    [ -z $wOne ] && continue           #测试此行内容是否为空    xxx=$wOne ...

  5. android如何查看网卡名和ip

    我们知道,在windows下查看ip地址用ipconfig,在Linux下查看ip地址用ifconfig.今天在使用android查看的时候ifconfig却不管用: 查找网上资料发现,原来默认ifc ...

  6. Python 2.7获取网站源代码的几种方式_20160924

    #coding:utf-8 import urllib2,cookielib if __name__ == '__main__': root_url='https://www.baidu.com/' ...

  7. 浏览器关闭或刷新事件--window.onbeforeunload

    window.onunload=function(){ //不可以阻止浏览器的刷新或者关闭 return false; } window.onbeforeunload=function(){ //可以 ...

  8. hadoop之一:概念和整体架构

    什么是hadoop? Apache Hadoop是一款支持数据密集型分布式应用并以Apache 2.0许可协议发布的开源软件框架.它支持在商品硬件构建的大型集群上运行的应用程序.Hadoop是根据Go ...

  9. Python中正则匹配使用findall时的注意事项

    在使用正则搜索内容时遇到一个小坑,百度搜了一下,遇到这个坑的还不少,特此记录一下. 比如说有一个字符串  "123@qq.comaaa@163.combbb@126.comasdf111@a ...

  10. openStack cinder 在往虚拟机上挂载云磁盘时总是提示挂在错误 最后找到原因原来是指定挂载云磁盘的虚拟机被锁定

    openStack 虚拟机的锁定功能是一个为了保护虚拟机 被误删除的一项创新共! 在VMs锁定状态下,一大部分针对此锁定的虚拟机都是无法执行的!! 需要进行相应的操作前,请注意解锁指定虚拟机,操作完成 ...