DRBL 企鵝龍

Diskless Remote Boot in Linux

DRBL的使用
大量建立使用者帳號

[版權說明] [作者列表] [本文]

2018/Nov/16



一、版權說明
本文版權屬於全體作者所有,且以 GNU FDL 授權合約發佈。在遵守 GNU FDL 授權合約的情況下,您可以複製、散佈,以及修改本文件。 唯請保持作者列表的完整,若您修改過此份文件,也請在作者列表中加入您的大名。

同時請注意本文件沒有任何擔保,若因本文件而產生任何直接或間接的損失,本文作者群均不負任何法律及道義上的責任。
二、作者列表
蕭志榥 (steven _at_ nchc org tw)
黃國連 (klhaung _at_ gmail com)
王順泰 (c00wht00 _at_ nchc org tw)
孫振凱 (ceasar _at_ nchc org tw)
王耀聰 (jazzwang _at_ nchc org tw)
蔡育欽 (thomas _at_ nchc org tw)
三、大量建立使用者帳號
您可以使用傳統的方法 adduser, deluser 等指令來新增刪除使用者,只是增加或是減少帳號後,你必須執行"make -C /var/yp"來更新YP/NIS的資料。

在 DRBL 的環境中亦提供的兩個程式 drbl-useradd 及 drbl-userdel來做新增刪除使用者之用, 這兩個程式除了提供與 adduser, deluser 同樣的功能外,尚提供大量產生或是刪除使用者帳號。
drbl-useradd是用來大量產生帳號,指令操作說明:

指令說明
# drbl-useradd [-s|--single] 使用者名稱 群組名稱 產生一個使用者, 舉例說明, 要產生一個使用者 drbl, 群組是penguin
    drbl-useradd -s drbl penguin
    
# drbl-useradd [-r|--range] prefix start end groupname [password_opt] 產生 (<end> - <start> + 1) 個使用者,使用者名稱由 <prefix><start> 到 <prefix><end>, 群組名稱為groupname。
password_opt的下法請見這裡
所產生的帳號與使用者密碼表在"username_pw.txt"檔中。
舉例說明,假設要產生 cpc001 到 cpc040 這些使用者,屬於三年五班(所以我們把這群組設為g3c5),要個別亂數產生7個字的密碼。則您要下達
    drbl-useradd -r cpc 1 40 g3c5 7
    
註: 這個模式下, 數字的部份最多是三位數,也就是說,最多是 001 到 999
# drbl-useradd [-f|--file] 檔案名稱 由檔案中讀取設定以產生大量的帳號密碼; 這個指令可以說是上述--range延伸, 在檔案中描述多組prefix start end groupname password_opt以產生多組使用者。 password_opt的下法請見這裡
舉例, 若要產生會產生出 s89101 ~ s89129 及 tckps01 ~ tckps99 這兩組使用者, 在檔案account.txt中您會做以下的描述:
    # account for student
    s           89101   89129 g3c6 7
    # account for teacher
    tckps       01      99 teacher neverforget
    
執行"drbl-useradd -f account.txt",
所產生的帳號與使用者密碼表在"username_pw.txt"檔中。
# drbl-useradd [-l|--list] 檔案名稱 這也是由檔案中讀取設定以產生大量的帳號密碼;不過帳號,群組與密碼的設定是一行一行定義的。每一行的語法是
id groupname password_opt
也就是在檔案中描述每一個帳號的帳號,群組與密碼。舉例,您想產生的5個帳號,分別是blake, steven, julian, kos, kevin ,屬於群組goodman或是wiseman,密碼各別指定。
password_opt的下法請見這裡
這樣的話,在檔案accountlist.txt中您會做以下的描述:
    # account for group "goodman" 
    blake goodman ilovepinwife
    steven goodman ilovesteven
    julian goodman ilovemac
    kevin goodman 6
    # account for group "wiseman" 
    kos wiseman 9
    
執行"drbl-useradd -l accountlist.txt",
所產生的帳號與使用者密碼表在"username_pw.txt"檔中。