有一台CentOS的服務器,原來建的一個用於ftp的用戶帳號,制定一個特定的目錄,現在需要修改這個用戶的home_dir。
只需要使用usermod -d /new/home_dir -U username 命令就可以更改了。
下面補充一下usermod更多功能:
usermod 不僅能改用戶的SHELL類型,所歸屬的用戶組,也能改用戶密碼的有效期,還能改登錄名。usermod 如此看來就是能做到用戶帳號大轉移;比如我把用戶A改為新用戶B;
usermod [-u uid [-o]] [-g group] [-G group,...]
[-d 主目錄 [-m]] [-s shell] [-c 注釋] [-l 新名稱]
[-f 失效日] [-e 過期日] [-p 密碼] [-L|-U] 用戶名
usermod 命令會參照你命令列上指定的部份修改系統帳號檔。下列為usermod可選用的參數。
-c comment
更新用戶帳號password檔中的注解欄,一般是使用chfn(1)來修改。
-d home_dir
更新用戶新的登入目錄。如果給定-m選項,用戶舊目錄會搬到新的目錄去,如舊目錄不存在則建個新的。
-e expire_date 加上用戶帳號停止日期。日期格式為MM/DD/YY.
-f inactive_days 帳號過期幾日後永久停權。當值為0時帳號則立刻被停權。而當值為-1時則關閉此功能。預設值為-1。
-g initial_group 更新用戶新的起始登入用戶組。用戶組名須已存在。用戶組ID必須參照既有的的用戶組。用戶組ID預設值為1。
-G group,[...] 定義用戶為一堆groups的成員。每個用戶組使用","區格開來,不可以夾雜空白字元。用戶組名同-g選項的限制。如果用戶現在的用戶組不再此列,則將用戶由該用戶組中移除。
-l login_name 變更用戶login時的名稱為login_name。其它不變。特別是,用戶目錄名應該也會跟著更動成新的登入名。
-s shell 指定新登入shell。如此欄留白,系統將選用系統預設shell。
-u uid用戶ID值。必須為唯一的ID值,除非用-o選項。數字不可為負值。預設為最小不得小於/etc/login.defs中定義的UID_MIN值。 0到UID_MIN值之間是傳統上保留給系統帳號使用。用戶目錄樹下所有的檔案目錄其userID會自動改變。放在用戶目錄外的檔案則要自行手動更動。
警 告:usermod不允許你改變正在線上的用戶帳號名稱。當usermod用來改變userID,必須確認這名user沒在電腦上執行任何程序。你需手動 更改用戶的crontab檔。也需手動更改用戶的at工作檔。采用NISserver須在server上更動相關的NIS設定。
舉個簡單的例子,我們在前面說了關於useradd的工具,而usermod 工具和useradd的參數差不多;兩者不同之處在於useradd是添加,usermod 是修改。