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

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


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

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

今週の金曜〜土曜は、よめと子どもが、旅行に行っていました。
言い方はあまりよくありませんが、その間は自由な時間です。(^ε^)

こんなとき、普段できないことをいろいろやろうと思っても、 たいていは大半が達成できずに終ってしまい、 後悔することが多かったと思います。
ですので、今回は、これだけはやろうとか計画を立てないで、 のほほんと過ごしてみました。

案の定、たいしたことはできませんでしたが、 やろうと思っていたことをやれなかったなー、ということもありませんでした。
考え方としては負けっぽいですが、たまにはこういうのも悪くないかも、 と思っております。

そんなこんなで、あっという間に日曜日の夜(夜中)ですね。

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

今週のお題 - sudo をカスタマイズする

先週は、sudo の使い方を簡単にご紹介しました。

Vol.052 - 管理者の権限を少しだけ与える
http://www.usupi.org/sysad/052.html

これだけでも、 ユーザ様とシステム管理者の双方が幸せになれる可能性が高いのですが、 これだけでは満足されず、イリーガルな要求をされたり、 アンビリバボーな状況が発生してしまうのが、世の常人の常です。

パスワード入力は何回まで許したいとか、 パスワード認証できなかったらメールで通知して欲しいなど、 いろいろなワガママにも、sudo さんは、 誠心誠意をもってちゃんと答えてくれます。

というわけで、今週は、sudo の一歩進んだ活用方法を、ご紹介します。
…と書くと、なんだかすごそうですが、その実体はコネタ集のようなモノです。 気軽に読んで、気になったコネタを試してみてください。

さて、/etc/sudoers には、前回ご紹介した記述以外に、いろいろな設定があります。 その中に、Defaults という、デフォルトの値を変更することのできるものがあります。

Defaults の書式は、以下の通りです。

  Defaults         設定1,設定2,...

この場合、すべてのユーザに対して効果があります。
効果を特定のユーザに絞りたいときは、: の後にユーザを付加します。

  Defaults:ユーザ  設定1,設定2,...

今週は、これを使って、いろいろいじくってみたいと思います。

まずは、メールによる通知について、いろいろ試してみましょう。

mail_badpass は、パスワード認証に失敗したとき、 mailto で指定されたアドレスにメールを送信するという設定です。
たとえば、以下の1行を/etc/sudoers に追加すると、 パスワードを間違えて実行できなかったとき、 mailto のユーザ(デフォルトは root)にメールを送信します。

  Defaults  mail_badpass

そのメールは、以下のようなものです。

  From: usu
  To: root
  Subject: *** SECURITY information for tamao ***

  tamao : Apr  8 21:54:56 : usu : 3 incorrect password attempts ; \
  TTY=pts/1 ; PWD=/home/usu ; USER=root ; COMMAND=/usr/bin/less

送信先を、root ではなく、たとえば usu@usupi.org にしたければ、 以下のように、mailto で指定します。

  Defaults  mail_badpass,mailto="usu@usupi.org"

Subject を変更したい場合は、以下のように、mailsub で指定します。

  Defaults  mail_badpass,mailto="usu@usupi.org",\
            mailsub="[sudo] %u@%h"

%u は sudo を実行したユーザ名、%h はホスト名に置き換わります。
ちなみに、行末に \ を記述すると、上記のように、複数行に渡って記述できます。

パスワードを間違えたときではなく、sudo の実行の毎にメールで通知したい場合は、 mail_badpass ではなく、mail_always を指定します。

  Defaults  mail_always
sudo を使うひとがたくさんいると、かなりうっとおしいかもしれませんが、 それほどでもなければ、万が一のために、仕込んでおいてもいいかもしれませんね。

次は、パスワードに関する設定内容です。

passwd_tries は、パスワードを入力できる回数の設定です。 デフォルトでは3回間違えると失敗しますが、

  Defaults  passwd_tries=5

こう設定すると、5回まで間違えられます。

rootpw は、sudo を実行したユーザのパスワードではなく、 root のパスワードを要求するための設定です。

  Defaults  rootpsw

と設定すると、root のパスワードを入力したときに、sudo の実行が許可されます。

自分でも root でもない、別のユーザのパスワードを要求したい場合は、 runaspw と runas_default を指定します。

  Defaults  runaspw,runas_default=peter

と設定すると、peter のパスワードを入力したときに、 sudo を実行することができます。
ただし、-u オプションを指定しない場合のデフォルトが、 root ではなく peter になります。 root で実行したいときは、以下のように -u をつけて実行しましょう。

  % sudo -u root less /var/log/messages

面倒ですが、 root でも自分でもない第3者のパスワードで sudo が実行できてしまうところが、 面白いですね。

他にも、いろいろ面白い設定がありますが、 この調子で書いているときりがありませんので、 このへんで終わりにしたいと思います。
他の設定については、オンラインマニュアル(man 5 sudoers)を見て、 試行錯誤してみてください。たいていのワガママには、応じてくれますよ。

宿題の答え

先週の宿題は、

  あなたが、root 以外のユーザの権限ではすべてのコマンドを実行でき、
  root の権限では /bin/cat だけを実行できるように、/etc/sudoers に
  設定を記述してください

でした。

実行ユーザが root のときは、/bin/cat だけを実行できますので、 以下を /etc/sudoers に追加します。
(以下の回答例では、「あなた」は usu です。
以下を実際に試すときは、自分のユーザ名に置き換えてください。)

  usu  ALL=(root)       /bin/cat

そして、実行ユーザが root 以外のときは、すべてを実行できますので、 以下を追加します。

  usu  ALL=(ALL,!root)  ALL

上記の2行を、visudo コマンドを使って、/etc/sudoers に追加すれば、 完成です。

ちなみに、

  usu  ALL=(ALL)   ALL
  usu  ALL=(root)  /bin/cat

この並びなら、宿題の答え通りに動作します。
ですが、

  usu  ALL=(root)  /bin/cat
  usu  ALL=(ALL)   ALL

この並びだと、root ですべてのコマンドが実行できてしまいます。
間違いがあるといけませんので、

  usu  ALL=(root)       /bin/cat
  usu  ALL=(ALL,!root)  ALL

としておいたほうが、長生きできるのではないかと思います。

今週の宿題

今週の宿題は、

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

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

です。

ひねりのない宿題ですみません…。

あとがき

書くことが思いつかないので、最近読んだ本をご紹介します。

使える 弁証法
http://www.amazon.co.jp/exec/obidos/ASIN/4492042423/usupiorg-22

強引に要約してしまえば、ヘーゲルの弁証法を使うと、 これから何が注目されるのか、時代がどう変化するのか予測できますよ、 という本です。

物事は、消えてしまった古いものが形を変えて(発展しながら)復活するという、 「螺旋的発展」の法則を含めて5つの法則を、いろいろな例をおり混ぜながら、 わかりやすく教えてくれます。

とにかく、読みやすい本です。 わたしは、名古屋〜品川間を新幹線で往復している間に、読めてしまいました。

時代の先を読むぞ! とか考えるとややこしいですが、 消えていったものにどんなものがあったのか、そしてどうなると復活しそうか、 といったことを、気軽に考えてみると面白いのではないか、と思っています。

また、Amazon のカスタマーレビューを見ると、星の数がすごくまちまちなのが、 賛否両論って感じで面白かったです。

さて、今週は、いかがでしたでしょうか。
来週も、sudo ネタで行ってしまおうかと思っていますが、 読者のみなさまに愛想をつかされたり、もっといいネタを思いついたら、変更します。

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

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

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本