いますぐ実践! Linuxシステム管理

[バックナンバーのトップへ] [Linux システム管理のトップへ]


いますぐ実践! Linux システム管理 / Vol.036 / 読者数:583名

こんばんは、うすだです。

先々週から、目が腫れたり首が回らなくなったりしていましたが、 今週はいわゆる胃腸風邪というものでダウンしておりました。

とにかく固形物を受け付けず、丸2日間、ほとんど食べない日々を過ごしました。

しかし、不思議だったのは、ほとんど食べていないのに、お腹がすかないことです。 それに、食べなかったし苦しんだんだから、 さぞダイエットになっただろうと思って体重を計ったら、 ほとんど減っていなかったことにも、驚きました。

…うーん、すごい省電力モードで動作していたようです。
ひとの体ってよくできてるなと思いましたが、スリムになれなかったのには、 ショックを受けています。

まあ、それでも、仕事もせずに、2日間寝て過ごせたのは、いい休養になりました。 すっきりした気持ちで、いまこれを書いています。
明日出社したとき、どれだけ仕事がたまっているのか、と思うと、 明日が恐くもありますが…。(-ε-;

明日は明日の風が吹くのだ! と自分自身に言いきかせつつ、
今週も、はりきってまいりますよ!

今週のお題 - パスワードを管理する

システム管理者たるもの、日夜さまざまな管理を強いられていますので、 すべてにおいて完璧にこなすためには、 1日が36時間くらい欲しいところではないかと思います。

ですから、パスワードの管理なんぞは、一度ユーザを作成し、 パスワードを設定したら、その後はユーザに任せてしまいたいところです。

しかしながら、安直なパスワードをつけたり、 一度設定したパスワードを何年も変えずに使っているユーザは、必ずいます。 確実にいます。
(1人見つけたら100人はいる、という噂も、決して嘘ではありません。)

このような輩を放置しますと、悪用される可能性がありますので、 我々の貴重な睡眠時間を確保するためにも、断じて放置するわけにはいかない! と言えるでしょう。はい。

そこで今週は、パスワードに期限をつけて、 定期的にパスワード変更してもらう設定などを、試みたいと思います。

これを適用するかどうかは、管理者権限で決められることではありませんし、 独断で適用すると後で手痛いしっぺ返しが待っていたりするかもしれませんが、 少なくとも知っておいて損はしないでしょう。

…さて、長い長い前置きはこのくらいにして、本題に入ります。

今どき、パスワードファイルと言えば、 /etc/passwd と /etc/shadow の2つに分かれているというのが、 当たり前の世の中になっておるようです。

/etc/passwd には、ユーザ名や UID, GID, ホームディレクトリ、 シェルなどの情報が記述されています。 これらは、他の一般ユーザに知られても特に問題にはならないため、 /etc/passwd ファイルはだれでも見ることができるようになっています。

かたや、/etc/shadow には、暗号化されたパスワードや、 有効期限などが記述されています。 これらは、一般ユーザが知る必要のない情報ですので、 root しか見ることができないようになっています。
(疑い深い方は、ls -l /etc/shadow としてみましょう。)

そして、/etc/shadow をうまく設定しますと、 一定期間同じパスワードのままだと警告を発したり、 定期的にパスワード変更を強いる、などということができるようになります。

それを可能にする便利なコマンドが、chage コマンドです。
大まかな書式は、以下の通りです。

  chage [-m min] [-M max] [-I inactive] [-E expire] [-W warn] user

user には、適用したいユーザ名を指定します。
-m とか -M などのオプションを省略すると、それぞれの値を、 対話的に聞いて設定してくれます。親切なおひとです。

ちゃんとオプションを設定するなら、以下を参考にしてください。

-m オプションを用いると、前回パスワードを設定してから、 次にパスワード変更ができるまでの日数を指定できます。 min を 0 にすると、いつでも変更可能となります。 0 より大きい場合は、その間パスワードを変更できなくなります。
-M オプションを用いると、パスワードが有効な最大日数を指定できます。 前回パスワードを設定してから、max 日経過すると、 パスワードの強制的な変更を促されます。
-I オプションを用いると、 パスワードが無効になってからログインできなくなるまでの日数を指定できます。
-E オプションを用いると、そのユーザがログインできなくなる日を指定できます。 expire には、無効になる年月日を指定します。 期間限定刹那的ユーザを作るときに、使えそうですね。
-W オプションを用いると、 パスワードの変更が必要となる前に警告を発する日数を設定できます。 もうすぐ変更しないとだめですよ、と警告すれば、 早めに変更してもらえるかもしれません。

では、実際に設定して、試してみましょう。

まずは、確認用のユーザ test2 を、useradd コマンドで作ります。

  # useradd -g 100 -u 192 -d /home/test2 -m -s /bin/bash test2
  # passwd test2

上記はあくまで例です。
ユーザ名や UID, GID は、実際の環境にあったものを、お使いください。
で、それぞれ以下のようなエントリが追加されました。

  # grep test2 /etc/passwd
  test2:x:192:100::/home/test2:/bin/bash
  # grep test2 /etc/shadow
  test2:$1$xXQCO2f4$NU76nffv0RWZYUN5Xx5KO.:13100:0:99999:7:::

まず、-m オプションを試してみましょう。

  # chage -m 1 test2

としますと、さっきパスワードを設定したばかりなので、 パスワード変更できなくなります。
test2 さんでログインして、

  # telnet localhost
  login: test2
  Password: (test2 さんのパスワードを入力)

passwd コマンドでパスワード変更を試みますと、

  $ passwd
  Changing password for user test2.
  Changing password for test2
  (current) UNIX password: (test2 さんのパスワードを入力)
  You must wait longer to change your password
  passwd: Authentication token manipulation error

そっけなく拒否されました。

次に、-M オプションと -W オプションを試してみます。

  # chage -m 0 -M 7 -W 3 test2

1週間後にパスワード変更を強制執行しますが、 その3日前に警告を発するという設定をしてみました。

では、4日待ってみましょう…なんて悠長なことは言ってられませんね。
幸いにも、-d オプションで、前回パスワード設定した日を改竄できますので、 これを用いてみましょう。

  # chage -d 2005-11-08 test2

5日前にタイムスリップさせます。(今日は、11月13日です。)
すると、

  # telnet localhost
  login: test2
  Password: (test2 さんのパスワードを入力)
  Warning: your password will expire in 2 days

ログイン時に、めでたく、警告が発せられました。
さらに、前回パスワード設定日を過去に戻しますと、

  # chage -d 2005-11-01 test2
  # telnet localhost
  login: test2
  Password: (test2 さんのパスワードを入力)
  You are required to change your password immediately (password aged)
  Changing password for test2
  (current) UNIX password: (test2 さんのパスワードを入力)
  New password: (test2 さんの新しいパスワードを入力)
  Retype new password: (test2 さんの新しいパスワードを入力)

強制的にパスワードを変更させられました。お見事です。

次は、-I オプションを試してみましょう。

  # chage -I 14 test2

2週間後にログインできなくしてみました。
またまた -d オプションで2週間以上タイムスリップしてみます。
すると…

  # chage -d 2005-10-30 test2
  # telnet localhost
  login: test2
  Password: (test2 さんのパスワードを入力)
  Connection closed by foreign host.

…にべもなく切られてしまいました。
(Login incorrect と言わないので、無効であることがわかりますね。)

さて、最後に、-E オプションです。

  # chage -M 999999 -E 2005-11-10 test2

-E オプションで過去を設定してみました。
すると、すでに期限を過ぎてしまっていますので、

  # telnet localhost
  login: test2
  Password: (test2 さんのパスワードを入力)
  Connection closed by foreign host.

見事、断固として拒否されました。

以上、chage コマンドを使った、パスワードの管理方法について、 簡単にご紹介しました。

実際には、どの項目を有効にするとか、どの日数に設定するとか、 議論して決める必要があると思いますが、何もしないよりは格段にましです。
適用するかどうかはともかく、是非検討してみてください。

それから、ユーザさんに不便を強いることになりますので、くれぐれも、 強制執行するようなことは避け、 極力コンセンサスを得るようにしていただければと思います。

宿題の答え

先週の宿題は、

  ディスクの空き容量がなくなったときに、どういう方針で解決していけ
  ばよいか、考えてみましょう

でした。

ところ変われば、方針も変わると思いますが、私は、以下のように考えています。

  1. /var/log にある古いログを消す。(.1 とかついてるもの)
  2. 参照される頻度の低いファイル、ずっと不変なファイルなどは、 低速なメディアに移動させる。
    …とはいえ、今どきは MO などを使わないかもしれませんが。
  3. 長期間参照もされていないファイルは、圧縮するか、バックアップをとって消す。

他にも、ユーザの所有物が幅をきかせているなら、 その旨をアナウンスしてお願いしたり、クォータを導入するなども、 必要だと思います。

…読み返してみると、ものすごく当たり前なことしか書いてませんね。
すみません。

今週の宿題

今週の宿題は、こちらです。

  chage コマンドの -M オプションや -I オプションで、0 を指定すると
  どうなるでしょうか

です。

実際にやってみれば、すぐわかりますよ。

あとがき

あー、今週も、長くなってしまいました。ですので、あとがきは短く。

20世紀に購入した、おうちのデスクトップに、DVD ドライブを買ってあげました。 そして、Fedora Core 4 を入れてみました。
うわー、立ち上がりから、とってもビジュアルですね。

そして、例の VMware Player を入れて、 ゲスト OS に Solaris10 を入れてみました。今のところ問題なく動いています。
しかし、立ち上がりの遅さとか、インストール手順とか、 昔からあんまり変わらないですね。懐かしさを感じました。
でも、一通り入れようとすると 4GB を越えるところは、今どきな感じがします。 Solaris よ、お前もか、みたいな。
まだ入れただけですので、Solaris 的なナニかは、 ぼちぼち試してみようと思っています。

そんなわけで、このメルマガの守備範囲な環境が、少し増えそうです。
実際には全部の環境で試せるわけではありませんが、 なるべくたくさんの環境に共通の話題を、という心がけは保てそうに思います。

今週も、ここまで読んでいただき、ありがとうございました。
それでは、また来週、お会いしましょう!

「いますぐ実践! Linux システム管理」の解除は、以下からどうぞ。
http://www.usupi.org/sysad/ (まぐまぐ ID:149633)

バックナンバーは、こちらにほぼ全部そろっています。
http://www.usupi.org/sysad/backno.html

「栗日記」−毎日栗の絵を描いていますよ。飽きもせず。
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)


[バックナンバーのトップへ] [Linux システム管理のトップへ]

トップ

バックナンバー
    [日付順] [目的別]

プロフィール

▼ リンク

独学Linux
Linuxデスクトップ環境に関する情報が満載です。 メルマガもありますよ。
Server World
CentOS 6をサーバとしたときの設定例が、これでもかというくらいたくさん載っています。 CentOS以外のディストリビューション(Fedora, Ubuntu)も充実しています。
LINUXで自宅サーバーを構築・導入(Fedora9)
Fedora9のインストールの仕方から管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
マロンくん.NET
〜サーバ管理者への道〜
Linuxをサーバとして使用するための、いろいろな設定方法が載っています。 マロンくんもかわいいです。 なんといっても、マロンくんという名前がいいですね!!
日経Linux
今や数少なくなってしまったLinuxの雑誌。ニュースやガイドもあります。
Linux Square − @IT
@ITが提供する、Linux の情報が満載。 載っていない設定方法はないんじゃないでしょうか。
gihyo.jp…技術評論社
Linuxに限らず様々な技術情報が満載のサイト。 SoftwareDesign誌も、 ソフトウェア技術者は必見です。
SourceForge.JP Magazine
Linux に限らず、オープンソース関連の記事が網羅されています。
ITmediaエンタープライズ:Linux Tips 一覧
Tips というより FAQ 集でしょうか。わからないことがあれば覗きましょう。
IBM developerWorks : Linux
開発者向けですが、勉強になりますよ。
Yahoo!ニュース - Linux
Yahoo!のLinuxに関するニュース一覧です。
栗日記
システム管理とかと全然関係ありませんが、毎日栗の絵を描いています。
システム管理につかれちゃったとき、癒されたいときに、ご覧ください。:-)
WEB RANKING - PC関連
ランキングに参加してみました。押してやってください。

▼ 作ってみました

Add to Google

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本