在Linux中批量建立用戶的shell教程
在Linux中批量建立用戶的shell教程
你還在為不知道在Linux中批量建立用戶的shell教程而不知所措么?下面來是學(xué)習(xí)啦小編為大家收集的在Linux中批量建立用戶的shell教程,歡迎大家閱讀:
在Linux中批量建立用戶的shell教程
最近,筆者在校園網(wǎng)應(yīng)用平臺建設(shè)中采用了Linux操作系統(tǒng),為校園網(wǎng)用戶提供DNS、Apache、POP3、SMTP、FTP等服務(wù)。由于我校學(xué)生用戶數(shù)在3000人以上,筆者在建設(shè)整個應(yīng)用平臺的過程中特別重視保證用戶管理效率。我的基本思路和做法是:利用shell為每個學(xué)生建立一個系統(tǒng)賬號——即提供一個E-mail地址(含F(xiàn)TP空間賬號),然后學(xué)生可以憑借其E-mail再注冊論壇用戶。基于這樣的管理思路,筆者編寫了一個批量建立用戶的shell,實踐證明,利用shell可以有效地管理基于Unix內(nèi)核的系統(tǒng)用戶。
以下是整個shell的源碼及注釋,此代碼在Redhat 7.2及Turbo Linux 7.0上調(diào)試通過,在其他版本的Linux中使用可能需要做適當(dāng)?shù)男薷?。其?ldquo;@”部分是代碼注釋,“()”部分是筆者對于編程思路的解釋。
@!/bin/sh(定義使用sh shell)
groupadd users(建立用戶組)
@grade code(定義第一個參數(shù)為年級代碼,賦予變量“grade”)
grade= class="main">
在Linux中批量建立用戶的shell教程
@class code(定義第二個參數(shù)為班級代碼,賦予變量“num_class”)
num_class=`expr
在Linux中批量建立用戶的shell教程
你還在為不知道在Linux中批量建立用戶的shell教程而不知所措么?下面來是學(xué)習(xí)啦小編為大家收集的在Linux中批量建立用戶的shell教程,歡迎大家閱讀:
在Linux中批量建立用戶的shell教程
最近,筆者在校園網(wǎng)應(yīng)用平臺建設(shè)中采用了Linux操作系統(tǒng),為校園網(wǎng)用戶提供DNS、Apache、POP3、SMTP、FTP等服務(wù)。由于我校學(xué)生用戶數(shù)在3000人以上,筆者在建設(shè)整個應(yīng)用平臺的過程中特別重視保證用戶管理效率。我的基本思路和做法是:利用shell為每個學(xué)生建立一個系統(tǒng)賬號——即提供一個E-mail地址(含F(xiàn)TP空間賬號),然后學(xué)生可以憑借其E-mail再注冊論壇用戶?;谶@樣的管理思路,筆者編寫了一個批量建立用戶的shell,實踐證明,利用shell可以有效地管理基于Unix內(nèi)核的系統(tǒng)用戶。
以下是整個shell的源碼及注釋,此代碼在Redhat 7.2及Turbo Linux 7.0上調(diào)試通過,在其他版本的Linux中使用可能需要做適當(dāng)?shù)男薷?。其?ldquo;@”部分是代碼注釋,“()”部分是筆者對于編程思路的解釋。
@!/bin/sh(定義使用sh shell)
groupadd users(建立用戶組)
@grade code(定義第一個參數(shù)為年級代碼,賦予變量“grade”)
grade=$1
@class code(定義第二個參數(shù)為班級代碼,賦予變量“num_class”)
num_class=`expr $2 + 0`
if (test $num_class -le 9)(以下代碼是為了保證班級碼的位數(shù)為兩位)
then
num_class="0"$num_class
fi
@max user id(定義第三個參數(shù)為該班學(xué)生的最大ID號,賦予變量“max_stid”)
max_stid=`expr $3 + 0`
@init user id(該班學(xué)生用戶ID號從1開始)
num_stid =1
@mkdir user home(在“/home”目錄為所有學(xué)生建立名為"student"的公共目錄)
if [ ! -x /home/student ]
then
mkdir /home/student
fi
if [ ! -x /home/student/$1$num_class ] (在學(xué)生公共目錄下為每個班級建立以該班代碼命名的目錄)
then
mkdir /home/student/$1$num_class
fi
while (test $num_stid -le $max_stid)(從用戶ID號1開始循環(huán),直到最大ID號)
do
if (test $num_stid -le 9) (以下保證學(xué)生代碼的位數(shù)為兩位)
then
num_stid="0"$num_stid
fi
user_name=$grade$num_class$num_stid(把年級、班級、學(xué)生ID號三部分代碼組合成用戶名,并賦予變量user_name)
@save user passwd to file user_pwlist(按“name:passwd”的格式逐行追加寫入“user_pwlist”文件,以備初始化用戶密碼)
echo $user_name":"$user_name >> user_pwlist
@add user(建立該用戶,同時賦予“users”組,創(chuàng)建該用戶目錄)
adduser -g users -d /home/student/$1$num_class/$user_name $user_name
@set quota(為該用戶設(shè)置配額,限制最大容量為20MB,沒有文件數(shù)限制)
setquota -u $user_name 10240 20480 0 0 /home
@set directory mode(設(shè)置該用戶目錄的權(quán)限為755)
chmod 755 /home/student/$1$num_class/$user_name
@current user id add one(用戶ID號加1,準(zhǔn)備下一次循環(huán),建立下一個用戶)
num_stid=`expr $num_stid + 1`
done
chpasswd < user_pwlist(以下兩行為剛才建立的所有用戶設(shè)置密碼)
pwconv
rm user_pwlist -f(刪除“user_pwlist”文件)
關(guān)于使用:
1. 用vi編輯器逐行寫入以上代碼部分,并以文件的形式保存,如以“addclass”命名保存,再執(zhí)行以下步驟。
2. #chmod +x addclass(設(shè)置addclass文件為可執(zhí)行權(quán)限)
3. #./addclass ga 1 50(建立ga0101-ga0150用戶)
注意:#為提示符。
以上代碼只是筆者在使用shell進行系統(tǒng)用戶管理時的一點體會。由于shell可以和Linux的系統(tǒng)命令結(jié)合使用,所以它在管理中的功能就顯得非常強大。就以上代碼而言,我們只要稍加改動,就可以建立刪除批量用戶的shell、批量配置用戶配額的shell以及批量初始用戶密碼的shell。如果再加上一層班級循環(huán)語句,就可以生成一次建立一個年級用戶的shell
看了“在Linux中批量建立用戶的shell教程”還想看:
1.怎么在windows系統(tǒng)中使用linux的shell腳本
4.Windows下怎么運行l(wèi)inux shell腳本
5.Linux用戶退出系統(tǒng)后如何限制IP登錄Shell
6.Linux如何利用訪問控制列表來限制用戶權(quán)限
+ 0`if (test $num_class -le 9)(以下代碼是為了保證班級碼的位數(shù)為兩位)
then
num_class="0"$num_class
fi
@max user id(定義第三個參數(shù)為該班學(xué)生的最大ID號,賦予變量“max_stid”)
max_stid=`expr + 0`
@init user id(該班學(xué)生用戶ID號從1開始)
num_stid =1
@mkdir user home(在“/home”目錄為所有學(xué)生建立名為"student"的公共目錄)
if [ ! -x /home/student ]
then
mkdir /home/student
fi
if [ ! -x /home/student/ class="main">
在Linux中批量建立用戶的shell教程
在Linux中批量建立用戶的shell教程
fi
while (test $num_stid -le $max_stid)(從用戶ID號1開始循環(huán),直到最大ID號)
do
if (test $num_stid -le 9) (以下保證學(xué)生代碼的位數(shù)為兩位)
then
num_stid="0"$num_stid
fi
user_name=$grade$num_class$num_stid(把年級、班級、學(xué)生ID號三部分代碼組合成用戶名,并賦予變量user_name)
@save user passwd to file user_pwlist(按“name:passwd”的格式逐行追加寫入“user_pwlist”文件,以備初始化用戶密碼)
echo $user_name":"$user_name >> user_pwlist
@add user(建立該用戶,同時賦予“users”組,創(chuàng)建該用戶目錄)
adduser -g users -d /home/student/ class="main">
在Linux中批量建立用戶的shell教程
@set quota(為該用戶設(shè)置配額,限制最大容量為20MB,沒有文件數(shù)限制)
setquota -u $user_name 10240 20480 0 0 /home
@set directory mode(設(shè)置該用戶目錄的權(quán)限為755)
chmod 755 /home/student/ class="main">
在Linux中批量建立用戶的shell教程
@current user id add one(用戶ID號加1,準(zhǔn)備下一次循環(huán),建立下一個用戶)
num_stid=`expr $num_stid + 1`
done
chpasswd < user_pwlist(以下兩行為剛才建立的所有用戶設(shè)置密碼)
pwconv
rm user_pwlist -f(刪除“user_pwlist”文件)
關(guān)于使用:
1. 用vi編輯器逐行寫入以上代碼部分,并以文件的形式保存,如以“addclass”命名保存,再執(zhí)行以下步驟。
2. #chmod +x addclass(設(shè)置addclass文件為可執(zhí)行權(quán)限)
3. #./addclass ga 1 50(建立ga0101-ga0150用戶)
注意:#為提示符。
以上代碼只是筆者在使用shell進行系統(tǒng)用戶管理時的一點體會。由于shell可以和Linux的系統(tǒng)命令結(jié)合使用,所以它在管理中的功能就顯得非常強大。就以上代碼而言,我們只要稍加改動,就可以建立刪除批量用戶的shell、批量配置用戶配額的shell以及批量初始用戶密碼的shell。如果再加上一層班級循環(huán)語句,就可以生成一次建立一個年級用戶的shell
看了“在Linux中批量建立用戶的shell教程”還想看:
1.怎么在windows系統(tǒng)中使用linux的shell腳本
4.Windows下怎么運行l(wèi)inux shell腳本