1.10.1標準
現在の対話Bashで、prompt表示後900秒入力がなければlogoutする。
同じshell内でuserが値を変更できないようにする。
適切な設定はどれか。
× 不正解
対話BashのTMOUTはprompt待機中の無操作秒数として働き、readonly指定で同じshellからの変更やunsetを防げる。
詳細解説
誤り
export IDLE=900IDLEはBashの自動logoutを制御する特殊変数ではない。
IDLEという一般変数をexportしてもBashは自動logoutの制御値として参照しない。
正しい
readonly TMOUT=900TMOUTへ秒数を設定し、readonly属性で同じshell内の変更を防ぐ。
TMOUT=900が無操作timeoutを設定し、readonlyが同じshellでの変更を防ぐ。
誤り
timeout 900 bash子bashの総実行時間を制限し、無操作時間だけを測らない。
timeoutは子bashを900秒後に終了させ、途中のuser操作でtimerをresetしない。
誤り
sleep 900; exituser入力の有無にかかわらず900秒後にexitする逐次処理である。
sleepは入力監視をせず、900秒経過後に常にexitへ進む。
実際に確かめる
一時的な検証環境で実行できる例です。
bash -c 'readonly TMOUT=900; printf "value=%s readonly=%s
" "$TMOUT" "$(readonly -p | grep -c "TMOUT=")"'期待される結果
value=900 readonly=1理解のポイント
- TMOUTは秒数
- 対話shellで自動logout
- readonlyで変更防止
確認時の注意
- 確認環境: Bash 5.x / 自動logout待機は行わない
- system全体へ適用する場合は各対話shellが読む起動fileで設定する。
基礎のおさらい
適用場所
system policyならuserが変更する前に読み込まれる管理対象のshell起動fileへ設定する。
shell差
TMOUTの詳細な動作やreadonly設定方法はshellに依存するため、対象をBashへ明示する。
問題IDKL-102-1132
確認環境Bash 5.x / 自動logout待機は行わない
最終技術確認2026-08-13
誤り・権利侵害を報告