2026年7月1日

2026年7月1日

passwdコマンドでパスワードを変更する方法

はじめに

passwdはLinuxでユーザーパスワードを変更するための基本コマンドです。一般ユーザーは自分自身のパスワードを、rootは任意のユーザーのパスワードを変更できます。

さらに passwd はパスワード変更だけでなく、アカウントのロック・有効期限の設定・パスワード期限の確認など、アカウントセキュリティ管理機能も備えています。

症状・背景

passwd が必要になる主な場面:

  • 新規ユーザーの初期パスワードを設定したい
  • パスワード漏洩疑いのアカウントを緊急にロックしたい
  • 退職予定者のアカウントに有効期限を設定したい
  • ポリシーに従ってパスワードの定期変更を強制したい

手順・設定方法

ステップ1: 基本的な使い方

# 自分自身のパスワード変更(一般ユーザー)
passwd
# 現在のパスワード → 新パスワード → 確認 を順に入力

# 他ユーザーのパスワード変更(rootのみ可能)
sudo passwd alice

# 標準入力からパスワード設定(スクリプト用、--stdin はRHEL系のみ)
echo "alice:NewPass123!" | sudo chpasswd

ステップ2: アカウントのロック・解除

# パスワードをロック(先頭に!を付けてログイン不可に)
sudo passwd -l alice

# ロック解除
sudo passwd -u alice

# ロック状態の確認
sudo passwd -S alice
# alice L 2026-05-14 0 99999 7 -1 (Password locked.)

# パスワード自体を削除(パスワードなしでログイン可能になるので注意)
sudo passwd -d alice

ステップ3: パスワード期限の設定

# パスワード期限の確認
sudo chage -l alice
# Last password change: May 14, 2026
# Password expires: Aug 12, 2026 ...

# 最短変更間隔と最長有効期間(passwdオプション)
sudo passwd -n 1 -x 90 -w 7 alice
#  -n 1: 1日経たないと再変更不可
#  -x 90: 90日で期限切れ
#  -w 7: 期限7日前から警告

# 強制的に次回ログイン時にパスワード変更を要求
sudo passwd -e alice
# または
sudo chage -d 0 alice

ステップ4: 実践的な運用

# 複数ユーザーのパスワードを一括設定(chpasswd)
cat <<EOF | sudo chpasswd
alice:Init@2026Alice
bob:Init@2026Bob
EOF

# ランダムパスワード生成と設定
NEW_PASS=$(openssl rand -base64 12)
echo "alice:$NEW_PASS" | sudo chpasswd
echo "New password for alice: $NEW_PASS"

# パスワードハッシュアルゴリズムの指定(chpasswd)
echo "alice:Pass123" | sudo chpasswd -c SHA512

# ロックされているアカウントを一覧
sudo awk -F: '$2 ~ /^!/ {print $1}' /etc/shadow

# パスワードポリシー(pam_pwquality)の設定確認
cat /etc/security/pwquality.conf

注意事項

  • passwd -d でパスワードを削除するとパスワードなしでログイン可能になる(実質危険)
  • ロック(-l)は SSH鍵ログインを止めない。完全に止めるには usermod -L と合わせて /etc/ssh/sshd_config の設定も確認
  • root権限でのパスワード変更はsyslog/auth.logに記録されるため監査ログを定期確認
  • 強度ポリシーは pam_pwquality (Debian/Ubuntu) や pam_cracklib で集中管理
  • スクリプトでパスワードを渡す際は履歴に残らないよう注意(heredoc使用やprocess substitution)

まとめ

1. 自分のパスワード: passwd で対話的に変更

2. 他ユーザー: rootが sudo passwd ユーザー で変更

3. ロック: -l/-u でアカウントロック・解除、-S で状態確認

4. 期限管理: -n/-x/-w または chage でパスワード有効期間を制御

5. 一括処理: chpasswd でスクリプトから複数ユーザーを設定

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ