天天看點

Linux建立多個使用者,并賦予随機密碼,不使用循環語句

Linux建立多個使用者,并賦予随機密碼,要求不使用循環語句。

方法一

使用基本指令useradd和passwd添加使用者和添加密碼。

(注:RANDOM随機生成數字(3-5個不等)。)

建立一個使用者

[root@Server ~]# useradd stu01

建立多個使用者就是要重複上面的指令多次,但是一個一個輸入會比較麻煩,但是我們可以先生成一串序列,然後使用替換的方法将序列替換成上面的格式。

[root@Server ~]# seq 10

1

2

3

4

5

6

7

8

9

10

[root@Server ~]# 

然後我們使用sed指令将上面的序列替換成我們需要的指令

[root@Server ~]# seq -w 10|sed -r 's#(.*)#useradd stu\1#g'

useradd stu01

useradd stu02

useradd stu03

useradd stu04

useradd stu05

useradd stu06

useradd stu07

useradd stu08

useradd stu09

useradd stu10

這樣我們就可以一次性建立多個使用者了,隻需要将上面的内容利用管道傳輸給bash就能執行指令了。

[root@Server ~]# seq -w 10|sed -r "s#(.*)#useradd stu\1#g"|bash

[root@Server ~]# tail -10 /etc/passwd

stu01:x:503:503::/home/stu01:/bin/bash

stu02:x:504:504::/home/stu02:/bin/bash

stu03:x:505:505::/home/stu03:/bin/bash

stu04:x:506:506::/home/stu04:/bin/bash

stu05:x:507:507::/home/stu05:/bin/bash

stu06:x:508:508::/home/stu06:/bin/bash

stu07:x:509:509::/home/stu07:/bin/bash

stu08:x:510:510::/home/stu08:/bin/bash

stu09:x:511:511::/home/stu09:/bin/bash

stu10:x:512:512::/home/stu10:/bin/bash

[root@Server ~]#

為這10個使用者添加随機密碼

基本思想和上面一樣,先建立序列然後替換成我們需要的指令。

[root@Server ~]# seq -w 10|sed -r 's#(.*)#passwd stu\1#g'

passwd stu01

passwd stu02

passwd stu03

passwd stu04

passwd stu05

passwd stu06

passwd stu07

passwd stu08

passwd stu09

passwd stu10

到這裡後就要一個一個輸入密碼比較麻煩,但是passwd有一個參數--stdin可以直接使用echo指令将密碼傳入進去,題目要求是建立随機密碼,這裡要用到一個随機變量參數RANDOM

[root@Server ~]# echo $((RANDOM))

2492

15380

20658

24952

它會生成3到5個随機數,我們可以将這些數通過管道傳輸給passwd然後進行密碼修改。

但是修改後的密碼又看不到,設定了等于沒有設定,于是我們再使用追加重定向将密碼再傳進一個檔案夾中,這樣就可以既添加了随機密碼又可以看到密碼是多少。

[root@Server ~]# seq -w 10|sed -r 's#(.*)#jack="$((RANDOM))" ;echo $jack|passwd --stdin stu\1;echo "stu\1:$jack">>/mima.log#g'|bash

Changing password for user stu01.

passwd: all authentication tokens updated successfully.

Changing password for user stu02.

Changing password for user stu03.

Changing password for user stu04.

Changing password for user stu05.

Changing password for user stu06.

Changing password for user stu07.

Changing password for user stu08.

Changing password for user stu09.

Changing password for user stu10.

[root@Server ~]# tail -10 /mima.log 

stu01:20103

stu02:5338

stu03:12149

stu04:15405

stu05:13777

stu06:27532

stu07:28049

stu08:2620

stu09:17935

stu10:22851

方法二

使用chpasswd更改使用者密碼

chpasswd是一個批量更改使用者密碼的指令,它是先讀取一個檔案,然後根據檔案的内容,然後更改密碼,檔案内容格式如下:

USERNAME:PASS WORD

冒号左邊是使用者名,右邊是要修改的密碼。

首先建立10個使用者

[root@Server ~]# seq -w 10|sed -r 's#(.*)#userdel -r stu\1#g'|bash

stu01:x:502:502::/home/stu01:/bin/bash

stu02:x:503:503::/home/stu02:/bin/bash

stu03:x:504:504::/home/stu03:/bin/bash

stu04:x:505:505::/home/stu04:/bin/bash

stu05:x:506:506::/home/stu05:/bin/bash

stu06:x:507:507::/home/stu06:/bin/bash

stu07:x:508:508::/home/stu07:/bin/bash

stu08:x:509:509::/home/stu08:/bin/bash

stu09:x:510:510::/home/stu09:/bin/bash

stu10:x:511:511::/home/stu10:/bin/bash

然後在檔案中寫入要修改的使用者名和密碼

[root@Server ~]# echo stu{01..10}:$((RANDOM))|tr " " "\n" >mima.log

[root@Server ~]# cat mima.log 

stu01:7119

stu02:27272

stu03:16673

stu04:24743

stu05:10044

stu06:4649

stu07:19767

stu08:29380

stu09:21922

stu10:13488

上面的tr指令作用是将前面的空格,更改成換行符,這樣就不會在一行顯示,因為chpasswd對檔案内容格式有要求。

然後我們執行chpasswd指令,并測試是否能進入。

root@Server ~]# chpasswd < mima.log 

[root@Server ~]# su - stu01

[stu01@Server ~]$ su - stu02

Password: 

[stu02@Server ~]$ whoami 

stu02

[stu02@Server ~]$ 

本文轉自 dengaosky 51CTO部落格,原文連結:http://blog.51cto.com/dengaosky/1854534,如需轉載請自行聯系原作者

繼續閱讀