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

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


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

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

今住んでいるマンションは、某F社というプロバイダと契約して、 共有の光ケーブルを介して、インターネットに接続されています。

なんたって光ですので、快適なインターネットライフを満喫ですよ。

…と言いたいところなのですが、どうやらバックボーンがあまり太くないご様子で、 空いているときはいいのですが、夜中手前くらいのピーク時には、 速度が 数KB/sec くらいにまで落ちてしまいます。

この問題は早期に解消されそうにないので、プロバイダを変えようという話が、 マンションの理事会で議題に挙がりました。しかし、

  • マンション全体で1つの契約なので、全員の賛同を得ないと解約することができない。
  • 契約期間は1年単位で、6カ月前までに申請しないと違約金をとられる。
  • 個別契約に変更できるが、一定戸数以上の存続が条件となる。
  • その場合でも、他のプロバイダは、マンション内の Ethernet ケーブルを使用できない。

ということがわかり、一同、唖然…というか、呆れました。

そんなわけで、今後、某F社との全面対決に持ち込まれそうな勢いです。
話が面白い方向に進みましたら、経過をご紹介したいと思います。

…とはいえ、システム管理と全然関係ない話ですね。すみません。

まえおきがまた長すぎましたが、今週も、はりきってまいりましょう!

今週のお題 - /etc/sudoers をすっきりさせる

先々週、先週と sudo について、ご説明しました。

Vol.052 - 管理者の権限を少しだけ与える
http://www.usupi.org/sysad/052.html
Vol.053 - sudo をカスタマイズする
http://www.usupi.org/sysad/053.html

sudo コマンドを使えば、一般ユーザの方々に、管理者の権限を少しだけ (場合によってはたくさん)おすそわけすることができます。
その他にも、sudo コマンドを使う度にメールで通知させたり、 root でも自分でもないパスワードで sudo が使えるようにしたりなど、 いろいろな設定ができる、ということがわかっていただけたかと思います。

しかし、状況に応じてさまざまな設定を追加していきますと、 だんだんと /etc/sudoers が複雑かつ肥大化していってしまいます。
似たような行が連なっていると、わかりにくくて、げんなりしますよね。

というわけで、今週は、/etc/sudoers をすっきりさせる方法を、 ご紹介したいと思います。

…とはいえ、その実体は、各種エイリアスを使うだけだったりします。
あああれのことね、とすべてお見通しな貴兄は、 宿題の彼方まで読み飛ばしていただいて結構です。はい。

さて、エイリアスは、ユーザ、実効ユーザ、ホスト、コマンドに対して、 設定することができます。
それぞれ、User_Alias, Runas_Alias, Host_Alias, Cmnd_Alias を用いて記述します。

記述の仕方は、みんな同じで、以下の通りです。

  なんとか_Alias  名前 = リスト

たとえば、/etc/sudoers に以下の設定があるとします。

  bono,edge,adam,larry  ALL=(postgres,www)  /bin/cat,/usr/bin/less

ここで、ユーザに対するエイリアスを、以下のように設定します。

  User_Alias   LOGWATCHERS = bono,edge,adam,larry

すると、先ほどの設定は、以下のように書き換えることができます。

  LOGWATCHERS  ALL=(postgres,www)  /bin/cat,/usr/bin/less

同様に、実行ユーザに対するエイリアスを、以下のように設定します。

  Runas_Alias  WEP_APPS = postgres,www

すると、先ほどの設定は、以下のように書き換えられます。

  LOGWATCHERS  ALL=(WEP_APPS)  /bin/cat,/usr/bin/less

さらに、コマンドに対するエイリアスを、以下のように設定します。

  Cmnd_Alias   VIEWERS = /bin/cat,/usr/bin/less

すると、先ほどの設定は、以下のようにすっきりします。

  LOGWATCHERS  ALL=(WEP_APPS)  VIEWERS

…ものすごく引き延ばしてしまったような気がしますが、まとめますと、

  bono,edge,adam,larry  ALL=(postgres,www)  /bin/cat,/usr/bin/less

の設定は、以下のように整理することができる、ということです。

  User_Alias   LOGWATCHERS = bono,edge,adam,larry
  Runas_Alias  WEP_APPS = postgres,www
  Cmnd_Alias   VIEWERS = /bin/cat,/usr/bin/less

  LOGWATCHERS  ALL=(WEP_APPS)  VIEWERS

ホストがないね、というご指摘が風の便りで聞こえましたが、 実のところ使う機会がないのではないかと思われますので、割愛しております。

…と、これだけだと、かえって行が増えているだけにしか見えません。
エイリアスの便利さをわかっていただくため、もうちょっとましな例を、 ちゃちゃっとでっちあげてみました。ご覧ください。

  ALL ALL=(root) /sbin/shutdown,/sbin/reboot
  mick,gota ALL=(www,postgres,named,postfix,mail) \
                 /bin/cat,/usr/bin/less
  %users,!mick,!gota ALL=(root) \
                 /sbin/mount,/sbin/umount,\
                 /bin/cat,/usr/bin/less
  %wheel,usu ALL=(ALL) ALL

わざとわかりにくく書いたのでは、という疑惑もありなん、 という感じがしなくもないですが、各行を簡単に説明しますと、以下の通りです。

  • だれでも shutdown, reboot ができる。
  • mick と gota は新人なので、各種アプリケーションのログを見るくらいは許可する。
  • 新人以外の一般ユーザの方々は、システムのログの参照、mount/umount あたりも許可してしまう。(異論はあるかもしれませんが…)
  • 管理者(wheel グループに所属するユーザと usu)は、なんでも許可。

上記でも、わかるひとはわかりますが、エイリアスを使うと、すっきりします。
エイリアスを使って書き換えた例を、以下に示します。

  User_Alias   NEWFACE   = mick,gota
  User_Alias   USER      = %users,!mick,!gota
  User_Alias   ADMIN     = %wheel,usu

  Runas_Alias  SERVICE   = www,postgres,named
  Runas_Alias  MAIL      = postfix,mail

  Cmnd_Alias   SHUTDOWN  = /sbin/shutdown,/sbin/reboot
  Cmnd_Alias   MOUNT     = /sbin/mount,/sbin/umount
  Cmnd_Alias   LOGWATCH  = /bin/cat,/usr/bin/less

  ALL      ALL=(root)          SHUTDOWN
  NEWFACE  ALL=(SERVICE,MAIL)  LOGWATCH
  USER     ALL=(root)          MOUNT,LOGWATCH
  ADMIN    ALL=(ALL)           ALL

結果的には長くなっていますが、意味は最後の4行に集約されていますので、 わかりやすくなっていると思います。
それに、メンバーやルールの変更の際にも、どちらかを変更するだけですので、 脳ミソが混乱しなくて済みます。

以上、sudo 三部作の最終章を、お伝えしました。
最終章にふさわしい内容だったかどうかはともかく、 sudo 自体はとっても便利ですので、是非使ってみてください。
ただし、設定によっては、セキュリティ上好ましくないことになる可能性もあります。 取り扱いには、ご注意ください。

宿題の答え

先週の宿題は、

  以下の条件を満たすよう、/etc/sudoers に設定を追加してください。

  1. heidi ユーザは、root のパスワードで sudo を実行できる。
  2. clara ユーザが sudo を実行する度に、メールで通知する。
  3. パスワード認証に失敗して sudo を実行できなかったとき、メールで
    通知する。
  4. 通知メールの送付先は、admin とする。

でした。(わかりやすくするため、番号をふりました。)

まず、1. の項目は、heidi ユーザのみ root のパスワードを用いますので、 以下のように設定します。

  Defaults:heidi  rootpw

次に、2. の項目は、clara ユーザのみ、実行の度にメールで通知ですので、 以下のように設定します。

  Defaults:clara  mail_always

そして、3. の項目は、すべてのユーザに対して、 パスワード認証に失敗の際にメールで通知ですので、以下のように設定します。

  Defaults        mail_badpass

最後に、4. ですが、mailto を admin にすればよいので、 先ほどの 3. の設定に mailto を追加します。

  Defaults        mail_badpass,mailto=admin

以上、4つをまとめますと、以下の通りです。

  Defaults:heidi  rootpw
  Defaults:clara  mail_always
  Defaults        mail_badpass,mailto=admin

しつこいですが、必ず visudo コマンドを用いて、編集してください。

今週の宿題

今週の宿題は、

  sudo コマンド実行時に、リダイレクトしたファイルは、誰の持ち物に
  なるでしょうか?

です。

たとえば、以下を実行したとします。

  % sudo cat /var/log/messages > /tmp/messages

このとき、/tmp/messages の所有者がどうなるのか、ということです。
やってみれば瞬時にわかります。やらなくてもわかるかも…ですが。

あとがき

本業の負荷が高まる中、古い PC に Debian を入れたり、 VMware Player 上で NetBSD を動かしたりしていました。

後者は、NetBSD のお試し環境が必要だったからなのですが、本業にせよ趣味にせよ、 いろんなお試し環境が必要になることが多いです。

わたしの場合、以前ご紹介した VMware Player をフル活用しています。

VMware Player
http://www.vmware.com/products/player/

しかし、ぽんぽんぽんぽんいろんな環境を作っていると、 あっという間に HDD の空き容量がなくなってしまいます。

ですので、古い PC をファイルサーバにして、あまり使わないお試し環境を、 そのファイルサーバへ移動させることにしました。
前者は、そのために必要だったわけですね。

こういう PC エミュレータのいいところは、どこに持っていっても、 同じように動いてくれるところです。
マシンを買い替えて使う OS が変わっても、エミュレータが同じソフトであれば、 そのまま動いてくれます。ああ、便利ですよね。

そういえば、マイクロソフトが、Microsoft Virtual Server 2005 R2 というモノを、 無償で公開していますね。

Microsoft Virtual Server 2005 R2
http://www.microsoft.com/japan/windowsserversystem/virtualserver/

XP Professional SP2 でも動くようなのですが、使える環境が未だに SP1 なので、 試すには至っていません。

しかし、この調子でいけば、OS は仮想環境を提供するだけになって、 その上で使いたい OS を使うようになるんじゃないか、という気がします。

さて、そんなわけで、4月早々いろいろと忙しかったりしますが、 来週もナニかをお伝えしていく所存でございます。
予定では、今さらながら Apache あたりをネタにしてみようかなと思っていますが、 全然違うネタにするかもしれません。(どっちやねん)

あまり期待せずに、でも解除せず、引続き読んでいただければ幸いです。

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

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

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本