ホームディレクトリがすでに作成されているにもかかわらず、CentOSで「home = /としてログインする」というメッセージが表示されるのはなぜですか?

ホームディレクトリがすでに作成されているにもかかわらず、CentOSで「home = /としてログインする」というメッセージが表示されるのはなぜですか?

私の質問を明確にしましょう。

/home論理ボリューム(仮想HDD 2台で構成)にディレクトリがマウントされたCentOS 6仮想マシンがあります。このコマンドを使用して新しいユーザーを作成しました。ユーザー03

useradd user03 -c "user03"

そして彼にパスワードを教えてください:

パスワードus​​er03

すべてが正常に発生します。ただし、user03を使用してログインすると、CentOSは次の通知を表示します。

/home/user03 ディレクトリがありません!

home="/"を使用してログイン

奇妙なことは、/home/user03/が存在し、user03に関連付けられており、user03がフルアクセス権を持っていることです。私がするとき

[user03@vm0/]$CD

[user03@vm0 ~]$パスワード

/ホーム/ユーザー03

作業ディレクトリは期待どおりに/home/user03/に戻ります。

それでは、私のシステムに何が問題なのでしょうか?ディレクトリが存在するのに、なぜ「/home/... ディレクトリが存在しない」と表示されるのですか?

答え1

このコメントはい、これはSELinuxの問題です。このコマンドを実行して再度ログインすると、問題が解決します。

restorecon -r /home

答え2

ファイルに設定すると、このuseraddコマンドはホームディレクトリを作成します。CREATE_HOME yes/etc/login.defs

useraddマニュアルから:

       Create the user's home directory if it does not exist. The files and directories contained in the skeleton directory (which can be defined
       with the -k option) will be copied to the home directory.
       useradd will create the home directory unless CREATE_HOME in /etc/login.defs is set to no.

/home/user03ただし、そのファイルが存在し、属し、user03適切な権限が設定されていると言うと、/etc/passwdファイルによって問題が発生した可能性があります。それ以外の場合は、次の操作を行います。

mkdir /home/user03
chown user03:user03 /home/user03
cp /etc/skel/* /home/user03
chmod 700 /home/user03

6番目のフィールドはユーザーの自宅アドレスです。/etc/passwdファイルが中断されたか、useraddこのフィールドがこのファイルに追加されていない可能性があります(何が起こったのかわかりません!)。ただし、このファイルを編集してユーザーの自宅アドレスを追加できます。

/etc/passwdファイルの私のユーザーIDは次のとおりです。

Sepahrad:x:500:500:Sepahrad:/home/Sepahrad:/bin/bash

答え3

私の解決策は、私のホームディレクトリの権限を変更することでした。

chmod 777 /home

すべてのユーザーにすべての権限を与えることは最善の解決策ではありませんが、現時点ではうまく機能することを知っています。

関連情報