當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]在Linux系統(tǒng)中批量建立用戶的shell

筆者在校園網(wǎng)應用平臺建設(shè)中采用了Linux操作系統(tǒng),為校園網(wǎng)用戶提供DNS、Apache、POP3、SMTP、FTP等服務。由于我校學生用戶數(shù)在3000人以上,筆者在建設(shè)整個應用平臺的過程中特別重視保證用戶管理效率。我的基本思路和做法是:利用shell為每個學生建立一個系統(tǒng)賬號——即提供一個E-mail地址(含F(xiàn)TP空間賬號),然后學生可以憑借其E-mail再注冊論壇用戶?;谶@樣的管理思路,筆者編寫了一個批量建立用戶的shell,實踐證明,利用shell可以有效地管理基于Unix內(nèi)核的系統(tǒng)用戶。

以下是整個shell的源碼及注釋,此代碼在Redhat 7.2及Turbo Linux 7.0上調(diào)試通過,在其他版本的Linux中使用可能需要做適當?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ù)為該班學生的最大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開始循環(huán),直到最大ID號)

do

if (test $num_stid -le 9) (以下保證學生代碼的位數(shù)為兩位)

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”組,創(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,準備下一次循環(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。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉