如何用Linux操作系統批量建立用户的shell
最近,筆者在校園網應用平台建設中採用了Linux操作系統,為校園網用户提供DNS、Apache、POP3、SMTP、FTP等服務。由於我校學生用户數在3000人以上,筆者在建設整個應用平台的過程中特別重視保證用户管理效率。我的基本思路和做法是:利用shell為每個學生建立一個系統賬號——即提供一個E-mail地址(含FTP空間賬號),然後學生可以憑藉其E-mail再註冊論壇用户。基於這樣的管理思路,筆者編寫了一個批量建立用户的shell,實踐證明,利用shell可以有效地管理基於Unix內核的系統用户。
以下是整個shell的源碼及註釋,此代碼在Redhat 7.2及Turbo Linux 7.0上調試通過,在其他版本的x中使用可能需要做適當的修改。其中“@”部分是代碼註釋,“()”部分是筆者對於編程思路的解釋。
@!/bin/sh(定義使用sh shell)
groupadd users(建立用户組)
@grade code(定義第一個參數為年級代碼,賦予變量“grade”)
grade=$1
@class code(定義第二個參數為班級代碼,賦予變量“num_class”)
num_class=`expr $2 + 0`
if (test $num_class -le 9)(以下代碼是為了保證班級碼的位數為兩位)
then
num_class="0"$num_class
fi
@max user id(定義第三個參數為該班學生的最大ID號,賦予變量“max_stid”)
max_stid=`expr $3 + 0`
@init user id(該班學生用户ID號從1開始)
num_stid =1
@mkdir user home(在“/home”目錄為所有學生建立名為"student"的公共目錄)
if [ ! -x /home/student ]
then
mkdir /home/student
fi
if [ ! -x /home/student/$1$num_class ] (在學生公共目錄下為每個班級建立以該班代碼命名的目錄)
then
mkdir /home/student/$1$num_class
fi
while (test $num_stid -le $max_stid)(從用户ID號1開始循環,直到最大ID號)
do
if (test $num_stid -le 9) (以下保證學生代碼的位數為兩位)
then
num_stid="0"$num_stid
fi
user_name=$grade$num_class$num_stid(把年級、班級、學生ID號三部分代碼組合成用户名,並賦予變量user_name)
@save user passwd to file user_pwlist(按“name:passwd”的格式逐行追加寫入“user_pwlist”文件,以備初始化用户密碼)
echo $user_name":"$user_name >> user_pwlist
@add user(建立該用户,同時賦予“users”組,創建該用户目錄)
adduser -g users -d /home/student/$1$num_class/$user_name $user_name
@set quota(為該用户設置配額,限制最大容量為20MB,沒有文件數限制)
setquota -u $user_name 10240 20480 0 0 /home
@set directory mode(設置該用户目錄的權限為755)
chmod 755 /home/student/$1$num_class/$user_name
@current user id add one(用户ID號加1,準備下一次循環,建立下一個用户)
num_stid=`expr $num_stid + 1`
done
chpasswd < user_pwlist(以下兩行為剛才建立的所有用户設置密碼)
pwconv
rm user_pwlist -f(刪除“user_pwlist”文件)
關於使用:
1. 用vi編輯器逐行寫入以上代碼部分,並以文件的形式保存,如以“addclass”命名保存,再執行以下步驟。
2. #chmod +x addclass(設置addclass文件為可執行權限)
3. #./addclass ga 1 50(建立ga0101-ga0150用户)
注意:#為提示符。
以上代碼只是筆者在使用shell進行系統用户管理時的一點體會。由於shell可以和Linux的系統命令結合使用,所以它在管理中的功能就顯得非常強大。就以上代碼而言,我們只要稍加改動,就可以建立刪除批量用户的shell、批量配置用户配額的shell以及批量初始用户密碼的shell。如果再加上一層班級循環語句,就可以生成一次建立一個年級用户的shell。
-
六招管理你的操作系統詳解
操作系統是管理計算機硬件資源,控制其他程序運行併為用户提供交互操作界面的系統軟件的集合。所以這是在電腦中很重要的哦!所以在window系統下管理好操作系統是很有必要的。那麼今天我們來看看管理的技巧吧!1、保護密碼即便是相信您的朋友,一起打牌的時候還是要...
-
Android操作系統的快捷鍵和技巧
1.首先就是最常用的技巧之一,長按Home鍵可以調出最近使用的6個程序,並將當前程序置入後台運行2.調整音量至最低,就會依次進入振動模式和電話鈴聲靜音3.長按掛機鍵,在彈出的進階菜單中可以選擇飛行模式、靜音模式和關機,但是值得一提的是,這裏的靜音室完全靜音,音樂盒...
-
解讀重定向linux命令應用及語法
解讀重定向linux命令應用及語法1.標準輸入的控制語法:命令文件將命令的執行結果送至指定的文件中。例如:ls-l>list將執行“ls-l”命令的結果寫入文件list中。語法:命令>!文件將命令的執行結果送至指定的文件中,若文件已經存在,則覆蓋。例如:ls-lg>!list將執行“ls-l...
-
win7系統和win8系統的區別
導語:Win7與win8系統相比總體區別不是很大,只是win8功能更加強大一些,Win8新增UI界面,雖然最大的目的是方便平板電腦設備上實現觸摸方面,不過在我們一般電腦上使用似乎也比較新穎,也比較方便。以下是小編為大家精心整理的win7系統和win8系統的區別,歡迎大家參考!win8與...