CentOS でプロンプトのユーザー名が「私は名前がありません!」になった件について
VMで作ったテストCentOS鯖で遊んでいると・・・プロンプトのユーザー名が"私は名前がありません!"になってしまいました。
初めて見る謎のエラー文?で少しばかり手こずったのでメモ。
useradd usernameでユーザーを作成して、`su username` で変身。おもむろに画面を見ると・・・
```
[私は名前がありません!@server001 ~]$
```
なんだこの名前・・・ぐぐってもあまりいい情報が出ず。
とりあえず何か手がかりはないか模索してみる。すると、
```
[root@server001 ~]# su username
id: cannot find name for user ID 502
# -------------
[私は名前がありません!@server001 ~]$ id
uid=502 gid=502(username) 所属グループ=502(username) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
```
uidの関連付けあたりでエラー出てるっぽい?
usernameに変身もできるし、idでユーザー情報の確認ができるけど、uidが見つからない模様。
この辺りがおかしいのかな?
というわけで、`/etc/shadow` と `/etc/passwd` と `/etc/group` を確認。
内容には問題がなかったのですが、`/etc/passwd` のパーミッションがオカシイ。
```
[root@server001 etc]# ls -la passwd
-rw-------. 1 root root 1473 3月 20 00:47 2014 passwd
```
なるほど・・・
原因はここっぽい。/etc/passwdは644になっているべきなので、変更してあげる。
```
[root@server001 etc]# chmod 644 passwd
``
再度変身。
```
[root@server001 etc]# su server300
[server300@server001 etc]$
```
なおった!
passwdファイルはroot以外でも読み込むことがあるので644じゃないと行けないみたいですね〜
/etc/passwd ファイルを一般ユーザが更新できる理由 - ねもぷらす: http://nemoplus.hateblo.jp/entry/20100704/1278252696
なおってよかったー