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

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


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

こんばんは,うすだです.

とつぜんですが,車を買い替えました.

前に買ったのが10年前ですので,10年もたつと, 車もずいぶん変わるなあと思うところもあれば,基本的にはぜんぜん変わらないよな, と思うところもあります.

あちこち電子的になって,機械がある程度勝手にやってくれるところなどは, さすが技術の進歩はすごいや! と単純に驚かされます.

しかし,10年前の車と比べると,体感的にはパワーの違いをさほど感じません. 排気量も値段もさほど変わらないので,目に見えないところがよくなっているか, 技術が頭打ちになっているかの,どちらかなのかなあと,思っています.
(車のことはよくわからないので,あてずっぽうです.)

もし,ぱっと見変わっていないけれど,がんばってよくしたのなら, 顧客にわかるよう,きちんとアピールしないといけないですよね. いくらがんばって作っても,それが伝わらなければ,顧客から見ると, やっていないのと同じになってしまうんじゃないか,と思うわけです.

なんて,えらそうなことを言ってますが,自分も, 説明不足で同じように思われていることがあるのではないか, という気がすごくしてきました.
これからは,顧客の視点で見るなどしてみようと思います.

…と,強引に結論づけたところで,今日も,はりきってまいりましょう!

今週のお題 - ログイン情報を知る

システム管理者たるもの,いつ誰がログインしていたか,ということは, 常に把握しておく必要があるのではないかと思います.

なぜなら,ある時点で,誰がログインして使っていたかということがわかると, なにか問題が発生したとき,少なくともそのときの状況を, その人たちに教えてもらうことができるからです.
(ひょっとすると,犯人がいるかもしれませんし…ね.)

さて,みなさんはもうご存知だと思いますが,ここんとこ最近, いつ誰がログインしていたかということを知るには,last コマンドを用います.

  % last
  usu    pts/4                   Fri Aug 26 22:07 - 23:28  (01:20)
  usu    pts/0                   Thu Aug 25 23:51   still logged in
  usu    pts/0                   Thu Aug 25 23:49 - 23:51  (00:01)
  usu    pts/4                   Thu Aug 25 23:19 - 23:45  (00:25)
  test   ftpd5656  192.168.1.17  Fri Aug 25 01:20 - 01:20  (00:00)    
  ...略...
  reboot system boot  ...        Thu Aug  4 19:47         (22+06:21)
  ...略...

説明するまでもないと思いますが,左から順に,ユーザ,tty, ログインしたときの時間,ログアウトしたときの時間…などです.
ftp によるアクセスと思われるものや,reboot なんていう情報も, ちらほらとありますね.

では,last コマンドは,ログイン情報を,どこから得ているのでしょう?

last のオンラインマニュアルを見ると,最初に答が書いてあるのですが, /var/log/wtmp というファイルから,ログイン情報を得ています.
/var/log/wtmp は,あるフォーマットのバイナリデータの集まりです.
last コマンドは,wtmp を読み込み,バイナリデータを解釈して, わかりやすい形で出力してくれる,やさしいひとなのです.

それでは,last コマンドが wtmp を参照するとして,だれが, ログイン情報を wtmp に記録しているのでしょうか?

それは,login や shutdown, halt などのコマンドです.
syslog の場合ですと,syslogd という元締めにログの記録をお願いしていますが, wtmp の場合は,それぞれのコマンドが,直接自分で情報を記録しているのです. ※1

さて,これで,誰が記録し,誰が参照するかがわかりました.
しかし,ログイン情報は,ログイン・ログアウトのたびに, どんどん記録されていきますので,放っておくと,wtmp はどんどん肥大化します.

ですので,通常は,logrotate でローテーションします.
例えば,手元にある Vine Linux 3.1 の /etc/logrotate.conf には, 以下記述があります.

  /var/log/wtmp {
      monthly
      create 0664 root utmp
      rotate 1
  }

1カ月毎に,wtmp をローテーションし,1カ月前の wtmp を保存します.
過去の分をもっと残す必要があるとか,ローテーションの頻度を変えたいという方は, logrotate.conf を編集する必要があります.※2

古い wtmp を参照したいとき,例えば,/var/log/wtmp.1 の内容を見たいときは, 以下のように,-f オプションで wtmp ファイルを指定して last コマンドを実行します.

  % last -f /var/log/wtmp.1
  usu      pts/1                 Sun Jul 31 23:10 - 00:42  (01:32)
  usu      pts/1                 Sat Jul 30 21:54 - 01:27  (03:32)
  ...略...

以上,wtmp に関するもろもろについて,ご説明しました.
せっかくですので,last コマンドで wtmp の中を覗いたり, 古い wtmp の保存期間などを変えたりしてみてください.

※1
syslog については,以下のバックナンバーをご覧ください.
http://www.usupi.org/sysad/016.html http://www.usupi.org/sysad/017.html
※2
logrotate については,以下のバックナンバーをご覧ください.
http://www.usupi.org/sysad/018.html

宿題の答え

先週の宿題は,

  あるディレクトリ以下にいるプロセスを見つけてください

でした.

先週,少しだけご説明しましたが, /proc/プロセスID/cwd を探索すればいいですね.
出力はいまいちですが,人間が見て結果がわかればいいので, こんなものでよろしいのではないかと思います.

  # ls -l /proc/*/cwd | grep 探したいディレクトリのパス

例えば,/etc 以下にいるプロセスを見つけたい場合,以下のように実行します.

  # ls -l /proc/*/cwd | grep /etc
  lrwxrwxrwx   1 root    root      0 Aug 24 17:14 /proc/2235/cwd \
  -> /etc/pcmcia/
  # ps 2235
     PID TTY          TIME CMD
    2235 ?        00:00:00 cardmgr

どうやら,cardmgr さんが,/etc/pcmcia にいらっしゃるようです.

蛇足ですが,あるディレクトリ以下のファイルを使用しているプロセスを見つけるには, 以下のようにしてみましょう.

  # ls -l /proc/*/fd/* | grep 探したいディレクトリのパス

例えば,/var/log 以下のファイルを使用中のプロセスを見つけたい場合は, 以下のように実行します.

  # ls -l /proc/*/fd/* | grep /var/log
  lrwx------   1 root     root    64 Aug 24 17:23 /proc/2010/fd/10 \
  -> /var/log/alert|
  l-wx------   1 root     root    64 Aug 24 17:23 /proc/2010/fd/2 \
  -> /var/log/messages
  l-wx------   1 root     root    64 Aug 24 17:23 /proc/2010/fd/3 \
  -> /var/
  ...略...
  # ps 2010
    PID TTY      STAT   TIME COMMAND
   2010 ?        S      0:00 syslogd -m 0

いっぱい出てきますが,少なくとも syslogd さんが使用中のようです.

今週の宿題

今週の宿題は,こちらです.

  root でログインせずに,一般ユーザでログインして,root の権限で何
  か行う時は,su や sudo を使った方がいい理由は,なんでしょうか?

です.

特にひねりはないです.私は,常識的な答えしか知りません.
(変わった理由を思いついた方は,ぜひご連絡を!)

あとがき

いい加減,Xen とか SELinux とか,やっとかんといかんなーと思っていたら, ちょうどいいものがありました.

Fedora Core Expert
http://www.gihyo.co.jp/magazines/fce

Fedora Core 4 をターゲットにして,SELinux やら LAMP(Linux, Apache, MySQL, PHP)やら YUM やら Xen やらが, これでもかこれでもかと言わんばかりに,紹介されている本です.いや,ムックです.

最近,新しいものに食いついていませんでしたので,これは!!! と思い, 気がつけば,本を手にとって,レジにならんでいました.

…とはいえ,実は,まだあまり読んでいません.
個人的には,SELinux, トラブル相談所,そして RPM & YUM のあたりを, ばすばす読みたいと思っています.あと,Fedora Core 4 をどこかに入れて, いろいろ試したいですね.

…なんて言ってますが,以前ちらっとご紹介した Solaris10 は, まだどこにもインストールしてません.うー.…が,がんばります.

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

「いますぐ実践! 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

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本