Linuxでユーザーアカウントをロックおよびロック解除する3つの方法
マルチユーザーLinux環境でユーザーを無効にする理由はいくつか考えられます。おそらく、従業員が組織を離れ、ユーザーを完全に削除する代わりに、アーカイブ目的でアカウントをロックします。
このチュートリアルでは、Linuxコマンドラインでユーザーをロックする3つの方法を紹介します。ユーザーのロックを解除する方法についても説明します。
これらの変更を行うには、次のことを行う必要があることに注意してください rootまたはsudo経由でrootにアクセスできる 。
方法1:passwdコマンドでユーザーをロックおよびロック解除する
Linuxのpasswdコマンドは、ユーザーアカウントのパスワードを処理します。このコマンドを使用して、ユーザーアカウントをロックすることもできます。
このコマンドは基本的に/etc/passwdファイルで機能します。このファイルは手動で変更できますが、お勧めしません。
passwdコマンドでユーザーをロックするには、次のようにオプション-lまたは–lockを使用できます。
passwd -l user_name
passwdコマンドでユーザーのステータスを確認する
オプション-Sまたは-passwdコマンドのステータスを使用して、ユーザーがロックされているかロック解除されているかを確認できます。
passwd -S user_name
出力の2番目のフィールドを見てください。意味は次のとおりです。
– pまたはPS:パスワードが設定されています(ユーザーのロックが解除されています)
– LまたはLK:ユーザーはロックされています
– nまたはNP:ユーザーはパスワードを必要としません
passwdコマンドの出力例は次のとおりです。
標準P10/14/20190 99999 7 -1
passwdコマンドでユーザーのロックを解除するには、オプション-uまたは–unlock:
を使用できます。passwd -u user_name
Ubuntuでは、ユーザーのロックとロック解除の両方について、次のような出力が表示されます。
passwd: password expiry information changed
SSH経由のログインはどうですか?
この方法でユーザーをロックすることには大きな問題があります。 / etc / passwdファイルでのみ機能するため、ロックされたユーザーは引き続きSSHキーを介してログインできます(SSHキーを介したログインが設定されている場合)。次のセクションで対処方法を説明します。
方法2:usermodコマンドでユーザーをロックおよびロック解除する
usermodコマンドを使用することもできます。このコマンドは、主にLinuxでユーザーアカウントを変更するために使用されます。 usermodを使用してロックまたはロック解除することにより、ユーザーの状態を変更することもできます。
ユーザーをロックするには、次のように-Lオプションを使用できます。
usermod -L user_name
ユーザーのロックを解除するには、-Uオプションを使用できます:
usermod -U user_name
ユーザーがロックされているかどうかをどのように確認しますか? usermodコマンドは/etc/ passwdファイルでも機能するため、passwd-Suser_nameコマンドを使用してユーザーのステータスを確認できます。
ただし、usermodは/ etc / passwdファイルでも機能するため、ロックされたユーザーは引き続きSSHキーを介してログインできます。それは正しい。しかし、この問題を克服する方法があります。
たとえば、ユーザーのシェルをnologinに変更できます。これにより、ユーザーはシェルにログインできなくなります。
もう1つの方法は、ユーザーをロックして、過去の有効期限を指定することです。過去の日付でアカウントを無効にしてからロックします。
過去の日付が1970-01-02から現在の日付の間にあることを確認してください。
usermod -L --expiredate 1970-01-02 user_name
次のコマンドで元に戻すことができます:
usermod -U --expiredate '' user_name
Linuxでchageコマンドを使用してユーザーをロックする同様の方法があります。次のセクションで見てみましょう。
方法3:chageコマンドでユーザーをロックおよびロック解除する
chageコマンドは、ユーザーパスワードの有効期限情報を変更するために使用されます。これを使用して、特定の日数の非アクティブ状態の後に非アクティブなユーザーを自動的にロックできます。
基本的に、前のセクションでusermodコマンドを使用して行ったことは、次のようなchageコマンドを使用して実行できます。
chage -E 1 username
基本的に、有効期限を1970-01-02に設定しました。あなたはこのような詳細を見ることができます:
[email protected]:~$ sudo chage -l standard
Last password change : Nov 07, 2019
Password expires : never
Password inactive : never
Account expires : Jan 02, 1970
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
有効期限を削除して、次の方法でユーザーのロックを解除できます。
chage -E -1 username
最後に…
いつものように、Linuxコマンドラインでタスクを実行するにはさまざまな方法があります。ここでは、Linuxでユーザーをロックおよびロック解除する3つの方法を示しました。より良い方法を知っていますか、それともユーザーをロックするためのいくつかのベストプラクティスの提案がありますか?コメントセクションで共有してください。