批量建立10個使用者stu01-stu10,并且設定随機8位密碼,要求不能用shell循環(例如:for,while等),隻能用指令及管道實作。
##方法1:
[root@Server ~]# 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
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.
上述指令實際就是再拼N條下面的指令的組合,舉一條指令stu01使用者的過程拆解如下:
useradd stu01 ;
pass=$((RANDOM+10000000));
echo "$pass"|passwd --stdin stu01;
echo -e "stu01 `echo "$pass"`">>/tmp/oldboy.log
特别說明:如果用shell循環結構會更簡單,之是以限制使用循環的目的是鍛煉學生的基礎指令運用
能力,學到現在還沒學到SHELL循環課程呢
##方法2:
[root@Server ~]# 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:
[root@Server ~]# 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
Changing password for user stu21.
Changing password for user stu22.
Changing password for user stu23.
Changing password for user stu24.
Changing password for user stu25.
Changing password for user stu26.
Changing password for user stu27.
Changing password for user stu28.
Changing password for user stu29.
Changing password for user stu30.
功能: 建立10個使用者 分别是 stu21-stu30 其密碼是用随機數變量RANDOM生成,均儲存至 userInfo.txt中,格式: username:passwd 這個寫的不算好 如果有更好的一定要分享哦! 上面的随機數 我之前是用日期生成的,是不對的,因為有可能會有重複現象,是以我後來幹脆用RANDOM**3取其前8位,可確定唯一性
##方法4:
[root@Server ~]# mkdir /data
[root@Server ~]# 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
本文轉自 dengaosky 51CTO部落格,原文連結:http://blog.51cto.com/dengaosky/1854560,如需轉載請自行聯系原作者