Linux で削除したのと同じユーザ名でユーザを追加したらパーミッションで困った

削除したのと同じユーザ名でユーザを追加した

見出しのままなのですが、僕は何も考えず userdel camellia した後、 useradd camellia としたわけです。ホームディレクトリは残してあったのでそのまま使いました。

ログインするとエラー

camellia でログインすると下のようなエラーが出ます。

bash: /home/camellia/.bashrc: 許可がありません

パーミッションは問題なし

エラーの文言からパーミッションの問題だとすぐに分かるのですが、ホームディレクトリとかその他のパーミッションは下のように表示されて問題なさそうです。

# ls -l
drwx------. 2 camellia camellia 79 10月 11 2016 camellia

伝家の宝刀

chmod 777 /home/camellia

まぁとりあえず抜きました。そしたらログインしときにエラーが出ません。どうなっているんでしょう? まるでユーザ camellia が所有者でもグループでもないような挙動……。

UID と GID

いろいろと試行錯誤して分かったのは、ユーザ名とグループ名は同じでもユーザ ID とグループ ID は違っていたということです。

アルファベットとかで表記するユーザ名やグループ名に対して、ユーザ ID とグループ ID は数値です。新しく追加される度にインクリメントされて増えていくので、今回のような困ったことが発生しました。

解決

まずはディレクトリやファイルのユーザ ID とグループ ID を見てみます。

# ls -n /home/camellia
drwx------. 2 1000 1000 79 10月 11 2016 camellia

次はユーザのを見てみます。

# id camellia
uid=1001(camellia) gid=1001(camellia) groups=1001(camellia)

ユーザ ID とグループ ID を変更するなら下のようになります。

# usermod -u 1000 camellia
# groupmod -g 1000 camellia

ディレクトリやファイルの所有者をユーザ ID とグループ ID で指定するには下のようにします。

# chown 1001:1001 /home/camellia

おまけで分かったこと

削除したユーザ名とかって、知らないところに残り続けるってことっぽいですね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です