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

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


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

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

食品のおまけというよりも、食品がおまけじゃないのかと、誰もが思うであろう食玩。 今や、コンビニやスーパーなどで、当たり前のように見かけるようになりました。

食玩って、そんなに欲しいものでなくても、 ちょっとでもいいなと思うとついうっかり買ってしまいますよね。 (あ、そんなことないですか…)

そこでふと思いました。往年のワークステーションの食玩があると、 意外と売れるのではないでしょうか。

わたしだったら、Sun や SONY NEWS、SGI があれば、 まず間違いなく大人買いすると思います。使ったことのあるやつが全部揃うまで、 買います。
あと、シークレットは、DEC の VAX あたりがいいかななんて思います。

そう考えると、歴代の Mac や AppleII なんてのも、売れそうですね。
シークレットは、NeXT Cube か Lisa あたりで。NeXT は Apple じゃないですが。 (でも、わたしなら、NeXT が出るまで買いますね。)

…迫り来る納期に狼狽しながら、そんなことを考えていました。
しかし、忙しいときほど、 どうでもいいことに頭脳を浪費してしまうのはどうしてなんでしょうね。 かしこくなりたい、と思います。ほんとに。

それでは、今週も、はりきってまいりましょう!

今週のお題 - メーリングリストのメンバーを知る

はい、正直に申しますと、気持ちに余裕がなく、いっぱいいっぱいの状態でした。 いや、今もです。今週は、ネタを考えられませんでした。

ですので、読者の方からのご要望を、あっさり採用させていただきます。

前々回、お手軽なメーリングリストの作り方を、ご紹介しました。

Vol.041 - メーリングリストを作る
http://www.usupi.org/sysad/041.html

メーリングリストがあると、そのアドレスに送るだけで、 いろんなひとにメールが出せます。おおすごい、便利ですね。みたいな話でした。

しかし、メンバーにどういうひとがいるのか、わからないと困る、 ということもあるのではないかと思います。
あるひとに知られるとまずい(?)情報を送らなければならないときや、 このひとには送っておかないといけない、といった大人的な事情のある場合に、 事前にメンバーを確認できると、安心できます。

というわけで今週は、メーリングリストのメンバーを、 メンバーのひとがわかるような仕組みを、ずばり、実現したいと思います。

さて、今回実現するモノですが、以下のようにしたいと思います。

  あるアドレスにメールを送ったとき、送り主がメンバーの一員であれば
  メンバー一覧をメールで送り返す。(メンバーでなければ無視)

ということは、あるアドレスにメールが来たときに、何かをさせる必要がありますね。

これは、エイリアスファイルで実現できます。
以下のように、| のあとにコマンドを指定すると、メールの内容を、 指定したコマンドの標準入力に渡して、コマンドを実行してくれます。

  アドレス: |コマンド

引数がある場合は、二重引用符で囲みます。

  アドレス: "|コマンド 引数..."

例えば、testml-ctl 宛のメールを、/usr/local/sbin/mlanswer.pl というコマンドに、 testml という引数をつけて渡したいときは、以下のようなエントリを、 エイリアスファイルに追加します。
(大抵は /etc/aliases ですが、念のため確認してから追加しましょう。)

  testml-ctl: "|/usr/local/sbin/mlanswer.pl testml"

追加したら、newaliases の実行をお忘れなく。
(前々回も書きましたが、MTA が exim の場合は不要です。)

では、あとは、/usr/local/sbin/mlanswer.pl を作るだけですね。
このコマンドで行うべきことは、以下だと思います。

  1. メールの送り主を抽出する。
    メールのヘッダから、From: で始まる行を見つけ、アドレス部分を抜き出します。 (関係のない部分を削るのがやや面倒です)
  2. 送り主がメーリングリストのメンバーかどうかを判定する。
    メーリングリストのファイルを開き、 1. で抽出したアドレスがその中に含まれるかどうか確認します。
  3. メンバーの一員なら、メンバーのリストをメールで送る。

これを、いつものように、Perl で書いてみました。
ここに載せて、逐一説明するのは気がひけますので、お手数ですが、 以下をご覧ください。

メンバーなら一覧をメールで送る Perl スクリプト
http://www.usupi.org/sysad/043-1_pl.txt

このファイルを、/usr/local/sbin/mlanswer.pl というファイル名で保存してください。 (chmod 755 などで実行権もつけてください。)

testml-ctl 宛に、空でもなんでもいいのでメールを送りますと、 送り主(つまりあなた)がメンバーなら、以下のようなメールが送られてきます。

  From: root@usupi.org
  To: usu@usupi.org
  Subject: testml members

  edward@usupi.org
  alphonse@usupi.org
  winry@usupi.org
  usu@usupi.org

以上で、メーリングリストのメンバーがわかるようになりました。

いかがでしたでしょうか。
Perl スクリプトの説明が全くありませんが、 コメントをびしばし入れておきましたので、 それを手がかりにしていただければと思います。

宿題の答え

先週の宿題は、

  ログインシェルが rbash の場合に、制限を解除する方法を、考えてみて
  ください

でした。

ようは、制限のないシェルを起動できれば、制限を解除できます。
2つばかし例を示します。

まず1つ目は、Perl を使う方法です。
運よく perl が実行できれば、以下のようにシェルを起動することができます。

  -rbash-2.05b$ perl -e 'exec "/bin/sh"'
  sh-2.05b$ /bin/ls
  bin  execsh.c

あっけないほど簡単ですね。

もう1つは、C 言語でプログラムを書いてしまう方法です。
コンパイラなど(cc, as, ld)が実行できて、 カレントディレクトリにあるコマンドも実行できる場合に、シェルを起動できます。

  -rbash-2.05b$ cat execsh.c
  #include 
  #include 

  int main() {
        execl("/bin/sh", "sh", NULL);
        return 0;
  }
  -rbash-2.05b$ cc execsh.c
  -rbash-2.05b$ a.out
  sh-2.05b$ /bin/ls
  a.out  bin  execsh.c

前提条件がかなり厳しいですが、そんな方法もあるのねと思って見逃してくださいませ。

今週の宿題

今週の宿題は、

  メーリングリストのメンバーを、WWW で参照できるようにしましょう

です。

WWW サーバは、Apache を前提とします。
わたしは、セキュリティを一切考えないお手軽なものと、それなりに考慮したものを、 考えておこうと思います。

あとがき

そんなわけで、少なくとも1月中はいっぱいいっぱいな感じです。

ですので、ここのところ、精神的な支援となるモノを、読んでいました。
すべて、無料レポートというところが、われながらせこいですが。

成功者実践講座
http://happyjinsei.com/

幸せ成功力を日増しに高めるEQコーチング! 毎日読めば目標達成力を多角度から強化できます!
http://coaching.livedoor.biz/

いずれも、無料ブックとか無料レポートというところをたどれば、 PDF の読みものを入手できます。

大雑把にカテゴライズすると、 いわゆる成功法則的なものの範疇に含まれるのだと思います。

ただ、読んでいますと、きついときでもがんばろうという気になります。
5年10年と先のことを考えることも必要ですが、 まず目の前の仕事をきちんとこなすことも大事ではないか、と思えるようになりました。

ちなみに、前者は、ときどきメールが送られてくるようになります。
要所要所に、うすださん、と挿入されていて、ちょっと照れるのですが、 直接やさしく話しかけられているようで、悪い気はしないです。

で、先週からがんばるとかなんとか言いましたが、すみません、来週は、 お休みをいただきたいと思います。
ちょっとほんとにがんばらないといけない状況ですので…。
(1日が48時間になったら、来週も発行します。)

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

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

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本