web-dev-qa-db-ja.com

usermod-Lとpasswd-lの違い

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つのオプションの間でアカウントをロックするときに考慮すべきことは他にありますか?

2
tachomi

man7.orgusermod manページと私のDebianシステムのmanページには、同じ効果に対する警告が含まれています。

-L--lock
ユーザーのパスワードをロックします。 .。
注:(パスワードによるアクセスだけでなく)アカウントをロックする場合は、EXPIRE_DATEも1に設定する必要があります。

一部のシステムでそれが示されていない場合は、すべてのドキュメントが完全であるとは限らないことを示しているだけだと思います。少なくともあなたが引用したテキストは、それが「[the] user's password。」をロックすることを明示的に述べているので、よく読むと、それにはいくつかの制限があることを示唆できます。


私はしませんthinkそこには他にも考慮すべきことがたくさんあります。どちらのツールも同じことを行い、パスワード(およびパスワードのみ)を使用できなくします。パスワードを使用しないもの(特権ユーザーによるsu、構成に応じてSudocron、SSHキー...)は、引き続き問題なく機能します。パスワードでロックされたユーザーとして。

passwdのマニュアルページに記載されているように、アカウントを期限切れにすることは、より広いブロックとして機能する可能性があります。有効期限は、認証がPAMを経由しない場合でも通常呼び出されるPAMセッションモジュールによってチェックされると思います。

(「通常」、特権プログラムは、アカウントの有効期限に関係なく、ユーザーIDを変更するようにプログラムされていれば、ユーザーIDを変更する可能性があるためです。ただし、少なくともcronsshdは開始します。 PAMセッション、したがって、有効期限を確認してください。)


いずれにせよ、ユーザーアカウントのロックを開始する場合は、ロックが期待どおりに機能することをテストすることは悪い考えではないかもしれません(テストアカウントを使用)。これはおそらく、本当に穴を開けたままにしたくない状況の1つであるという理由だけで。

1
ilkkachu