====== FreeBSDでユーザー名を変更する ======
===== 要旨 =====
FreeBSDで既存のユーザー名を変更するには、''/etc/master.passwd''を編集し''pwd_mkdb''コマンドでユーザーデータベースを更新してやればよい。と同時に''/etc/group''でグループの変更も忘れずに行うこと。
===== 手順 =====
==== ユーザー名の変更 ====
ユーザーデータベースのマスターファイル''/etc/master.passwd''で、当該ユーザーのユーザー名を変更する。マスターファイルなので編集には細心の注意を払うこと。
ここでは、例としてolduserをnewuserにする。必要ならホームディレクトリのパスも変更する。
■変更前
(略)
www:*:80:80::0:0:World Wide Web Owner:/nonexistent:/usr/sbin/nologin
_ypldap:*:160:160::0:0:YP LDAP unprivileged user:/var/empty:/usr/sbin/nologin
hast:*:845:845::0:0:HAST unprivileged user:/var/empty:/usr/sbin/nologin
nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/usr/sbin/nologin
olduser:$hashvalueofpassword:1001:1001::0:0:User &:/home/olduser:/usr/local/bin/bash
■変更後
(略)
www:*:80:80::0:0:World Wide Web Owner:/nonexistent:/usr/sbin/nologin
_ypldap:*:160:160::0:0:YP LDAP unprivileged user:/var/empty:/usr/sbin/nologin
hast:*:845:845::0:0:HAST unprivileged user:/var/empty:/usr/sbin/nologin
nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/usr/sbin/nologin
newuser:$hashvalueofpassword:1001:1001::0:0:User &:/home/newuser:/usr/local/bin/bash
ファイルの変更が終わったら、''pwd_mkdb''コマンドでユーザーDBを更新する。
# pwd_mkdb /etc/master.passwd
# pwd_mkdb -p /etc/master.passwd
1つ目で /etc/pwd.db, /etc/spwd.db を、2つ目で/etc/passwdが更新される模様。
==== グループの変更 ====
通常、ユーザーを作成すると同名のグループが作成されるため、''/etc/group''も忘れずに変更する。また、当該ユーザーがwheelグループに所属していたりsudoersの場合、修正を忘れるとrootに昇格できなくなる。rootのネットワークログインが無効化されてたりすると、最悪、リモートでは対処不能になるので要注意。
■変更前
(略)
wheel:*:0:root,olduser
(略)
olduser:*:1001:
■変更後
(略)
wheel:*:0:root,newuser #←wheelユーザーを忘れがちなので注意!
(略)
newuser:*:1001:
これで変更後のユーザーでログインができるようになるハズ。UID/GIDは変更してないので、ファイルのパーミッションなどは前のユーザー名の状態がそのまま引き継がれる(ユーザー名はUIDに対応する表示名程度のものなので当然ですな。)