Linux で特定ユーザのパスワードだけ削除する

Linux ユーザにパスワードを設定したものの、(システム全体としてはパスワード認証を有効にしたまま)特定ユーザのパスワードだけ無効化したい、という場合は passwd -d を使います。

テスト用のユーザ「test1」を作成します。 パスワードは password にしました。

1
2
useradd test1
echo password | passwd --stdin test1

別のコンピュータから test1 ユーザで SSH アクセスすると、設定したパスワードでログイン出来ることが分かります。

1
2
3
$ sshpass -p password ssh test1@172.20.0.150
Warning: Permanently added '172.20.0.150' (ED25519) to the list of known hosts.
test1@172-020-000-150:~$

次は test1 ユーザのパスワードを passwd -d で削除してみます。

1
2
3
# passwd -d test1
ユーザー test1 のパスワードを削除。
passwd: 成功

これで test1 ユーザのパスワードは削除されました。 以前のパスワードを指定しても、空パスワード(ENTER だけ入力)しても、いずれにしてもパスワード認証ではログイン出来なくなりました。