脚本实例

批量用户添加

for 在读取文件时,任何空白字符都可以自动作为分隔符、while的按行读取使用的是换行符作为标记,所以在这使用while更好

majun@instance-zqtg07w6:~/bash_scripts$ vim useradd_while02.sh
majun@instance-zqtg07w6:~/bash_scripts$ vim users.txt
majun@instance-zqtg07w6:~/bash_scripts$ cat users.txt
username001 password001
username002 password002
username003 password003
username004 password004
usernmae005 paswword005
majun@instance-zqtg07w6:~/bash_scripts$ cat useradd_while02.sh
#!/bin/bash
while read LINES
doUSERNAME=`echo $LINES|cut -f1 -d ' '`PASSWORD=`echo $LINES|cut -f2 -d ' '`echo -n "Username:$USERNAME  PASSWORD:$PASSWORD"echo
done<users.txtmajun@instance-zqtg07w6:~/bash_scripts$ bash useradd_while02.sh
Username:username001  PASSWORD:password001
Username:username002  PASSWORD:password002
Username:username003  PASSWORD:password003
Username:username004  PASSWORD:password004
Username:usernmae005  PASSWORD:paswword005
majun@instance-zqtg07w6:~/bash_scripts$

linux如何避免交互修改用户密码

如何一条命令修改linux密码

一般linux修改密码方式
echo "password" |passwd --stdin user
ubuntu 和debian 废弃了passwd --stdin的方式,采用chpasswd命令进行非交互修改密码
echo username:newpasswd | chpasswd
PS:初学linux不要用Ubuntu!

linux如何修改密码(ubuntu实例)

root@instance-zqtg07w6:/home/majun/bash_scripts# tail -n 4 /etc/shadow
debian-tor:*:18225:0:99999:7:::
majun:$6$G15Ql/K0$0Q5NKV/TJ1XpPNDJebwUHIUc72xb6E6JXunRwesKgiFFnks8D1dkGCDgUePOPDdSX3QzVs1GM.6BvELErulM.:18255:0:99999:7:::
username002:$6$EvBA/Qr/$uEExJboy63Ds9iZaJItJiKjq8jPijJoPRpx.Trxtq3twpz0vr4eNTisf6Xoqvp06nLaybGlmiDuYgS9jy3iAP/:18268:0:99999:7:::
username003:!:18268:0:99999:7:::
root@instance-zqtg07w6:/home/majun/bash_scripts# echo username003:newoasswd | chpasswd
root@instance-zqtg07w6:/home/majun/bash_scripts# tail -n 4 /etc/shadow
debian-tor:*:18225:0:99999:7:::
majun:$6$G15Ql/K0$0Q5NKV/TJ1XpPNDJebwUHIUc72xb6E6JXunRwesKgiFFnks8D1dkGCDgUePOPDdSX3QzVs1GM.6BvELErulM.:18255:0:99999:7:::
username002:$6$EvBA/Qr/$uEExJboy63Ds9iZaJItJiKjq8jPijJoPRpx.Trxtq3twpz0vr4eNTisf6Xoqvp06nLaybGlmiDuYgS9jy3iAP/:18268:0:99999:7:::
username003:$6$fpqO7Y/Q$SgIFXadP91kacJWOB5vW7EtXFUvUIaJQP7ewwA2x24JIGg7dH2zn6xsUy9rJbu/MFp.pet.cI73StXpBX43f20:18268:0:99999:7:::
root@instance-zqtg07w6:/home/majun/bash_scripts#
root@instance-zqtg07w6:/home/majun/bash_scripts# vim useradd_while03.sh
root@instance-zqtg07w6:/home/majun/bash_scripts# cat useradd_while03.sh
#!/bin/bash
while read LINES
doUSERNAME=`echo $LINES|cut -f1 -d ' '`PASSWORD=`echo $LINES|cut -f2 -d ' '`echo -n "Username:$USERNAME  PASSWORD:$PASSWORD"echouseradd $USERNAME#echo $PASSWORD | passwd --stdin $USERNAME#normal linuxecho $USERNAME:$PASSWORD | chpasswd #ubuntu-linux
done<users.txtroot@instance-zqtg07w6:/home/majun/bash_scripts# bash useradd_while03.sh
Username:username002  PASSWORD:password002
Username:username003  PASSWORD:password003
root@instance-zqtg07w6:/home/majun/bash_scripts# tail -n 3 /etc/shadow
majun:$6$G15Ql/K0$0Q5NKV/TJ1XpPNDJebrwUHIUc72xb6E6JXunRwesKgiFFnks8D1dkGCDgUePOPDdSX3QzVs1GM.6BvELErulM.:18255:0:99999:7:::
username002:$6$mA6G6nLK$9sxTVMumhNhaf36tZgtn9l.1t0ROaDqHOisSgpe6lgSEVNZmfo6Ot/MZekfeeSJc39FkJDZyMmlThI43evVQC/:18268:0:99999:7:::
username003:$6$9742a.70$SQ6HxUHcSWEK2Xt2St6.GdoSNqtnI3SfX9vqzpjbRqL7T4w6YwRpI/JZoLdbSWK8VdkSWsts3MSQRV98IY2F51:18268:0:99999:7:::
root@instance-zqtg07w6:/home/majun/bash_scripts#

再运行一次就会,报错,用户存在但同时修改了密码。

root@instance-zqtg07w6:/home/majun/bash_scripts# bash useradd_while03.sh
Username:username002  PASSWORD:password002
useradd: user 'username002' already exists
Username:username003  PASSWORD:password003
useradd: user 'username003' already exists
root@instance-zqtg07w6:/home/majun/bash_scripts#

添加检测用户是否存在

root@instance-zqtg07w6:/home/majun/bash_scripts# vim useradd_while04.sh
root@instance-zqtg07w6:/home/majun/bash_scripts# cat useradd_while04.sh
#!/bin/bash
while read LINES
doUSERNAME=`echo $LINES|cut -f1 -d ' '`PASSWORD=`echo $LINES|cut -f2 -d ' '`echo -n "Username:$USERNAME  PASSWORD:$PASSWORD"echouseradd $USERNAMEif [ $? -eq 0 ];then#echo $PASSWORD | passwd --stdin $USERNAME#normal linuxecho $USERNAME:$PASSWORD | chpasswd #ubuntu-linuxelseecho "$USERNAME is exist , skip change password!"fi
done<users.txtroot@instance-zqtg07w6:/home/majun/bash_scripts# bash useradd_while04.sh
Username:username002  PASSWORD:password002
useradd: user 'username002' already exists
username002 is exist , skip change password!
Username:username003  PASSWORD:password003
useradd: user 'username003' already exists
username003 is exist , skip change password!
root@instance-zqtg07w6:/home/majun/bash_scripts#

所有的练习脚本都在:
https://github.com/SaltNego/Learn_linux_bash

批量添加用户脚本--Linux bash相关推荐

  1. 编写一个批量添加用户脚本

    5案例5:编写一个批量添加用户脚本 5.1问题 本例要求在虚拟机server0上创建/root/batchusers脚本,任务目标如下: 此脚本要求提供用户名列表文件作为参数 如果没有提供参数,此脚本 ...

  2. [Linux] 批量添加用户

    编写两个文件,一个文件user.list用于存放用户名,另一个sh文件用来作为批量添加用户的linux脚本. adduser.sh #!/bin/bash #用for循环读取users.list文件中 ...

  3. linux shell脚本批量添加用户

    有时有需求要批量添加用户所以写了个脚本 从user.list中读取数据每一行就是一个用户名 #!/bin/bash for username in $(more user.list) do if [ ...

  4. Linux下批量添加用户

    Linux shell 自学笔记之批量添加用户 #!/bin/bash #This shell is used to add users for loop in `cat users` do user ...

  5. Linux下批量添加用户的两种方法

    作为一个系统管理员,可能要经常的为机器添加用户,可能是在一台机器上添加很多用户,也有可能是在很多机器上要添加同一个用户. 基本上,批量添加用户有两种方式,一是用useradd + passwd命令配合 ...

  6. linux用户随机密码,Linux面试题-批量添加用户并设置8位随机密码

    一.批量添加用户stu01 stu02 stu03 并设置123456 化简为 添加3个用户设置固定密码 1.最终目标: useradd stu01 ;echo 123456|passwd --std ...

  7. shell 批量添加用户健壮版

    网上传说,曾经有一道迅雷的笔试题,批量添加用户.做法很简单,有个小小的知识点.如何无交互的为用户设置密码.有两种方案:1.expect 2.passwd --stdin .第一种通用,第二种非redh ...

  8. 文件监控脚本 -- Linux bash

    文件监控脚本 – Linux bash md5算法及生成方式 MD5值等同于文件的ID,它的值是唯一的. 如果文件已被修改(例如嵌入式病毒,特洛伊木马等),其MD5值将发生变化. 因此,一些常规下载U ...

  9. Centos6配置samba服务器并批量添加用户和文件夹

    一.需求 局域网内有若干用户,所有用户访问一个共享目录 每个用户在共享目录里有自己的文件夹 每个用户都可以读取其他人的文件夹 每个用户只能对自己的文件夹有写入权限 所有用户都属于filesgroup组 ...

最新文章

  1. 海量数据处理算法—Bit-Map
  2. DevExpress TreeListLookupEdit常用技巧
  3. 分析工作试用期收获_免费使用零编码技能探索数据分析
  4. 前端学习(3120):react-hello-react的setstate的一个说明
  5. MySQL创建数据库与创建用户以及授权
  6. SSH远程管理,构建密钥对验证的SSH体系,设置SSH代理功能。
  7. 一个百分号%引起的事故
  8. mysql1232_Mysql执行流程
  9. Si9000射频线阻抗计算
  10. 多线程高并发编程(1) -- 基础及详解
  11. 利用Android源码,轻松实现汉字转拼音功能
  12. 梅西大学研究员创造出新3D打印系统 用螺杆作为进料机构挤出颗粒
  13. Flutter Image 参数详解
  14. 国内外优秀程序员的博客全在这了,请查收
  15. 国产光刻机再次斩获新订单,业绩大幅衰退的ASML如遭雷击
  16. python对网站DDos攻击
  17. bzoj4399 魔法少女LJJ
  18. 【航拍干货】航测区域重点建筑物精细化建模航拍技巧
  19. Ajax Interceptor工具分享
  20. groupadd: cannot open /etc/group

热门文章

  1. 怎么使用XCode给iOS手机安装测试包
  2. 腾讯“鹅城”开建,斥资370亿;提前泄露小米新机博主被判赔偿100万;传字节跳动实习生删除GB以下所有机器学习模型 | EA周报...
  3. ios9遇到 App Transport Security has blocked a cleartext HTTP(http://) resource load 错误
  4. 食品巨头布勒宣布部署区块链以对抗沙门氏菌和大肠杆菌
  5. 我用python写了个小病毒,老板再也不敢扣我工资啦
  6. 小福利,用selenium模块爬取qq音乐歌单!
  7. java递归多层(多节点)xml和map互相转换
  8. 2019年给Java编程初学者的建议(附学习大纲)
  9. 2018Java阿里编程测验_2018阿里编程测验题:最短汉密尔顿回路
  10. Code review是个数学问题:从二向箔说起