[Armadillo:08263] Re: RTC非搭載時のパスワード変更時刻更新について

柳原 考作 email@hidden
2012年 8月 27日 (月) 17:23:44 JST


柳原です。
関心を持っていただいてありがとうございます。

>> Debianを展開したマイクロSDカードを、RTC非搭載のArmadillo-420に挿入してい
>> じってみているのですが、パスワードを変更しても/etc/shadowのパスワード変
>> 更時刻が0固定になってしまうのは、そういうものなのでしょうか?
>
> $ ls -l /etc/{passwd,shadow}
> -rw-r--r-- 1 root root   2218 Aug 19 03:34 /etc/passwd
> -rw-r----- 1 root shadow 1344 Aug 19 03:34 /etc/shadow
> 
> こんな感じに表示されないってことでしょうか?
疑問点だけぶつけてしまったので分かりにくかったですかね。

自己解決したので、背景を含めて以下にまとめておきます。

実践開発ガイドを参考にSDカードへDebianをインストールした直後は、rootユー
ザはパスワード無しでログインできます。

rootでログインした後パスワードを変更して、一旦ログアウトした後、再度root
でログインを試みると、新たに設定したパスワードでログインできるものの、
ログインした途端、パスワードの変更を迫られます。

これは一般ユーザと同じで、rootでログインしてguestというユーザを作り、
guestというパスワードを設定したとして、guestとしてログインしてみると、
ログインするたびにパスワード変更を迫られます。

なぜパスワード変更を迫られるのか?
それは、パスワードの有効期限が切れたと判断されるからです。

ではパスワードの有効期限はどこにどういう形で保持されているのか?
それは/etc/shadowに
 ・パスワードを変更した日付
 ・パスワード変更から無効になるまでの日数
という形で保存されます。

shadowファイルに何が記録されているのかについては、詳しくはshadowのオン
ラインマニュアル(man shadow)を見れば分かりますし、chageコマンド(詳しく
はオンラインマニュアル参照)でも知ることができます。

デフォルト設定では、パスワード有効期限の方は検査されない(いつまでたって
も有効期限切れにならない)のですが、パスワードを変更した日付(1975/1/1から
パスワード変更した日までの経過日数)が1975/1/1(経過日数0)だと、有効期限の
設定に関わらず期限切れとして扱う様です。

そこまで調べた段階で、「パスワード変更時刻が0固定になってしまう」と不思
議がっていたのですが、RTC非搭載で起動したらシステムクロックはEPOCH、つま
り1970/1/1 00:00:00から時を刻み始めますので、電源投入直後(24時間以内)に
パスワード変更などの操作をしていたため「0固定で当たり前だった」というオ
チでした。

なお、パスワード変更を強制されないようにするには、変更日を1975/1/1以外に
すれば良いので、chageコマンドの-dオプションで改ざんすれば良いようです。

以上、よろしくお願いします。



armadillo メーリングリストの案内