編寫shell腳本:
實驗案列一:編寫腳本用于批量添加使用者
要求如下:
要求提供互動功能,當管理者執行該腳本時,可以根據提示指定需添加的使用者數量(少于100)、使用者名字首、并能夠設定這些使用者賬戶的失效時間,初始密碼。
使用者名編号統一使用兩位數,如使用”01”、”02”、”03”的形式,而不是”1”、”2”、”3”的形式。
編寫對應的批量删節除使用者腳本,要能夠通過指令行參數指定使用者名字首,執行腳本後删除所有使用了該字首的使用者賬戶,但要防止删除root使用者。
批量添加使用者腳本:
1、批量添加使用者腳本myuadd.sh内容如下:
vi myuadd.sh
#!/bin/bash
read-p "input nu <1-99>:" nu
read-p "input name:" name
read-p "input date <YYYY-MM-DD>:" date
read-p "input password:" password
a=1
if[ $nu -lt 100 ]
then
while[ $a -le $nu ]
do
if [ $a -lt 10 ]
then
useradd -e $date"$name"0"$a"
echo "$password" | passwd--stdin "$name"0"$a" &>/dev/null
else
useradd -e $date"$name""$a"
echo "$password" | passwd--stdin "$name""$a" &>/dev/null
fi
a=`expr$a + 1`
done
fi
2、給腳本myuadd.sh增加x權限
Chmod +x myyuadd.sh
3、執行腳本myuadd.sh,添加使用者
./myyuadd
4、驗證結果:檢視/etc/passwd檔案是否添了新使用者
Tail /etc/passwd
實驗案列二:批量删除使用者腳本:
1、批量删除使用者腳本myudel.sh内容如下:
Vi myudel.sh
if[ $# -le 0 ] ; then
echo "error:the prefix of users has notbe specified."
echo "usage:$0 nameprefix"
exit 1
tarjcvf /root/users.cnf.tar.gz /etc/passwd /etc/shadow /etc/group &>/dev/null
tobedel=`grep"$1" /etc/passwd | cut -d ":" -f 1 | grep -v"root"`
foru in $tobedel
do
userdel -r $u &> /dev/null
2、給腳本myudel.sh增加x權限
Chmod + x myudel.sh
3、執行腳本myudel.sh,删除使用者。如./myudel.shcaiwu03或./myudel.sh caiwu
4、驗證結果:檢視/etc/passwd檔案中已删除的使用者是否還存在。
Tail /etc/passwd
附:
我們可以用env或export指令檢視環境變量,使用set指令檢視所有變量(包括環境變量和自定義變量),使用unset指令删除變量
LINUX系統中大多數版本都有随機數生成器,就是/dev/random檔案。可以通過這個随機數檔案相關的系統環境變量$RANDOM來随機取得随機數。在BASH環境下,這個RANDOM變量的内容介于0——32767之間,(man bash,搜尋 RANDOM 可以看到說明)是以,隻要echo $RANDOM時,系統就會主動随機取出一個介于0——32767的數值。例如要想0-9之間的随機數時,可以用declare聲明數值類型
或