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-userdel是用來大量刪除帳號。指令操作說明:

指令說明
# drbl-userdel [-s|--single] 使用者名稱 刪除一個使用者, 舉例說明, 要刪除 drbl 這個使用者
    drbl-userdel -s drbl
    
# drbl-useradd [-r|--range] prefix start end [groupname] 刪除 (<end> - <start> + 1) 個使用者, 使用者名稱由 <prefix><start> 到 <prefix><end>; 指定群組名稱groupname。 舉例說明, 要刪除 cpc001 ~ cpc040 這些使用者,而不刪除該群組(group):
    drbl-userdel -r cpc 1 40
    
如果你也指定groupname,那程式也會問你要不要將該group刪除。例如:
    drbl-userdel -r cpc 1 40 groupcpc
    
註: 這個模式下, 數字的部份最多是三位數, 也就是說, 最多是 001 到 999
# drbl-userdel [-f|--file] 檔案名稱 這個指令是根據檔案來刪除使用者帳號。在檔案中描述多組prefix start end groupname來刪除多組使用者。
舉例,若要刪除s89101 ~ s89129 及 tckps01 ~ tckps99 這兩組使用者, 在檔案account.txt中您會做以下的描述:
    # account for student
    s           89101   89129 g3c6
    # account for teacher
    tckps       01      99 teacher
    
執行"drbl-userdel -f account.txt",
就會刪除s89101 ~ s89129 及 tckps01 ~ tckps99,也同時會移除g3c6與teacher兩個群組。
# drbl-userdel [-l|--list] 檔案名稱 這也是由檔案中讀取設定以刪除大量的帳號;帳號是一行一行定義的。每一行的語法是id
舉例,要移除5個帳號,分別是blake, steven, julian, kos, kevin ,屬於群組goodman。 這樣的話,在檔案accountlist.txt中您會做以下的描述:
    # account for "goodman"
    blake goodman
    steven goodman
    julian goodman
    kos goodman
    kevin goodman
    
執行"drbl-userdel -l accountlist.txt",
就會刪除這些使用者的帳號以及群組。
# drbl-userdel [-g|--group] 群組名稱 這是根據某個群組來刪除該群組中的帳號。
舉例,之前您已經產生多個帳號,他們都屬於g3c5這個群組(舉例而言是三年五班)。現在要移除所有三年五班學生的帳號,可以這樣執行:
    drbl-userdel -g g3c5
    
這樣就會刪除該群組以及屬於該群組的所有使用者的帳號。