man passwd
から
-l, --lock
This option is used to lock the password of specified account
and it is available to root only. The locking is performed by rendering
the encrypted password into an invalid string (by
prefixing the encrypted string with an !). Note that the
account is not fully locked - the user can still log in by other means
of authentication such as the ssh public key authentication.
Use chage -E 0 user command instead for full account locking.
man usermod
から
-L, --lock
Lock a user's password. This puts a '!' in front of the
encrypted password, effectively disabling the password.
You can't use this option with -p or -U.
どちらのオプションも、シャドウファイルのパスワードの先頭に!
を配置します。
usermod
が同じことを行うことになっているのに、他の種類の認証をロックしないことについて警告しないのはなぜですか?
この2つのオプションの間でアカウントをロックするときに考慮すべきことは他にありますか?
man7.org
のusermod
manページと私のDebianシステムのmanページには、同じ効果に対する警告が含まれています。
-L
、--lock
ユーザーのパスワードをロックします。 .。
注:(パスワードによるアクセスだけでなく)アカウントをロックする場合は、EXPIRE_DATEも1に設定する必要があります。
一部のシステムでそれが示されていない場合は、すべてのドキュメントが完全であるとは限らないことを示しているだけだと思います。少なくともあなたが引用したテキストは、それが「[the] user's password。」をロックすることを明示的に述べているので、よく読むと、それにはいくつかの制限があることを示唆できます。
私はしませんthinkそこには他にも考慮すべきことがたくさんあります。どちらのツールも同じことを行い、パスワード(およびパスワードのみ)を使用できなくします。パスワードを使用しないもの(特権ユーザーによるsu
、構成に応じてSudo
、cron
、SSHキー...)は、引き続き問題なく機能します。パスワードでロックされたユーザーとして。
passwd
のマニュアルページに記載されているように、アカウントを期限切れにすることは、より広いブロックとして機能する可能性があります。有効期限は、認証がPAMを経由しない場合でも通常呼び出されるPAMセッションモジュールによってチェックされると思います。
(「通常」、特権プログラムは、アカウントの有効期限に関係なく、ユーザーIDを変更するようにプログラムされていれば、ユーザーIDを変更する可能性があるためです。ただし、少なくともcron
とsshd
は開始します。 PAMセッション、したがって、有効期限を確認してください。)
いずれにせよ、ユーザーアカウントのロックを開始する場合は、ロックが期待どおりに機能することをテストすることは悪い考えではないかもしれません(テストアカウントを使用)。これはおそらく、本当に穴を開けたままにしたくない状況の1つであるという理由だけで。