批量创建用户脚本练习题

回复 收藏
用脚本批量创建用户user_00 ... user_20, 并且给这些用户设置一个随机密码,并记录到一个日志文件中。

答案:
{{{密码回复可见}}}

2015-08-07 09:52 举报
已邀请:
0

ayuan124

赞同来自:

看看先
0

丶小作

赞同来自:

mark
0

SunyBome

赞同来自:

看看
0

wangdi244

赞同来自:

#!/usr/bin/env python
# coding=utf-8
import os
for i in range(0,21):
    with open('/home/wangdi/ceshi/log.txt','a') as f:
        if i < 10:
            user_name = 'user_0'+'%d' % i
            os.system('useradd %s' %user_name )
            os.system('echo "%s" | passwd --stdin %s' %(user_name,user_name))
            f.write('add new user %s,password %s \n' % (user_name,user_name))
        else:
            os.system('useradd user_%d' %i )
            os.system('echo "%d" | passwd --stdin user_%d' %(i,i))
            f.write('add new user user_%d,password user_%d \n' % (i,i))
0

nihao426181

赞同来自:

^^^^^^^^^^^^^^^^^^^6
0

huchiwen

赞同来自:

学习!!!
0

乐橙306

赞同来自:

RE: 批量创建用户脚本练习题 [修改]
0

lucas1202

赞同来自:

在纠结密码怎么弄。用户可以创建。。来看看。。
0

Armani

赞同来自:

for i  in  `seq -w 00  20`
do
   echo $i
   useradd -M  user_"$i"
   bb=`mkpasswd`
   echo "user_"$i":$bb"  >>  /scripts/shell/2.log

done
0

tjlygdx

赞同来自:

学习shell
0

哈哈琨少

赞同来自:

学习学习
0

渐行渐远

赞同来自:

虚席
0

乌贼的帽子

赞同来自:

学习
0

foxbuns

赞同来自:

#!/bin/bash
>/tmp/pw.txt
for i in `seq 1 20`
do
useradd user$i
n="user$i$RANDOM"
echo $n | passwd --stdin user$i
echo "user$i passwd is $n" >> /tmp/pw.txt
done
0

wzwyql

赞同来自:

学习
0

ifconfig2

赞同来自:

看看
0

北辰星

赞同来自:

学习
0

robert

赞同来自:

yaya
0

Hyman1105

赞同来自:

学习
0

追风者

赞同来自:

#! /bin/bash  # #批处理创建用户user_00...user_20,并给这些用户设置一个随机密码,并记录到文件中 # #  for i in `seq 1 20` do         useradd -M "user_$i"         passwd=`mkpasswd`         echo user_$i":"$passwd >> /opt/rh/2.txt done
0

ringle000

赞同来自:

make
0

lky

赞同来自:

学习
0

Shawn

赞同来自:

随机的数字,密码,什么的豆怎么生成啊
0

demon_l

赞同来自:

kankan
0

Linuxpp

赞同来自:

xue xi
0

Rohero

赞同来自:

mark
0

krven

赞同来自:

12
0

linuxjishuren

赞同来自:

学习
0

xuliang

赞同来自:

学习
0

yanggang

赞同来自:

探究
0

ldp840611

赞同来自:

看目的地
0

yangjian319

赞同来自:

学习了。
0

J!_yuan

赞同来自:

看看
0

hzsnone

赞同来自:

mark下
0

xueyongbo

赞同来自:

本帖最后由 xueyongbo 于 2015-12-15 10:21 编辑
  1. #!/bin/bash

  2. # By xueyongbo
  3. # 2015/12/9 15:40


  4. rand_random_passwd(){
  5. while :
  6. do
  7.         rand=$RANDOM
  8.         if [ ${#rand} -eq 5 ];then
  9.                 echo "$username$rand" | passwd --stdin $username
  10.                 echo -e " $username\t$username$rand" >> /tmp/user_passwd.txt
  11.                 break
  12.         else
  13.                 continue
  14.         fi
  15. done
  16. }

  17. number_of_user(){

  18. if [ -z $number ];then
  19.         read -p "input the number of user :" num
  20. else
  21.         num=$number
  22. fi

  23. for i in `seq -w 00 $num`
  24. do
  25.         useradd -m user_$i
  26.         username=user_$i
  27.         rand_random_passwd
  28. done
  29. }

  30. from_userlist(){

  31. if [ -z $namefile ];then
  32.         read -p "input the namelist file path :" name
  33. else
  34.         name=$namefile
  35. fi

  36. for i in $(cat $name)
  37. do
  38.         useradd -m $i
  39.         username=$i
  40.         rand_random_passwd
  41. done

  42. }

  43. if [ -z $1 ];then
  44.         echo "select the number of menu :"
  45.         select user_add_method in number_of_user from_userlist Help quit
  46.         do
  47.                 case $user_add_method in
  48.                 quit)
  49.                         echo "your entered quit."
  50.                         break
  51.                 ;;

  52.                 number_of_user)
  53.                         number=$1
  54.                         number_of_user
  55.                 ;;

  56.                 from_userlist)
  57.                         namefile=$1
  58.                         from_userlist
  59.                 ;;

  60.                 Help)
  61.                         echo -e "you can direct run the script and you need select the number of menu :  sh adduser.sh\nor  input a user of number parameter ,like this : sh adduser.sh 20\nor  from file thr username list : sh adduser.sh /tmp/userlist.txt\n"
  62.                 ;;

  63.                 *)
  64.                         echo "error!! invaild selection \"$REPLY\",you need select the number of menu,chose again or select \"help\"."
  65.                 ;;

  66.                 esac
  67.         done
  68. elif [ -f $1 ];then
  69.         namefile=$1
  70.         from_userlist
  71. elif [ $(echo $1 | grep -E "[0-9]+") ];then
  72.         number=$1
  73.         number_of_user
  74. else
  75.         echo "the invaild parameter $1 ."
  76. fi
测试可以实现,输入用户数量,或通过录入用户名的文件,生成用户和随机密码。。
可以直接调用脚本选择创建用户的方式。或 使用 sh adduser.sh 20  ,或使用 sh adduser.sh  /tmp/userlist.txt 的形式运行脚本。。

这个随机密码的函数还可以搞点别点算法。。
http://www.cnblogs.com/chengmo/archive/2010/10/23/1858879.html


0

無名世界

赞同来自:

看看。之前有一个不许用SHELL脚本的
0

石头

赞同来自:

{:4_91:}
0

jinm

赞同来自:

学习
0

timfeng3535

赞同来自:

asdf
0

wuwenweijuan

赞同来自:

不知道能不能用循环语句?瞄一下。。。
0

weifeng1463

赞同来自:

ok
0

重庆-刘鹏

赞同来自:

批量创建用户
0

考鸡蛋

赞同来自:

本帖最后由 考鸡蛋 于 2015-12-29 17:48 编辑
  1. [root@bogon ~]# less useradd.sh
  2.         #!/bin/bash
  3.         #批量创建用户脚本
  4.         #2015-12-29
  5.         #检测或安装expect
  6.         rpm -qa | grep expect || yum install -y expect
  7.         #生成用户名文件
  8.         for i in `seq 01 20`
  9.         do
  10.                 name=user_$i
  11.                 echo -e "$name \c" ' ' >> ./name.txt
  12.         done
  13.         #打印记录文件头
  14.         echo 'username:    password' >> ./user_passwd
  15.         #创建用户设置密码
  16.         for i in `cat ./name.txt`
  17.         do
  18.                 #记录用户名
  19.                 echo -e "$i:     \c" >> ./user_passwd
  20.                 #创建用户
  21.                 useradd $i
  22.                 #生成用户密码并出入记录文件
  23.                 pawd=`mkpasswd`
  24.                 echo $pawd >> ./user_passwd
  25.                 #更改用户密码
  26.                 echo $pawd | passwd --stdin $i
  27.         done
  28.         #删除临时文件
  29.         rm -fr ./name.txt

  30. 测试:
  31. [root@bogon ~]#sh -x useradd.sh
  32.         [root@bogon ~]#less user_passwd
  33.         username:    password
  34.         user_1:     53ftlcBT[
  35.         user_2:     }nsMwnW48
  36.         user_3:     r7!dgT5qU
  37.         user_4:     81<KquNrz
  38.         user_5:     iqgj83/EX
  39.         user_6:     4m:UXkh5o
  40.         user_7:     qa)6lX8oI
  41.         user_8:     $9uddb3IQ
  42.         user_9:     1TmhstR9)
  43.         user_10:     cb8XtxL6,
  44.         user_11:     /RFd4qx8y
  45.         user_12:     6kdu+YB7l
  46.         user_13:     w5eL4zLa!
  47.         user_14:     GF28vihd!
  48.         user_15:     I96rvM[rk
  49.         user_16:     oHnk8gM1^
  50.         user_17:     Ce-Zq3jh0
  51.         user_18:     uTza%pH14
  52.         user_19:     Umoet1|S4
  53.         user_20:     vb3tyBU1@
  54.         
  55.         [root@bogon ~]# su user_1
  56.         [user_1@bogon root]$ su user_2
  57.         密码:
  58.         [user_2@bogon root]$ su user_3
  59.         密码:
  60.         [user_3@bogon root]$ ls
  61.         ls: 无法打开目录.: 权限不够
0

考鸡蛋

赞同来自:

看了铭哥的,自己写的不够简洁!!!!
0

maria

赞同来自:


  1. #!/bin/bash
  2. for i in `seq 1 20`
  3. do
  4. useradd user_$i
  5. pas="$RANDOM"
  6. echo $pas | passwd --stdin user_$i
  7. echo "用户user_$i 密码是 $pas" >> /tmp/user.txt
  8. done

QQ图片20151229214457.png
0

andreking

赞同来自:

学习下
0

malong

赞同来自:

kankan
0

369666951

赞同来自:

随机密码
0

balich

赞同来自:

本帖最后由 balich 于 2016-1-5 15:35 编辑
  1. #!/bin/bash
  2. #
  3. # 2015-12-24
  4. . /etc/init.d/functions
  5. Userbox=/home/userbox.txt
  6. Failbox=/home/fail_userbox.txt

  7. [ -f "$Userbox" ] || touch $Userbox
  8. [ -f "$Failbox" ] || touch $Failbox

  9. for n in `seq -w 0 20`
  10.         do
  11.         password=`mkpasswd -l 8`
  12.         useradd user_$n >& /dev/null && user_status=$?
  13.         echo "$password" | passwd --stdin user_$n >& /dev/null && pass_status=$?
  14.                 if [ $user_status -eq 0 -a $pass_status -eq 0 ]; then
  15.                         action "adduser user_$n " /bin/true
  16.                         echo -e "user:\t user_$n password:$password" >> $Userbox
  17.                 else
  18.                         action "adduser user_$n " /bin/false
  19.                         echo -e "user:\t user_$n password:$password" >> $Failbox
  20.                 fi
  21. done


0

老咸菜

赞同来自:

mark
0

Burgess

赞同来自:

学习
0

loveyouhyf

赞同来自:

Armani 发表于 2015-8-27 11:10
for i  in  `seq -w 00  20`
do
   echo $i

在最后一个echo行下,加个echo "$bb"|passwd  --stdin user_$i
0

zql254

赞同来自:

  1. for i in `seq -w 1 20`
  2. do
  3.     pw=`echo $RANDOM|sha256sum|base64|head -c 12`
  4.     useradd user_$i >/dev/null
  5.     echo $pw |passwd --stdin user_$i > /dev/null
  6.     echo "user_$i $pw" >> ./newuser.txt
  7. done
0

prospect

赞同来自:

本帖最后由 prospect 于 2016-1-6 22:31 编辑

#!/bin/sh
#author@zhanwang.xie
#date_20160106

for i in `seq -w 1 20`
do
    useradd user$i
    passwd="user$RANDOM"
    echo $passwd |passwd --stdin user$i
    echo "user$i is OK"
    sleep 1
    echo "user is user$i;passwd is $passwd" >>user.txt
done
0

hlymlv

赞同来自:

#!/bin/bash
for i in `seq -w  1 20`
do
p=`mkpasswd -l 10`
useradd user_$i
echo "$p"| passwd --stdin user_$i >> passwd.log 2>/dev/null
done
0

shitukeji

赞同来自:

复习中
0

t0ny1988

赞同来自:

#!/bin/bash
rpm -qa | grep expect || yum install -y expect
for i in `seq -w 00 20`
do
useradd user_$i
passwd=`mkpasswd`
echo $passwd |passwd --stdin user_$i
echo "user_$i $passwd" >> /var/user.log
done
0

HwangChen

赞同来自:

look

0

skylake_

赞同来自:

瞅瞅
0

licengceng

赞同来自:

学习
0

xiaoqing757

赞同来自:

  1. #!/bin/bash

  2. user='user_'
  3. echo "" > userfile
  4. for u in $(seq -w 00 20)
  5. do
  6.         useradd $user$u
  7.         pw=`mkpasswd -s 0 -l 6`
  8.         echo $user$u:$pw >> userfile

  9. done

  10. chpasswd < userfile
0

rolay8

赞同来自:

本帖最后由 rolay8 于 2016-1-18 16:37 编辑
  1. #!/bin/bash

  2. for i in $(seq -w 00 20); do
  3.     rn=$(head -n5 /dev/urandom |sed 's/[^0-9a-Z]//g'|strings |sed ':label;N;s/\n//g'|head -n1)
  4.     useradd user_$i >/dev/null && echo -n $rn|passwd --stdin user_$i >/dev/null
  5.     echo "user_$i : $rn">>user.txt
  6. done
0

casparcc

赞同来自:

学习 学习
0

fansze

赞同来自:

{:4_92:}
0

孤舟一字横

赞同来自:

不知道该怎么设置随机密码
0

lin19890913

赞同来自:

看看
0

初秋飞马

赞同来自:

  1. #!/bin/bash
  2. for i in `seq 00 19`
  3. do
  4. username="user_"$i
  5. password=`mkpasswd`
  6. useradd $username
  7. echo $password|passwd --stdin $username
  8. echo $username" "$password >>./pwd.txt
  9. done
0

zkq_315

赞同来自:

for i in {0..10}
do
        if ! id Auser_$i &> /dev/null
        then
                useradd Auser_$i
                passWord="$RANDOM"
#               echo "$passWord"
                echo "$passWord" | passwd --stdin Auser_$i &>> /var/log/create_log
        else
                echo "Auser_$i is cunzai"
        fi
done
0

magic2018

赞同来自:

M
0

KICAZ629

赞同来自:

学习
0

KICAZ629

赞同来自:

学习
0

落涧飞鹰

赞同来自:

看看
0

jokerhuman

赞同来自:

学习
0

thedawn

赞同来自:

1
0

qiqige

赞同来自:

学习
0

我是学渣

赞同来自:

{:4_99:}
0

googleqicq

赞同来自:

学习
0

且听风吟

赞同来自:

看下先
0

ttly123

赞同来自:

学习学习
0

lin13750529011

赞同来自:

谢谢
0

snake

赞同来自:

学习
0

蔡炳森

赞同来自:

怎么将生成的密码指定用户
0

435664265

赞同来自:

#!/bin/bash #批量创建用户 for i in `cat /root/shell/user.txt` do    useradd -s /bin/bash $i    echo `mkpasswd -l 10 -s 0 -d 5 -C 3` |passwd --stdin $i    echo $i done
0

435664265

赞同来自:

Armani 发表于 2015-8-27 11:10
for i  in  `seq -w 00  20`
do
   echo $i

没有给用户创建命令
0

inzaghidai

赞同来自:

学习
0

q913555

赞同来自:

#!/bin/bash
##
##
>/tmp/passwd_sh
for i in `seq -w 0 20`
do
        useradd -M -g 503 user$i
        passwd=`mkpasswd -l 7 -s 0`
        echo $passwd >>/tmp/passwd_sh
        echo $passwd|passwd --stdin user$i
done


0

HMOM

赞同来自:

看看
0

Hugh

赞同来自:

学习1
0

木头爱木头媳妇

赞同来自:

瞅瞅
0

清茶一杯

赞同来自:

#!/bin/bash
>/tmp/user.log
for i in  `seq 1 20`
    do
        useradd  user$i
        n="user$i$RANDOM"
        echo $n | passwd --stdin user$i
        echo "user$i passwd is $n" >> /tmp/user.txt
done
exit0

====删除脚本
#!/bin/bash
  for i in `seq 1 20`
     do
         if [ -z `grep user$i /etc/passwd` ]
            then
                echo "Not fount user$i"
         else
                 userdel -r user$i
                 echo "user$i is remove"
         fi
    done
exit 0
0

杭州小白

赞同来自:

1
0

自己定义

赞同来自:

看看
0

cxiaodian

赞同来自:

good
0

小猫咪

赞同来自:

{:5_122:}
0

ZHAOFUYUN

赞同来自:

1
0

wsw13640218682

赞同来自:

  1. #!/bin/bash
  2. ##自动增加用户
  3. for i in `seq -w 0 20`
  4. do
  5. useradd  user_$i
  6. d=`mkpasswd`
  7. echo "user$d" >> /tmp/useradd.log
  8. done


0

大仔黑黑

赞同来自:

看看
0

kongfanqian

赞同来自:

可以了
0

online189

赞同来自:

看看
0

linux-小莫

赞同来自:

学习

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: