ひよこになりたい

Programming Server Network Security and so on

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

 

なおってよかったー