Linux創建多個用戶,並賦予隨機密碼,要求不使用循環語句。
方法一
使用基本命令useradd和passwd添加用戶和添加密碼。
(注:RANDOM隨機生成數字(3-5個不等)。)
創建一個用戶
[root@Linux-jack ~]# useradd stu01
創建多個用戶就是要重複上面的命令多次,但是一個一個輸入會比較麻煩,但是我們可以先生成一串序列,然後使用替換的方法將序列替換成上面的格式。
[root@Linux-jack ~]# seq 10 1 2 3 4 5 6 7 8 9 10
然後我們使用sed命令將上面的序列替換成我們需要的命令
[root@Linux-jack ~]# 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@Linux-jack /]# seq -w 10|sed -r "s#(.*)#useradd stu\1#g"|bash [root@Linux-jack /]# [root@Linux-jack /]# [root@Linux-jack /]# tail -10 /etc/passwd stu01:x:502:502::/home/stu01:/bin/bash stu02:x:503:503::/home/stu02:/bin/bash stu03:x:504:505::/home/stu03:/bin/bash stu04:x:505:506::/home/stu04:/bin/bash stu05:x:506:507::/home/stu05:/bin/bash stu06:x:507:508::/home/stu06:/bin/bash stu07:x:508:509::/home/stu07:/bin/bash stu08:x:509:510::/home/stu08:/bin/bash stu09:x:510:511::/home/stu09:/bin/bash stu10:x:511:512::/home/stu10:/bin/bash
爲這10個用戶添加隨機密碼
基本思想和上面一樣,先創建序列然後替換成我們需要的命令。
[root@Linux-jack ~]# 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@Linux-jack ~]# echo $((RANDOM)) 20998 [root@Linux-jack ~]# echo $((RANDOM)) 4479 [root@Linux-jack ~]# echo $((RANDOM)) 17310 [root@Linux-jack ~]# echo $((RANDOM)) 23677
它會生成3到5個隨機數,我們可以將這些數通過管道傳輸給passwd然後進行密碼修改。
但是修改後的密碼又看不到,設置了等於沒有設置,於是我們再使用追加重定向將密碼再傳進一個文件夾中,這樣就可以既添加了隨機密碼又可以看到密碼是多少。
[root@Linux-jack /]# 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. passwd: all authentication tokens updated successfully. Changing password for user stu03. passwd: all authentication tokens updated successfully. Changing password for user stu04. passwd: all authentication tokens updated successfully. Changing password for user stu05. passwd: all authentication tokens updated successfully. Changing password for user stu06. passwd: all authentication tokens updated successfully. Changing password for user stu07. passwd: all authentication tokens updated successfully. Changing password for user stu08. passwd: all authentication tokens updated successfully. Changing password for user stu09. passwd: all authentication tokens updated successfully. Changing password for user stu10. passwd: all authentication tokens updated successfully. [root@Linux-jack /]# tail -10 /mima.log stu01:24794 stu02:11164 stu03:12613 stu04:17306 stu05:28956 stu06:27385 stu07:4530 stu08:23984 stu09:2428 stu10:18143
方法二
使用chpasswd更改用戶密碼
chpasswd是一個批量更改用戶密碼的命令,它是先讀取一個文件,然後根據文件的內容,然後更改密碼,文件內容格式如下:
USERNAME:PASS WORD
冒號左邊是用戶名,右邊是要修改的密碼。
首先創建10個用戶
[root@Linux-jack /]# seq -w 10|sed -r 's#(.*)#userdel stu\1#g'|bash [root@Linux-jack /]# [root@Linux-jack /]# [root@Linux-jack /]# tail -10 /etc/passwd stu01:x:502:502::/home/stu01:/bin/bash stu02:x:503:503::/home/stu02:/bin/bash stu03:x:504:505::/home/stu03:/bin/bash stu04:x:505:506::/home/stu04:/bin/bash stu05:x:506:507::/home/stu05:/bin/bash stu06:x:507:508::/home/stu06:/bin/bash stu07:x:508:509::/home/stu07:/bin/bash stu08:x:509:510::/home/stu08:/bin/bash stu09:x:510:511::/home/stu09:/bin/bash stu10:x:511:512::/home/stu10:/bin/bash
然後在文件中寫入要修改的用戶名和密碼
[root@Linux-jack /]# echo stu{01..10}:$((RANDOM))|tr " " "\n" >mima.log [root@Linux-jack /]# cat /mima.log stu01:29906 stu02:8080 stu03:23509 stu04:5472 stu05:21851 stu06:20113 stu07:7789 stu08:3386 stu09:2396 stu10:11108
上面的tr命令作用是將前面的空格,更改成換行符,這樣就不會在一行顯示,因爲chpasswd對文件內容格式有要求。
然後我們執行chpasswd命令,並測試是否能進入。
[root@Linux-jack /]# chpasswd<mima.log [root@Linux-jack /]# su - stu01 Welcome to my computer ,have a good day! [stu01@Linux-jack ~]$ su - stu02 Password: Welcome to my computer ,have a good day!
以上內容整理自老男孩教育23期“創建多個用戶,不使用循環語句”,同學作業分享。
目的熟練使用基本命令來達到練習的目的。
參考範例: