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