ユーザーログインを無効にする方法は?

ユーザーログインを無効にする方法は?

コマンドを使用してユーザーを作成しました--disabled-login。次に、ユーザーとしてログインしていくつかの点をテストできるようにパスワードを変更する必要があります。今すぐログインを無効にしたいのですが、次の記事を見ました。 `adduser --disabled-login`は何をしますか?

だからを使ってsudo passwd userから設定をしました!。ところでログインしようとするとパスワードを使ってログインになりました!。では、再び無効にする方法は?

私はこれを*パスワードとしても試しました。

ベストアンサー1

私はあなたの混乱がそれが何をしているのか理解していないので起こると思います!

暗号化されたパスワードはに保存されます/etc/shadow。たとえば、新しいユーザーを作成してnew-userパスワードを割り当てると、12345678次の項目が表示されます。

$ sudo cat /etc/shadow
(...)
new-user:$6$zVbJcpZE$Bqnxr5cDkwjKOE06iAZu7/qIuH9UGXex28TU/aD0osft9DfdPVzcVwq2j410YxoPlZR310.heZyxaQq4iwWy9.:18038:0:99999:7:::

new-userこれでパスワードを実行しsu new-userて入力して 12345678切り替えることができます。new-userパスワードの前に!以下を追加してパスワードを無効にできます。

$ sudo cat /etc/shadow
(...)
new-user:!$6$zVbJcpZE$Bqnxr5cDkwjKOE06iAZu7/qIuH9UGXex28TU/aD0osft9DfdPVzcVwq2j410YxoPlZR310.heZyxaQq4iwWy9.:18038:0:99999:7:::

new-userこれから正しいパスワードを入力しても、次のものに切り替えることはできません。

$ su new-user
Password:
su: Authentication failure

手動修正は非常に危険なので推奨/etc/shadowしません。を使用して同じ効果を得ることができますsudo passwd -l new-user。言ったようにman passwd:

   -l, --lock
       Lock the password of the named account. This option
       disables a password by changing it to a value which matches
       no possible encrypted value (it adds a ´!´ at the beginning
       of the password).

たとえば、

$ sudo passwd -l new-user
passwd: password expiry information changed.

ただし、passwd -l無効にはなりません。アカウント、無効のみ可能パスワードman passwdこれは、ユーザーが次のような他の方法を使用してシステムにログインできることを意味します。

       Note that this does not disable the account. The user may
       still be able to login using another authentication token
       (e.g. an SSH key). To disable the account, administrators
       should use usermod --expiredate 1 (this set the account's
       expire date to Jan 2, 1970).

       Users with a locked password are not allowed to change
       their password.

おすすめ記事