
|
[バックナンバーのトップへ] [Linux システム管理のトップへ] いますぐ実践! Linux システム管理 / Vol.098 / 読者数:1022名こんばんは、うすだです。 先週、初心者のかた向けに回帰しますよ的宣言をしたところ、 たくさんのご感想をいただきました。
ありがとうございます。ありがとうございます。
…すみません、本当は、感想をいただいたのは1通だけでした。
とはいえ、読者数が減らず、いつもよりちょびっと増えたという事実を、 斜めに直視しますと、おおむねご賛同いただけたと判断していいのかな、 などと思っております。(ポジティブ思考で。)
ですので、今後も、この路線でつっ走ってまいりたいと思います。 それでは、先週に引続き、今週も、はりきってまいりましょう! 今週のお題 - パスワード変更していない日数をチェックする普段、何気なく、ユーザ名とパスワードを入力して、 Linux マシンなどにログインしていますが、よく考えますと、パスワードは、 そのユーザだということを証明する唯一の証拠だと言えます。たぶん。 そんな大事なものであるにも関わらず、最初にパスワードを設定すると、 ずっとそのまま使い続けている貴兄が、多いのではないかと推測します。 しかし、パスワードを変更する習慣を身につけておかないと、 /etc/shadow が漏洩したときに、パスワードを解読され、 電光石光のごとく侵入されるということが、現実に起こってしまうかもしれません。
さて、以前、chage というコマンドで、パスワードの有効期間を設定し、 パスワード変更を強制的に行ってもらうという封建的手法を、 ご紹介したことがあります。
Vol.036 - パスワードを管理する chage を用いて、適切な期間を設定すれば、 強制的にパスワード変更してもらうことができます。 しかし、所属する組織の方針に合わないとか、 コンセンサスが得られないなどの理由により、 適用できないということも十分考えられます。
とはいえ、適用できないからといって放置するわけにもいきませんよね。 パスワード変更に関する情報がどこにあるのか、と言いますと、 さきほどちらっと出てきた、/etc/shadow に記述されています。
せっかくですので、shadow ファイルの内容を確認しておきましょう。 ユーザ名 (暗号化された)パスワード 最後にパスワードが変更された日(1970年1月1日からの日数) パスワードが変更可能となるまでの日数 パスワードを変更しなくてはならなくなるまでの日数 パスワードの有効期限が来る前に、警告を発する日数 パスワードの有効期限が過ぎてから使用不能になるまでの日数 アカウントが使用不能になるまでの日数(1970年1月1日からの日数) 予約フィールド 実際の shadow ファイルは、たとえばこんな感じです。 # cat /etc/shadow root:秘密:13572:0:99999:7::: bin:*:13257:0:99999:7::: ...後略...
各フィールドが、: で区切られていますね。
しかし、そのためには、
1970年1月1日から今日までの日数がわからないといけませんよね。 % date +%s 1174756224 引数に +%s を指定すると、 1970年1月1日午前0時0分0秒から今までの秒数を出力してくれます。 (他にもさまざまなフォーマットで出力してくれますが、 詳しくはオンラインマニュアル(man date)などをご覧ください。) ですので、得られた秒数を 60*60*24 で割れば、日数になります。 % expr 1174756224 / 60 / 60 / 24 13596
1970年1月1日から今日まで、13596日を経過している、
ということが計算できました。 % expr `date +%s` / 60 / 60 / 24 13596 それでは、shadow ファイルを読み込み、 パスワード変更していない日数を計算するスクリプトを、作ってみましょう。
#!/bin/sh
TODAY=`expr \`date +%s\` / 60 / 60 / 24`
IFS=:
while read name pwd lstchg min max warn inact expire reserved; do
echo "$name : `expr $TODAY - $lstchg`"
done < /etc/shadow
まず、今日の日数を、変数 TODAY に格納しています。 root : 24 bin : 339 daemon : 339 ...後略...
ただ、これでは、もともとパスワードを設定していないユーザの結果も、
出力されてしまいます。
#!/bin/sh
TODAY=`expr \`date +%s\` / 60 / 60 / 24`
IFS=:
while read name pwd lstchg min max warn inact expire reserved; do
if [ "$pwd" != '*' -a "$pwd" != '!!' ]; then
echo "$name : `expr $TODAY - $lstchg`"
fi
done < /etc/shadow
こうすると、パスワードを設定しているユーザの結果だけが得られます。 root : 24 usu : 48 kentarou : 7 jin : 125 しかし、たくさんユーザさんがいる組織では、出力が大量になってしまいそうです。 ですので、最近パスワード変更したひとの情報は、この際省略してしまいましょう。
#!/bin/sh
[ $# -eq 1 ] && NOCHANGE=$1 || NOCHANGE=30
TODAY=`expr \`date +%s\` / 60 / 60 / 24`
LIMIT=`expr $TODAY - $NOCHANGE`
IFS=:
while read name pwd lstchg min max warn inact expire reserved; do
if [ "$pwd" != '*' -a "$pwd" != '!!' -a $lstchg -le $LIMIT ]; then
echo "$name : `expr $TODAY - $lstchg`"
fi
done < /etc/shadow
30日前の日数を変数 LIMIT に代入し、if 文に、
その値以下であるという条件を追加しています。 usu : 48 jin : 125 引数に数値を指定すると、 その日数以上パスワード変更していないユーザだけを出力します。 (デフォルトが30日ってことです。) 以上、しばらくパスワード変更していないユーザをチェックする方法を、 ご紹介しました。
出力結果を Mail コマンドに渡してメールで報告させたりなど、
いろいろ応用が考えられそうですね。 宿題の答え先週の宿題は、 ホームの残りの空き容量が、指定された kB 以下のときに、ホーム以下 の各ディレクトリの使用量をメールするスクリプトを作りましょう。 でした。 まず、空き容量を得るには、-k オプションをつけて df コマンドを実行し、 2行目の出力の4番目の文字列(数字)を取り出せば、よさそうです。 # df -k /home Filesystem 1K-blocks Used Available Use% Mounted on /dev/hda2 76095208 68881044 3348736 96% / 2行目だけにするには、先週と同様 tail コマンドを用います。 # df -k /home | tail -1 /dev/hda2 76095208 68881044 3348736 96% / さらに、4番目の文字列を取り出すために、awk コマンドを用います。
# df -k /home | tail -1 | awk '{print $4}'
3348736
awk コマンドはいろいろできるひとなのですが、 ここでは4番目の文字列を取り出すためだけに使うという、 ゼイタクなことをしています。 というわけで、答の例を示します。
#!/bin/sh
[ $# -ge 1 ] && HOMEDIR=$1 || HOMEDIR="/home"
[ $# -eq 2 ] && HOMETHR=$2 || HOMETHR=524288
HOMEFREE=`df -k $HOMEDIR | tail -1 | awk '{print $4}'`
if [ $HOMEFREE -le $HOMETHR ]; then
du -sk $HOMEDIR/* | sort -nr
fi
デフォルトでは、/home の属するファイルシステムの空き容量が、 512MB(524288kB)以下になったら、使用量を計測して出力します。 話は変わりますが、トップ10の結果だけでいいよっていう場合は、 if 文の中を以下に差し替えましょう。
du -sk $HOMEDIR/* | sort -nr | head -10
お察しの通り、数字を変えれば、トップ3とかトップ40にできます。 今週の宿題今週の宿題は、 しばらくパスワードを変更していないユーザに、その旨をメールで通知 しましょう。 です。
パスワード変更していないユーザの一覧を出力していましたが、それだけだと、
ちょっと積極性に欠けるように思います。 あとがき
今週は、「クロフォードのインタラクティブデザイン論」の後遺症もありましたので、
以下の新書をさらっと読んでみました。
頭がよくなる照明術 ものすごく要約しますと、蛍光灯による青白い光に、上から直接照らされていると、 ずっと緊張してしまいますので、 オレンジ色の間接照明を有効に使ってリラックスしましょう、という内容でした。
とにかく、照明が人間に与える影響の大きさに、びっくりしました。
個人的には、障子や金屏風、玉砂利など、日本に昔からあるものが、
自然の光を有効に使っているという話が、興味深く感じました。
新書だからだと思いますが、さらっと読めます。
さて、来週の 4/1 は、個人的な事情(?)により、お休みとさせていただきます。
今週も、ここまで読んでいただき、ありがとうございました。
「いますぐ実践! Linux システム管理」の解除は、以下からできます。
バックナンバーは、こちらにほぼ全部そろっています。
「栗日記」−今日もこれから描きます。 |
▼ トップ ▼ プロフィール ▼ リンク
▼ 作ってみました
▼ せんでん
▼ 最近読んだ本 [X]
「センネン画報」 今日 マチ子「粟津潔 デザインする言葉」 粟津潔 「Binary Hacks」 高林 哲,鵜飼 文敏,佐藤 祐介,浜地 慎一郎,首藤 一幸 「Make: Volume01」 オライリー・ジャパン 「セーラが町にやってきた」 清野 由実 「手紙屋」 喜多川 泰 「Linuxカーネル2.6解読室」 高橋 浩和,小田 逸郎,山幡 為佐久 「人蕩し術」 無能 唱元 「子育てハッピーアドバイス2」 明橋 大二, 太田 知子 「ラッセル幸福論」 B. Russell 「それでも人生にイエスと言う」 Viktor Emil Frankl 「子育てハッピーアドバイス」 明橋 大二, 太田 知子 「考具」 加藤 昌治 「北欧デザイン<3>」 渡部 千春 「北斎の謎を解く」 諏訪 春雄 「体感美術館」 平野 暁臣 「チベット永遠の書」 Theodore Illion 「リナックスの革命」 Pekka Himanen 「人月の神話」 Frederick Phillips,Jr. Brooks 「ヤバい経済学」 Steven D. Levitt, Stephen J. Dubner 「小布施ッション<2001-2002>」 セーラ・マリ カミングス 「アンパンマン伝説」 やなせ たかし 「夢をかなえるゾウ」 水野 敬也 「ゲーム開発者のためのAI入門」 David M. Bourg, Glenn Seemann 「北欧デザイン<2>」 渡部 千春 「北欧デザイン<1>」 渡部 千春 「ヒューマン2.0」 渡辺 千賀 「中国・ロシア同盟がアメリカを滅ぼす日」 北野 幸伯 「超ロング・セラー 絶滅寸前商品」 湯浅 豊彦 「The BUG(ザ・バグ)」 すずき ひろのぶ,かとう みつあき 「デザインのデザイン」 原 研哉 「マキアヴェッリ語録」 塩野 七生 「ハンバーガーを待つ3分間の値段」 斎藤 由多加 「星の旅人-スペイン「奥の細道」-」 黛 まどか 「食品の裏側」 安部 司 「On Lisp」 Paul Graham 「ぼくが医者をやめた理由 つづき」 永井 明 「あなたならどうする?」 Jack Nikolaschka 「セキュアプログラミング−失敗から学ぶ設計・実装・運用・管理」 Mark G. Graff, Kenneth R. van Wyk 「「左利き」は天才?−利き手をめぐる脳と進化の謎」 David Wolman 「自分の中に毒を持て」 岡本 太郎 「アトピーの薬を減らす本」 田中 貴子 「岡本太郎「明日の神話」修復960日間の記録」 吉村 絵美留 「X51.ORG THE ODYSSEY」 佐藤 健寿 「アレルギーっ子の暮らし応援BOOK」 佐藤 のり子 「沖縄文化論」 岡本 太郎 「「伝説の社員」になれ!」 土井 英司 「コンピュータの構成と設計(上)」 Patterson & Hennessy 「カラスのジョンソン」 明川 哲也 「ドリルを売るには穴を売れ」 佐藤 義典 「頭がよくなる照明術」 結城 未来 「クロフォードのインタラクティブデザイン論」 Chris Crawford 「いじめの根を絶ち子どもを守るガイド」 Barbara Coloroso 「非常識のすすめ―逆発想の仏教論」 ひろさちや 「Linuxアドバンストネットワーク構築ガイド - HAサーバ構築編」 デージーネット 「イノベーションの達人!」 Tom Kelly, Jonathan Littman 「クリエーター50人が語る創造の原点」 小原 啓渡 「欺術 - 史上最強のハッカーが明かす禁断の技法」 Kevin Mitnick 「楽しい気象観察図鑑」 武田 康男 「入門 Ajax」 高橋 登史朗 「リリカルな自画像」 岡本 太郎 「やぎの目ゴールデンベスト」 林 雄司 「初めてのPython 第2版」 Mark Lutz,David Ascher 「鼻兎」 小林 賢太郎 「なぜ、これがアートなの?」 Amelia Arenas 「芸術起業論」 村上 隆 「まほう色の瞳」 Enrique Barrios 「ラーメンズつくるひとデコ」 ラーメンズ 「R25 つきぬけた男たち」 R25編集部 「美の呪力」 岡本 太郎 「しろのあお」 上大岡 トメ 「ザ・ゴール」 Eliyahu M. Goldratt 「ハッカーと画家」 Paul Graham 「岡本太郎に乾杯」 岡本 敏子 「Fedore Core Expert」 Software Design 「誰も知らない男」 ブルース・バートン 「子どもが育つ魔法の言葉」 ドロシー・ロー・ノルト 「国家の罠」 佐藤 優 「夜回り先生」 水谷 修 「やぎの目絵日記」 林 雄司 「7つの習慣」 スティーブン・R. コヴィー 「まろ、ん?−大掴源氏物語」 小泉 吉宏 「ザ・サーチ グーグルが世界を変えた」 ジョン・バッテル 「ポストモダン・マーケティング」 スティーブン ブラウン 「機動戦士ガンダムさん」 大和田 秀樹 「小エロのひみつ - Webやぎの目研究発表」 林 雄司 「これ、誰がデザインしたの?」 渡部千春 「60分間・企業ダントツ化プロジェクト」 神田 昌典 「ガルシアへの手紙」 エルバート ハバード 「人生は素晴らしいものだ」 オグ・マンディーノ 「ザ・マインドマップ」 トニー・ブザン,バリー・ブザン 「ワインバーグのシステム思考法」 G.M.ワインバーグ 「渋谷ではたらく社長の告白」 藤田 晋 「渋井真帆の日経新聞読みこなし隊」 渋井 真帆 「コラム息切れ」 小野 法師丸 「早朝起業」 松山 真之介 「変な人が書いた驚くほどツイてる話」 斎藤 一人 「35歳から仕事で大切にしたいこと」 村井 勉 「金融広告を読め」 吉本 佳生 「発想する会社!」 トム・ケリー,ジョナサン・リットマン 「エハイク」 吉田 戦車 「人生の旋律」 神田 昌典 「仕事の思想」 田坂 広志 「CPUの創りかた」 渡波 郁 「非常識な成功法則」 神田 昌典 …これ以前は記録してません…
▼ 気に入ってる本
| ||||||||||||||||||||||||||||||||||||||||