同じ部署の人が「パスワードの期限が切れたって出てログインできへん」って
root で何を見たらええの
【疑問】パスワードの期限が切れて入れないって言われた。chage・passwd の期限とロック、who・w・last でログインを調べる【LPICレベル1】
前提のおさらい。root の作業は sudo で必要なコマンドだけ実行する。誰が何をしたかはログ(Debian 系なら /var/log/auth.log)に残る
>>1
まず sudo chage -l ユーザー名 で期限の情報を見る。項目は
Last password change(最後に変えた日)
Password expires(パスワードの期限)
Password inactive(期限切れの後、使えなくなる日)
Account expires(アカウントの期限)
Minimum / Maximum number of days between password change
Number of days of warning before password expires
>>3
期限を変えるのは?
>>4
chage のオプションで、/etc/shadow の日数の欄を書き換える
-M 最長日数、-m 最短日数、-W 警告する日数、-I 期限切れの後に使える日数、-E アカウントの期限(YYYY-MM-DD か日数、-1 で外す)、-d 最後に変えた日(0 で次のログインで変更させる)sudo chage -M 90 -W 7 user2 で、90日ごとに変更、7日前から警告
>>5
期限が切れてから、どのくらいでほんまに入れなくなるん
>>6
最長が90日、-I が14日なら、最後に変えた日から
日たつと、パスワードでは入れなくなる。90日を過ぎてから104日までの間は、ログインのときにパスワードの変更を求められる
>>5
passwd でも同じことができるって聞いた
>>8
passwd の -x 最長、-n 最短、-w 警告、-i 猶予。passwd -S ユーザー名 で状態
試したマシンで自分のアカウントを passwd -S で見たら、2欄目が L(ロック)で、最短0、最長99999、警告7、猶予-1 やった。99999 は実質期限なし
>>9
最長99999 は /etc/login.defs の PASS_MAX_DAYS 99999 から来てる。login.defs の値はこれから作るユーザーにだけ効く
辞めた人のアカウントをすぐ止めたい
>>11
パスワードのロックは passwd -l か usermod -L(先頭に ! が付く)。でも SSH の鍵では入れることがあるから、アカウントの期限を切る chage -E 0 ユーザー名(usermod -e 1 でも同じ考え方)か、シェルを nologin にする
解除は passwd -u、chage -E -1
>>2
今誰がログインしてるか見たい
>>13who でログイン中のユーザーと端末とログインした時刻。w はそれに加えて、起動してからの時間・負荷・何を動かしてるか
w のヘッダーは USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT。試したマシンはコンテナで誰もログインしてなくて、0 users やった
>>14
自分が誰かは whoami、所属のグループも見るなら id
>>2
前にログインしてた記録は?
>>16last でログインとログアウトの履歴、last ユーザー名 でその人だけ、last reboot で再起動の記録
失敗したログインは lastb(root で、/var/log/btmp を読む)。ユーザーごとの最後のログインは lastlog(ディストリビューションによっては lastlog2)
>>17
記録のファイルは?
>>18
昔から、ログイン中が /run/utmp(who・w が読む)、履歴が /var/log/wtmp(last)、失敗が /var/log/btmp(lastb)。どれもバイナリで、cat では読めない
Debian 13 の last は wtmpdb のコマンドで、/var/log/wtmp.db(SQLite)を読む。32ビットの時刻があふれる問題を避けるため
>>3
期限は chage -l で見て -M・-I・-E で変える、止めるならロックより期限、今は who と w、前は last、失敗は lastb。同僚は -I の猶予を過ぎてたんやな
管理人のひとこと
chage -l ユーザーで期限の確認。-M 最長、-m 最短、-W 警告、-I 期限切れ後の猶予、-E アカウントの期限(-1 で解除)、-d 最終変更日(0 で次のログインで変更)。passwd の -x・-n・-w・-i も同じ欄を変え、-S で状態(L・NP・P と日数)。- 最長90日・猶予14日なら、最終変更から104日でパスワードでは入れなくなる。新しいユーザーの既定値は /etc/login.defs(PASS_MAX_DAYS など)。
- すぐ止めるには passwd -l・usermod -L(パスワードのロック)に加えて chage -E 0(アカウントの期限)や nologin。SSH の鍵はロックだけでは止まらない。
- who(ログイン中、/run/utmp)、w(負荷と実行中のもの)、last(履歴、/var/log/wtmp。Debian 13 は wtmpdb)、last reboot、lastb(失敗、/var/log/btmp)、lastlog、whoami、id。