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

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


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

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

今週は、10年ぶりくらいに、スーツを買いに行きました。

スーツは、客先に出かけるときにしか着ませんので(ひどいときは、 半年くらい着る機会がありません)、学生時代や新入社員時に買った数着を、 せっせと着回していました。

しかし、さすがに、バブル末期の頃に買ったものばかりでは、 デザインが古すぎるようですので、いいかげん1着買い足すことにしました。

もともと、時代の最先端という言葉に無縁ですので、スーツも無難に普通のものを、 と思ったのですが、いまどきの普通は、 3ツボタンのタイトなデザインのものだということを、 いまさらながらに知りました。
また、店員さん曰く、今は 2ツボタンが流行っているそうで。

3ツボタンといえば、10数年前購入したときに、流行っていたという記憶があります。 わたしは頭が大きいので、無難に2ツボタンを選択しましたが、 いつのまにやら、立場が逆転していたとは…。

先週に引き続き、年齢を感じさせられた次第です。
これからは、もう少し、街中や周囲のひとの服装を、 注意深く観察しないといけないな、と思いました。

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

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

先週、PAM の設定の読み方を、簡単にご紹介しました。

Vol.105 - PAM の設定を理解する
http://www.usupi.org/sysad/105.html

とはいえ、英語を聞きとることと話すことが違うように、 設定を理解することと変更できることとは違う、と言えるのではないかと思います。

設定を変更できなくても、認証が絡むトラブルが発生したときに、 設定を確認することはできます。それだけでも、後輩たちから、 羨望の眼差しでみられる、という可能性はあるでしょう。

しかし、ここは、もっと積極的に、環境にあわせた設定にするなどして、 ユーザのかたがたを、より幸せに導いてあげることが、 システム管理者の勤めであると言っても過言ではないと思うのですが、 いかがでしょうか。

というわけで、今週は、PAM の設定をいじくって、後輩たちの羨望の的に…ではなく、 ユーザのみなさんをより幸せにしてあげたいと思います。


今週は、以下のような実例を示すことで、 書いた気になっていただこうと思っております。
(もちろん、実際に試せば、触れるようになれると思います。)

  1. UID, GID などが特定の条件のときに、許可(あるいは拒否)する。
  2. 認証前後に何かメッセージを出力する。

PAM のモジュールはたくさんありますが、説明をなるべく短くするため、 使いかたの簡単なモジュールにしぼってみました。

一見すると、役に立つかどうか微妙な例ばかりではないか、と感じるかもしれません。 でも、それには、上記のような大人の事情があったのだ、ということを、 頭の片隅にでも置いといていただけますと、幸いです。


まずは、ユーザIDやグループIDなどの条件を指定できる、 pam_succeed_if をご紹介しましょう。

たとえば、ユーザIDが100以下のひとには許可したくない場合は、 account のどこかに、以下の1行を入れます。

  account    required     pam_succeed_if.so uid > 100

ユーザID(uid)が、100より大きい必要がある、という条件ですね。
グループIDが、1000〜9999の範囲でないといけないときは、 以下のように複数行で指定します。

  account    required     pam_succeed_if.so gid >= 1000
  account    required     pam_succeed_if.so gid < 10000

他にも、ログイン名(login)やシェル(shell)、 ホームディレクトリ(home)に対する条件も指定できます。
たとえば、ログイン名が "test" で始まるひとには、許可を与えたくないなら、 以下のように指定しましょう。

  account    required     pam_succeed_if.so login !~ test*

 

account の例ばっかりになってしまいましたので、別の例を示します。

ログイン名が usu で始まるひとは、ユーザ認証なしで使えるようにするには、 pam_unix の行の手前に、以下を追加します。
(現実的なシチュエーションとは、口がさけても言えませんが…。)

  auth       sufficient   pam_succeed_if.so login =~ usu* use_uid

use_uid は、ユーザ認証を行う前の、 そのプロセスを実行しているユーザを対象にする、というオプションです。
たとえば、su コマンドの場合、コマンドを実行したひとが usu で始まる名前であれば、 パスワードを入力することなく、許可が得られます。

ですから、今までの account の例では、 su などで他のユーザになった後のユーザに対して、 評価が行われることになります。
もし、もとのユーザの名前が "test" で始まるひとに使わせたくない場合は、 以下のように、use_uid をつける必要があります。

  account    required     pam_succeed_if.so login !~ test* use_uid

ただ、この場合、パスワードを入力した後に、拒否されます。 パスワード入力の機会も与えず、にべもなく拒否するには、 auth の pam_unix の行の手前に、以下を追加しましょう。

  auth       requisite    pam_succeed_if.so login !~ test* use_uid

以降が評価されないように、requisite を指定しています。

 

pam_succeed_if は、syslog にいろいろ出力してくれます。 意図したように動作してくれないときは、/var/log/secure あたりを確認しましょう。


…ああ、のっけから詰め込み過ぎですね。すみません。

次に、メッセージを出力するだけの、pam_echo をご紹介します。
ただ単に、指定した文字列を出力するだけのひとです。

たとえば、ユーザ認証をパスした後に、Welcome! 的なものを出力したい場合は、 session に以下を追加してください。

  session    optional     pam_echo.so Welcome to %h!

ここで、%h は、そのマシンのホスト名に置換されます。
たとえば、/etc/pam.d/su に、上記を追加すると、こうなります。

  % su -
  パスワード(P):
  Welcome to ホスト名!
  #

他にも、%H でリモートホスト名とか、%u でユーザ名とかがありますが、 詳しくはオンラインマニュアル(man pam_echo)をご覧ください。

また、ファイルの内容を出力することもできます。
しょっぱなに /etc/issue の中身を出力したい場合は、auth の最初の方に、 以下を追加してください。

  auth       optional     pam_echo.so file=/etc/issue

たとえば、/etc/pam.d/sshd に追加すると、こうなります。
(ちなみに、これは Vine Linux 4.1 の場合の例です。)

  % ssh 自分のマシン

  Vine Linux 4.1 (Cos d'Estournel)
  Kernel 2.6.16-0vl66 on an i686

  Password: 

 

とはいえ、やや決まり文句を出力するだけのひとですので、 あんまり役に立たないのでは、と思われるかもしれません。
しかし、個人的には、デバッグ目的に使えるのでは、と思っております。

というのも、pam_echo を要所に追加しておくと、どこまで評価されたのかが、 出力されるメッセージでわかるからです。
(C言語でいうところの、printf デバッガみたいなものですね。)

というわけで、困ったときには、pam_echo をいっぱい挿入しましょう。


以上、PAM の設定をいじくってみました。

PAM はやや地味な存在ですが、調べたり試したりしていると、 意外と興味深いように思います。ニーズを見つけ出して、いじくってみてください。

また、過去にも、PAM に関するネタは、いくつかご紹介していました。
よろしければ、さっと斜め読んで、試してみていただけますと幸いです。

Vol.056 - パスワードチェックを厳しくする
http://www.usupi.org/sysad/056.html
Vol.057 - ログイン時間を限定する
http://www.usupi.org/sysad/057.html
Vol.064 - システム管理ツールを気軽に使う
http://www.usupi.org/sysad/064.html
Vol.104 - wheel グループを活用する
http://www.usupi.org/sysad/104.html

宿題の答え

先週の宿題は、

  以下の2行を、1行にまとめてください。

  auth            sufficient      pam_unix.so
  auth            required        pam_deny.so

でした。

ようするに、pam_unix によるユーザ認証に失敗したら拒否されるという設定ですので、

  auth            required        pam_unix.so

だけでよいのではないか? …と思うのですが、いかがでしょうか。
あるいは、

  auth            requisite       pam_unix.so

でも同様ではないか、という気がします。

今週の宿題

今週の宿題は、

  auth, account, password もしくは session の行がないとき、認証は
  成功するでしょうか。また、/etc/pam.d にファイルがない場合はどう
  でしょうか。

です。

前者はちょくちょく試しましたが、後者はいまぱっと思いつきました。
知ってて損はないと思いますので、調べておこうと思います。
試せばわかることだと思いますので、ぜひ実行してみてください。

あとがき

先週のあとがきに、グラフの画像の URL を書きましたが、他からリンクされていない、 自サイトの URL を書くと、あることがわかります。

それは、直接的には、あとがきをちゃんと読んでいるひとの数です。

たまに、アマゾンなどのリンクをつけることもありますが、アマゾンですと、 その本に興味を持ったひとしか、アクセスしないと思います。

しかし、先週の画像の場合、画像を見ないと話がよくわかりませんので、 読んでいるひとなら、ほぼ間違いなくアクセスする、と思われます。
(いまどき、HTTP で外部にアクセスできないひとは、ほとんど皆無だろうと思いますので。)

場合によっては、あまり知りたくない情報とも言えるのですが、 ちょっと気になりましたので、書いてみることにした次第です。

 

…というわけで、なんやかんやと引っ張りましたが、注目の結果は、

15人

でした。

目が覚めました。もっと勉強して、考えるようにしたいと思います。

もし、万が一、読んだけど画像は見てないよ、というかたがいらっしゃいましたら、 お手数ですが、ご連絡いただけますと、感動して泣いてしまうかもしれません。

 

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

 

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

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

「栗日記」−毎日栗の絵を描いていますが、もうすぐ2000枚です。
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)
http://usupi.seesaa.net/ (栗日記ブログ)


[バックナンバーのトップへ] [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

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本