ホームディレクトリなしでユーザーを追加する

ホームディレクトリなしでユーザーを追加する

ホームディレクトリなしでユーザーを作成し、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が書いたようにホームディレクトリを作成すると、この問題を解決できます。

関連情報