在 Linux 要修改系統帳號的使用者名稱或 UID, 需要使用 usermod 指令完成。以下是在 Linux 下修改使用者名稱、UID、使用者家目錄的方法。
在修改使用者名稱前, 需要先確定該帳號目前並沒有登入, 以及沒有 process 正在執行, 如果帳號已經登入或有 process 正在執行, 使用 usermod 後會出現以下錯誤:
usermod: user tom is currently used by process xxxx
要先把帳號執行的 process 終止, 以及強制把帳號登出:
# pkill -u old-login pid
# pkill -9 -u old-login
# pkill -9 -u old-login
修改使用者名稱
以下是修改使用者名稱的 usermod 語法:
# usermod -l new-name old-name
以上指令會將原本是 old-name 的帳號, 改成 new-name, 但家目錄並未修改.
修改使用者 UID
修改使用者 UID 的語法:
# usermod -u UID username
上面指令會將 username 帳號的 UID 改為 UID, UID 必須是並未使用的數字, 而 0 – 99 是預留給系統預設帳號使用, 所以要避免使用.
然後一同把帳號的群組也更新:
# groupmod -n new-login old-login
如果帳號的名稱是 new-login, 但家目錄在 /home/old-login, 那好像怪怪的, 所以連同家目錄也一同修改:
# usermod -d /home/new-login -m new-login