私の質問を明確にしましょう。
/home
論理ボリューム(仮想HDD 2台で構成)にディレクトリがマウントされたCentOS 6仮想マシンがあります。このコマンドを使用して新しいユーザーを作成しました。ユーザー03
useradd user03 -c "user03"
そして彼にパスワードを教えてください:
パスワードuser03
すべてが正常に発生します。ただし、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
すべてのユーザーにすべての権限を与えることは最善の解決策ではありませんが、現時点ではうまく機能することを知っています。