Ubuntuシステムで次のコマンドを実行した場合:
adduser --system --no-create-home system-user
system-user
Unhomeというシステムユーザーを/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 アカウントを持つすべてのユーザーが使用できます。