中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 在Linux系統(tǒng)中批量建立用戶的shell

        在Linux系統(tǒng)中批量建立用戶的shell

        作者: 時(shí)間:2007-05-08 來(lái)源:網(wǎng)絡(luò) 收藏
        筆者在校園網(wǎng)應(yīng)用平臺(tái)建設(shè)中采用了Linux操作系統(tǒng),為校園網(wǎng)用戶提供、、等服務(wù)。由于我校學(xué)生用戶數(shù)在3000人以上,筆者在建設(shè)整個(gè)應(yīng)用平臺(tái)的過(guò)程中特別重視保證用戶管理效率。我的基本思路和做法是:利用shell為每個(gè)學(xué)生建立一個(gè)系統(tǒng)賬號(hào)——即提供一個(gè)E-mail地址(含空間賬號(hào)),然后學(xué)生可以憑借其E-mail再注冊(cè)論壇用戶?;谶@樣的管理思路,筆者編寫(xiě)了一個(gè)批量建立用戶的shell,實(shí)踐證明,利用shell可以有效地管理基于Unix內(nèi)核的系統(tǒng)用戶。

          以下是整個(gè)shell的源碼及注釋,此代碼在Redhat 7.2及Turbo Linux 7.0上調(diào)試通過(guò),在其他版本的Linux中使用可能需要做適當(dāng)?shù)男薷?。其?ldquo;@”部分是代碼注釋,“()”部分是筆者對(duì)于編程思路的解釋。

          @!/bin/sh(定義使用sh shell)

          groupadd users(建立用戶組)

          @grade code(定義第一個(gè)參數(shù)為年級(jí)代碼,賦予變量“grade”)

          grade=$1

          @class code(定義第二個(gè)參數(shù)為班級(jí)代碼,賦予變量“num_class”)

          num_class=`expr $2 + 0`

          if (test $num_class -le 9)(以下代碼是為了保證班級(jí)碼的位數(shù)為兩位)

          then

           num_class=0$num_class

          fi

          @max user id(定義第三個(gè)參數(shù)為該班學(xué)生的最大ID號(hào),賦予變量“max_stid”)

          max_stid=`expr $3 + 0`

          @init user id(該班學(xué)生用戶ID號(hào)從1開(kāi)始)

          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é)生公共目錄下為每個(gè)班級(jí)建立以該班代碼命名的目錄)

          then

           mkdir /home/student/$1$num_class

          fi

          while (test $num_stid -le $max_stid)(從用戶ID號(hào)1開(kāi)始循環(huán),直到最大ID號(hào))

           do

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

           then

           num_stid=0$num_stid

           fi

           user_name=$grade$num_class$num_stid(把年級(jí)、班級(jí)、學(xué)生ID號(hào)三部分代碼組合成用戶名,并賦予變量user_name)

           @save user passwd to file user_pwlist(按“name:passwd”的格式逐行追加寫(xiě)入“user_pwlist”文件,以備初始化用戶密碼)

           echo $user_name:$user_name >> user_pwlist

           @add user(建立該用戶,同時(shí)賦予“users”組,創(chuàng)建該用戶目錄)

           adduser -g users -d /home/student/$1$num_class/$user_name $user_name

           @set quota(為該用戶設(shè)置配額,限制最大容量為20MB,沒(méi)有文件數(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號(hào)加1,準(zhǔn)備下一次循環(huán),建立下一個(gè)用戶)

           num_stid=`expr $num_stid + 1`

          done

          chpasswd user_pwlist(以下兩行為剛才建立的所有用戶設(shè)置密碼)

          pwconv

          rm user_pwlist -f(刪除“user_pwlist”文件)

          關(guān)于使用:

          1. 用vi編輯器逐行寫(xiě)入以上代碼部分,并以文件的形式保存,如以“addclass”命名保存,再執(zhí)行以下步驟。

          2. #chmod +x addclass(設(shè)置addclass文件為可執(zhí)行權(quán)限)

          3. #./addclass ga 1 50(建立ga0101-ga0150用戶)

          注意:#為提示符。
          
          以上代碼只是筆者在使用shell進(jìn)行系統(tǒng)用戶管理時(shí)的一點(diǎn)體會(huì)。由于shell可以和Linux的系統(tǒng)命令結(jié)合使用,所以它在管理中的功能就顯得非常強(qiáng)大。就以上代碼而言,我們只要稍加改動(dòng),就可以建立刪除批量用戶的shell、批量配置用戶配額的shell以及批量初始用戶密碼的shell。如果再加上一層班級(jí)循環(huán)語(yǔ)句,就可以生成一次建立一個(gè)年級(jí)用戶的shell。


        關(guān)鍵詞: DNS Apache POP3 SMTP FTP

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉