カスタムビルドのLinuxディストリビューションを実行するボード(Pine64)があります(buildroot
を使用)。
パスワードがないようにroot
を構成すると、結果の/etc/shadow
ファイルは次のようになります:
root::::::::
daemon:*:::::::
bin:*:::::::
sys:*:::::::
sync:*:::::::
mail:*:::::::
www-data:*:::::::
operator:*:::::::
nobody:*:::::::
avahi:*:::::::
dbus:*:::::::
mosquitto:*:::::::
sshd:*:::::::
僕の /etc/passwd
は次のようになります:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/false
bin:x:2:2:bin:/bin:/bin/false
sys:x:3:3:sys:/dev:/bin/false
sync:x:4:100:sync:/bin:/bin/sync
mail:x:8:8:mail:/var/spool/mail:/bin/false
www-data:x:33:33:www-data:/var/www:/bin/false
operator:x:37:37:Operator:/var:/bin/false
nobody:x:65534:65534:nobody:/home:/bin/false
avahi:x:1000:1000::/:/bin/false
dbus:x:1001:1001:DBus messagebus user:/var/run/dbus:/bin/false
mosquitto:x:1002:65534:Mosquitto user:/:/bin/false
sshd:x:1003:1002:SSH drop priv user:/var/empty:/bin/false
ご覧のとおり、root
にはパスワードが設定されていません。
しかし、起動後にログインしようとすると、パスワードの入力を求められますが、パスワードを入力できません(パスワードを設定しなかったため)。私が試した値はすべてincorrect password
メッセージ。
[〜#〜] important [〜#〜]:システムをnfsroot
で起動しているので、ルートファイルシステムはマシンのNFS共有からマウントされます。
私のnfsフォルダのpasswd
とshadow
の両方の所有者はroot
であり、root
のみが両方に書き込むことができます。
では、パスワードを入力する必要がないのに、なぜパスワードの入力を求められるのかわかりますか?
デフォルトでは、sshdは空のパスワードを許可しません( PermitEmptyPasswords および AuthenticationMethods を参照)。
sePAM (デフォルトで有効になっています)もあります。これにより、PAM構成が空のパスワードで救済される可能性があります。
そうは言っても、あなたは本当に広く開かれたrootアカウントを持ちたいですか?
つまり、パスワードなしの秘密鍵を使用して、rootユーザーの公開鍵認証を簡単に設定できます。そうすれば、パスワードを入力せずにログインできますが、ネットワークにアクセスできるすべての人がログインできるわけではありません。