• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 在Linux中批量建立用戶的shell

    發表于:2007-05-26來源:作者:點擊數: 標簽:
    最近,筆者在校園網應用平臺建設中采用了Linux操作系統,為校園網用戶提供DNS、Apache、POP3、SMTP、FTP等服務。由于我校學生用戶數在3000人以上,筆者在建設整個應用平臺的過程中特別重視保證用戶管理效率。我的基本思路和做法是:利用shell為每個學生建立
    clearcase/" target="_blank" >cccccc">最近,筆者在校園網應用平臺建設中采用了Linux操作系統,為校園網用戶提供DNS、Apache、POP3、SMTP、FTP等服務。由于我校學生用戶數在3000人以上,筆者在建設整個應用平臺的過程中特別重視保證用戶管理效率。我的基本思路和做法是:利用shell為每個學生建立一個系統賬號——即提供一個E-mail地址(含FTP空間賬號),然后學生可以憑借其E-mail再注冊論壇用戶?;谶@樣的管理思路,筆者編寫了一個批量建立用戶的shell,實踐證明,利用shell可以有效地管理基于Unix內核的系統用戶。
      以下是整個shell的源碼及注釋,此代碼在Redhat 7.2及Turbo Linux 7.0上調試通過,在其他版本的Linux中使用可能需要做適當的修改。其中“@”部分是代碼注釋,“()”部分是筆者對于編程思路的解釋。

      @!/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用戶)

      注意:#為提示符?!?/p>

      以上代碼只是筆者在使用shell進行系統用戶管理時的一點體會。由于shell可以和Linux的系統命令結合使用,所以它在管理中的功能就顯得非常強大。就以上代碼而言,我們只要稍加改動,就可以建立刪除批量用戶的shell、批量配置用戶配額的shell以及批量初始用戶密碼的shell。如果再加上一層班級循環語句,就可以生成一次建立一個年級用戶的shell。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>