システムユーザーを作成した後にログインできますか?

システムユーザーを作成した後にログインできますか?

Ubuntuシステムで次のコマンドを実行した場合:

adduser --system --no-create-home system-user

system-userUnhomeというシステムユーザーを/bin/falseシェルとして作成します。このユーザーはnogroupデフォルトで(GID 65534)に属します。このユーザーを使って私のシステムでデーモンを実行したいと思います。

しかし、パスワードはどうですか?私または他の人が何らかの方法でこのシステムアカウントにログインできますか?パスワードが空である可能性があると思われ、Password:メッセージが表示されたらEnterキーを押してみましたsu system-user

$ su system-user
Password:
su: Authentication failure

/bin/false殻のせいでしょうか?adduserマニュアルには、useraddシステムユーザーの作成時にシステムユーザーのパスワードを処理する方法が記載されていないのでわかりません。システムの誰もこのシステムユーザーとしてログインできないと確信できますか?または、アカウントを保護するために別の措置を講じる必要がありますか?他の人は使用せず、デーモンだけを使用したいです。

答え1

アカウントに割り当てられた有効なパスワードがないため、アカウントにログインできなくなります。これはパスワードのないものとは異なります。

次の手順でこれを確認できます sudo grep -f system-user /etc/shadow。 2番目のフィールド(最初と2番目のコロン(:)の間)は " *"で、ハッシュ値はありません。どの提供できるパスワードが一致します。これを行うには、パスワードを明示的に設定する必要があります。

他に/bin/falseパスワードでアカウントを入力すると、 " Authentication failure"は表示されず、メッセージなしですぐにログアウトされます。 (一時アカウントを作成して簡単に試すことができるので)そして有効なパスワード)

答え2

passwdまず、ユーザーを初期化する必要があります。

$passwd system-user

その後、2回戻って空のパスワードを作成します。

ファイルにpasswdがないことを確認できます/etc/shadows(2番目のフィールドは空でなければなりません)。しかし、そうです。シェルがなくてもアカウントは保護されません$HOME。 sudo アカウントを持つすべてのユーザーが使用できます。

関連情報