ホームディレクトリなしでユーザーを作成し、useradd -M Alice
パスワードを設定しました。今ログインすると、このメッセージが表示されます。
No directory /home/Alice! Logging in with home= "/"
-bash-4.1$
最後の行の意味を説明し、この問題を解決できる人はいますか?
答え1
次のように解決できるようです。
mkdir /home/Alice
chown -R Alice:Alice /home/Alice
useradd の代わりに adduser を使用すると、ディレクトリが自動的に作成されるため、より優れています。
答え2
フラグには「ユーザーのホームディレクトリを作成しないでください」と表示されているため、-M
プログラムはユーザーが要求した操作を実行しました。useradd
Aliceのホームディレクトリを作成し、テンプレートファイルをコピーすることでこの問題を解決できます。
home=$(getent passwd Alice | cut -d: -f6)
uid=$(getent passwd Alice | cut -d: -f3)
gid=$(getent passwd Alice | cut -d: -f4)
mkdir -m755 "$home"
cp -a /etc/skel/. "$home"
chown -R $uid:$gid "$home"
答え3
Logging in with home= "/"
それはそれが言うことを正確に意味します。ユーザーにはホームディレクトリがないため、ログインにはルートディレクトリ「/」が使用されます。
これは-bash-4.1$
デフォルトの bash プロンプトです。他のデフォルトのbashファイルがない場合、またはまったく存在しない場合は、~/.bashrc
このメッセージが表示されます。通常、ユーザーのホームディレクトリに作成、保存、更新されます。
「/」をホームディレクトリとして使用すると、他の問題が発生します。これは、ユーザーAliceがファイルシステムのルートディレクトリに書き込む権限がない可能性が高いためです。 :-)
roaimaとLuciano Andress Martiniが書いたようにホームディレクトリを作成すると、この問題を解決できます。