このチュートリアルでは、ユーザーまたはスーパーユーザー(root)がLinuxでパスワードを変更する方法について説明します。 Passwdは、Linux(Redhat、Centos、Ubuntu、Debian、Fedora)およびUNIXライクなオペレーティングシステムでパスワードを変更するために使用されるコマンドです。
passwd
を実行すると コマンドユーザーの暗号化されたパスワードは/etc/shadowファイルに保存されます。
通常のユーザー(root以外)のユーザーは、自分のパスワードの変更のみが許可されます。 rootまたはsudoユーザーは、任意のアカウントのパスワードを変更できます。
セキュリティ上の理由から、強力なパスワードを使用し、定期的に変更することを常にお勧めします。
パスワードの変更
passwd
の場合 コマンドがroot以外のユーザーによって実行されると、現在のパスワードを要求され、そのユーザーの新しいパスワードが設定されます。スーパーユーザーまたはrootは、現在のパスワードを知らなくても、rootを含むすべてのユーザーのパスワードをリセットできます。
コマンドpasswd
の場合 root以外のユーザーによって呼び出された場合は、パスワードの変更に進む前に、まず既存のパスワードを入力する必要があります。パスワードは2回入力する必要があり、入力時に画面にエコーされません。
$ passwd
Changing password for vagrant.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
また、パスワードとして簡単な単語を入力することはできません。 Passwdコマンドは、パスワードの長さと複雑さをチェックします。次の出力では、単純な辞書ベースのパスワードが試されています。
$ passwd
Changing password for vagrant.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
You must choose a longer password
Enter new UNIX password:
Retype new UNIX password:
Bad: new password is too simple
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
スーパーユーザー(root)としてパスワードを変更する
すべてのシステムユーザーは、自分のパスワードのみを変更できます。 passwd
通常のユーザーとして実行する場合、コマンドは引数を取りません。
ただし、rootとして、システム内の任意のユーザーのパスワードを変更およびリセットできます。
使用法は次のとおりです。
# passwd [options] [user_name]
使用できるさまざまなオプションは次のとおりです。
Options:
-a, --all report password status on all accounts
-d, --delete delete the password for the named account
-e, --expire force expire the password for the named account
-h, --help display this help message and exit
-k, --keep-tokens change password only if expired
-i, --inactive INACTIVE set password inactive after expiration
to INACTIVE
-l, --lock lock the password of the named account
-n, --mindays MIN_DAYS set minimum number of days before password
change to MIN_DAYS
-q, --quiet quiet mode
-r, --repository REPOSITORY change password in REPOSITORY repository
-R, --root CHROOT_DIR directory to chroot into
-S, --status report password status on the named account
-u, --unlock unlock the password of the named account
-w, --warndays WARN_DAYS set expiration warning days to WARN_DAYS
-x, --maxdays MAX_DAYS set maximum number of days before password
change to MAX_DAYS
ルートがpasswd
を実行するとき コマンドを実行すると、デフォルトでルートパスワードがリセットされます。passwd
の後にユーザー名を指定すると コマンドを実行すると、そのユーザーのパスワードが変更されます。
# passwd vagrant
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
#
rootユーザーは、単純なパスワードを提供することもできます。警告が表示されますが、パスワードは正常に変更されます。システムユーザーのパスワードは、暗号化された形式で/ etc/shadowファイルに保存されます。
パスワードステータス情報の表示
目的のユーザーのパスワードステータス情報を表示するには、-S
を使用します passwdコマンドのオプション。
# passwd -S vagrant
vagrant P 07/02/2019 0 99999 7 -1
#
最初のフィールドはユーザー名を示し、2番目のフィールドはパスワードのステータスを示し(PS =パスワードセット、LK =パスワードがロックされている、NP =パスワードなし)、3番目のフィールドはパスワードが最後に変更された日時を示し、最後と4番目のフィールドは最小年齢、最大年齢、警告を示します期間、およびパスワードの非アクティブ期間。
システム内のすべてのユーザーパスワードのステータスを一覧表示するには、-Sa
を使用します パラメータ:
# passwd -Sa
root P 05/14/2019 0 99999 7 -1
daemon L 05/14/2019 0 99999 7 -1
bin L 05/14/2019 0 99999 7 -1
sys L 05/14/2019 0 99999 7 -1
sync L 05/14/2019 0 99999 7 -1
games L 05/14/2019 0 99999 7 -1
man L 05/14/2019 0 99999 7 -1
lp L 05/14/2019 0 99999 7 -1
mail L 05/14/2019 0 99999 7 -1
news L 05/14/2019 0 99999 7 -1
uucp L 05/14/2019 0 99999 7 -1
proxy L 05/14/2019 0 99999 7 -1
www-data L 05/14/2019 0 99999 7 -1
backup L 05/14/2019 0 99999 7 -1
ユーザーのパスワードの削除
目的のユーザーのパスワードを削除するには、-d
を使用します コマンドオプション:
# passwd -d test
passwd: password expiry information changed.
# passwd -S test
test NP 07/02/2019 0 99999 7 -1
注:オプション-d
ユーザーのパスワードが空になり、ユーザーのアカウントが無効になります。
パスワードの有効期限を設定
ユーザーのパスワードを期限切れにし、次回のログイン時にそのユーザーにパスワードの変更を強制するには、-e
を使用します passwd
のオプション コマンド。
# passwd -e test
passwd: password expiry information changed.
# passwd -S test
test NP 01/01/1970 0 99999 7 -1
システムユーザーのパスワードをロックおよびロック解除する
ユーザーのパスワードをロックするには、-l
を使用します passwd
のオプション 指図。 !
が追加されます ユーザーのパスワードの開始時。パスワードがロックされている場合、ユーザーはパスワードを変更できません。
# passwd -l test
passwd: password expiry information changed.
# passwd -S test
test L 07/03/2019 0 99999 7 -1
ユーザーのパスワードのロックを解除するには、-u
を使用します オプション:
# passwd -u test
passwd: password expiry information changed.
# passwd -S test
test P 07/03/2019 0 99999 7 -1
-iオプションを使用して非アクティブな日を設定する
これは、選択したユーザーのパスワードの有効期限が切れ、ユーザーが「n」日(つまり10日)以内にパスワードを変更しなかった場合にアクティブになります。その後、ユーザーはログインできなくなります。
# passwd -i 10 test
passwd: password expiry information changed.
# passwd -S test
test P 07/03/2019 0 99999 7 10
パスワードの有効期限が切れる前に警告日を設定
オプション-w
ユーザーがパスワードの変更を通知される前に警告日を設定して使用されます。これは、パスワードの有効期限が切れるn日前にユーザーに警告が表示されることを意味します。
# passwd -w 5 test
passwd: password expiry information changed.
# passwd -S test
test P 07/03/2019 0 99999 5 10
パスワードを変更するための最小日数を設定する
以下では、テストユーザーの例で30日以内にパスワードを変更する必要があります。ゼロの値は、ユーザーがいつでもパスワードを変更できることを示します。
# passwd -n 30 test
passwd: password expiry information changed.
# passwd -S test
test P 07/03/2019 30 99999 5 10
結論
このチュートリアルでは、Linuxでユーザーパスワードを変更する方法を学びました。詳細については、passwdコマンドのマニュアルページを参照してください。この記事を読んでいただきありがとうございます。ご不明な点がありましたらお知らせください。
関連項目:
- Ubuntuのデフォルトのルートパスワードを検索/変更する方法
- LinuxでSudoersにユーザーを追加する方法