====== 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に対応する表示名程度のものなので当然ですな。)