PAMという語からカナダの某ブロンド女優を連想する人もいるかもしれないが、このサイトの読者ならLinuxセキュリティの基本的な要素であるPluggable Authentication Modulesだとわかるはずだ。本稿では、こちらのPAMのしくみを説明し、ちょっとした使用例を紹介する。 もしLinuxのアプリケーションごとに独自の認証ロジックを用意しないといけないとしたら、大変なことになっていたはずだ。すべてのアプリケーションに同じチェック機構が実装されていることを、どうすれば保証できただろうか。また、追加の制御機能はどのように実装できただろうか。 PAMは、こうした問題に対するシンプルな解決策だ。ユーザの認証を必要とするプログラムは、PAMのAPIを呼び出すだけでよい。あとは、PAMの設定ファイルに記述されたルールに従って、APIの向こう側が必要なチェックを行ってくれる。認証のメカニ
Red Hatディストリビューションでは、ユーザー認証のためにPAM(Pluggable Authentication Modules)と呼ばれるモジュールが用意されている。 通常、サーバに接続する際には認証プログラムが動作して各サービスへ接続される。この認証部分のみを独立させることで各サービス(ftpdなど)ごとに基本的な認証設定をしなくて済むよう配慮されているのだ。各サーバソフトをリコンパイルする必要なく、PAMサポートという形で共通のユーザー認証が実現できる。 認証に関わる設定ファイルは、/etc/pam.d/下に用意されている。プログラムに認証モジュールをプラグインする形で制御を行っているのだ。下のファイル構成例は、Red Hat Linux 6.2のものである。 $ ls -l /etc/pam.d/ total 19 -rw-r--r-- 1 root root 336 Se
I, newbie » cfengineによるシステム管理の自動化: その1 を読んで、cfengine よさげだなぁ、ってことで導入を検討することに。 このブログでは、上記エントリで「ややこしいけど魅力的」と書かれている cfengine について、自分なりに試したことや整理したことについてメモしていこうと思います。日本語のドキュメントが少ないですし、実際に手を動かしてみないと理解しにくいものなので、これを使ってみようかな、という方に少しでもお役に立てれば幸いです。 まず、cfengine ってそもそも何?というところですが、上記の I, newbie さんのエントリがわかりやすいので省略。今回は cfengine の構成パターンについて整理してみます。 単一マシンで利用するパターン 単一のマシンで cfengine を実行します。実際にこのパターンで運用することはない(cfengine
先日、ちょっとした遠隔教育をする必要があった。Linux上でソフトウェアをビルドするデモを見せて欲しいと同僚が言ってきたのだ。問題は一つ。私が東海岸、彼が西海岸にいたことだ。さて、ビルドとインストールの方法をどうやって彼に見せようか。いくつかの候補を検討した結果、私たちはGNU Screenを使うことにした。 私たちが最初に考えた候補は、標準Unixユーティリティのscriptを使ってログをとるという案だ。しかしscriptはいくつかの問題点を抱えている。例えば、結果の出力がすさまじい(scriptは、キャリッジリターンや訂正を含めた何から何までを保存する)という、無視しがたい問題点がある。加えて、scriptではインタラクティブ性が完全になくなる。同僚が質問したかったり、説明を必要としたら、後から電子メールでのやり取りが必要になっただろう。これでは彼にとっても私にとってもイライラが募る。
.screenrc設定ファイルで使用できるコマンドについて記述してあります。 これらのコマンドは、設定ファイルに記述する他 screen実行中に colon (:) コマンドにより実行することもできます。 .screenrcコマンド一覧 3.7.6対応 acladd acladd usernames 現在のscreenセッションにアクセスできるユーザーを設定します。 このコマンドはマルチユーザモードのみで使用できます。 aclchg aclchg usernames permbits list 現在のscreenセッションにおいてユーザーのアクセス権を設定します。 このコマンドはマルチユーザモードのみで使用できます。 acldel acldel username 現在のscreenセッションから指定したユーザーのアクセス権を削除します。 このコマンドはマルチユーザモードのみで使用できます。
概要 screenを使うことで一つのコンソール画面を複数の異なる端末で共有し共同作業をおこなうことができます。 Windowsで例えるならばアプリケーション共有。 VNCによるリモートデスクトップ共有。 googleドキュメントで例えるならば共同編集でしょうか。 共有手順 画面を共有する側でセッションを作成する わかりやすさのために、セッションに名前をつけて作成します。 -Sオプションをつけることでセッション名を指定できます。 $ screen -S セッション名 セッションに参加する(アタッチ) スクリーンを複数の端末で共有するためにマルチユーザーモードでセッションに参加します。 -xオプションをつけることで、複数の端末から同一セッションに参加可能となります。 $ screen -x セッション名 ※シングルユーザーモードだとひとつの端末しかセッションにアクセスできません。 シングルユー
This tutorial assumes no previous knowledge of scripting or programming, yet progresses rapidly toward an intermediate/advanced level of instruction . . . all the while sneaking in little nuggets of UNIX® wisdom and lore. It serves as a textbook, a manual for self-study, and as a reference and source of knowledge on shell scripting techniques. The exercises and heavily-commented examples invite ac
プロジェクト発足から約8年半、ついにバージョン1.0へ到達した「VLC」 VideoLANプロジェクトは7月7日 (フランス時間)、オープンソースのマルチメディアプレイヤー「VLC media player 1.0.0」を正式公開した。WindowsとMac OS X用バイナリパッケージのほか、各種UNIX系OSやWindows CE向けのコンパイルも可能なソースコードがGPLv2のもと公開されている。 VLCは、多数のコーデックをサポートしたマルチプラットフォーム指向のマルチメディアプレイヤー。2001年にフランスの高等教育機関エコール・セントラル・パリの学生により開発がスタート、当初はVideoLAN Clientという名称のストリーミング映像受信用クライアントと位置付けられていたが、多数のコーデックに対応するマルチメディアプレイヤーとしての機能を強化する方針に転換。FFmpegなど外
fileコマンドを利用すると、特定のファイルがバイナリであるか、テキスト形式であるかなどが調査できる。 # file /usr/sbin/httpd /usr/sbin/httpd: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses sharedlibs), stripped このELFとは「Executable and Linking Format」の略であり、Red Hatを始めとするLinuxディストリビューションの多くでは標準バイナリ形式として採用されているものだ。 従来までは「a.out」「COFF」(Common Object File Format)と呼ばれるバイナリフォーマットが占めていたが、ELFでは動的な共有ライブラリの利用と、C++言語のサポートが容易という利点が挙げ
ここでは、ログの肥大化を防ぐためのログのローテーションについて解説していきます。syslog や他のプロセスが出力するファイルは放置していくとどんどんサイズが大きくなり、ディスクスペースを圧迫していきます。インストール時は/var ディレクトリのディスク占有率が0%であっても、数週間、数ヶ月経過するごとにあっという間に占有率が増大していることに気がつくと思います。しかし、これらの出力されるログを何世代分ローテーションさせるかといったことを予め決めておけば、指定した以上のファイルは作成されなくなり、その中でログがローテーションされていくのでログサイズの肥大化を防止することができるのです。RPMでパッケージをインストールしている方は、ほとんどログのローテーションをカスタマイズする必要はありませんが、ソースからコンパイルしてインストールした場合には、ログのローテーションは必須の作業となります。ま
ログファイルの扱いはシステム管理の中でも重要な物の1つだ。「ログファイル」とひと口にいっても幾つかの種類があり、システムログ(messages)、Apacheのアクセスログ(access_log)、Cron、ftp、Sambaなどが挙げられる。日ごろからそれぞれの使用頻度を監視して、ログファイル容量が肥大化し過ぎないよう管理しなければならない。 このような状況が考慮され、Linuxディストリビューションのほとんどには「logrotate」と呼ばれるログを自動的に回す(ローテート、詳細後述)ツールがRPMパッケージで用意されている。このツールを使いこなすことができれば、Apacheの場合「Apacheのログファイルを定期的に分割させたい~rotatelogs編~」や「Apacheのログファイルの肥大化を回避させたい」で紹介したような対処が不要になる。 logrotateがRPMでインストール
Linuxでは多くのログが採られますが、そのままにしておくとログファイルが肥大化してしまいがちです。 ここで説明するlogrotateとはその名の通りログをローテーションするためのツールで、ログファイルのサイズを抑え、 ログを整理することができます。 RedHatLinuxのデフォルトでは syslog によって吐き出されるログファイルは一週間ごとに改名されて保存されます。 例えば、/var/log/messages というファイルは /var/log/messages.1 に改名され、 その後のログは新規作成された /var/log/messages に記述されるようになります。 そして、次の週には /var/log/messages は /var/log/messages.1 に、/var/log/messages.1 は /var/log/messages.2 に改名されます。 ま
404 - ユメイサオスホトシサソツシ。」 ト昮ェイ鰈メオトラハヤエソノトワメムアサノセウ」ャメムク�クトテ﨤ニサ゚ヤンハアイサソノモテ。」
Copyright (c) 2001 Koichi OKADA まず「取扱説明書」をお読みください。 はじめに diff/patch とは diff というのはファイルの差分を作成するツール、 patch というのはファイルの差分からファイルの変更を再現するツールです。 通常 diff で作った差分ファイルをパッチ(ばんそうこう)と呼びます。 ライセンス 多分、気にしなくて良いです。 準備 UNIX の場合 通常 UNIX には diff と patch は標準で入っています。 特に準備はいらないはずです。 Windows の場合 一番手っ取り早いのはcygwinを入れることです。 cygwin はでか過ぎるとか cygwin はちょっとって言う人は vector辺りで win32 native な rcs/diff と patch を 取って来る
前回は概要を説明した。今回はとりあえずcfservdを起動できるところまで。 cfengineはややこしい。cfservdにcfagent、それにsubversionとcfagentが動作する各ホストのOSおよびdaemonなどを連携させるのだから、環境を作るだけでもおのずと複雑になる。なので、いきなり完全な環境を構築しようとせずに、少しずつcfengineの環境に移行していくのがおすすめ。ゆくゆくはOSのインストールから環境構築までをcfengineだけで実行することも可能なので、ひとつひとつ確実に理解したい。 前提はつぎのとおり。 FreeBSD 6-STABLE cfengine-2.1.20 管理対象のネットワークは10.0.0.0/24 すべてのIP addressに対して適切なPTRが引ける(重要) repositoryは/usr/local/etc/cfengine以下に置く
strace システムコールをトレース。カーネルと何を話しているか。 strace -p PID でプロセスにアタッチ。実行中のプロセスをトレース。 straceを使ったデバッグ - SourceForge.JP Magazine : オープンソースの話題満載 Linuxカーネルの作り出す世界 − @IT自分戦略研究所 - ふつうのLinuxプログラミング 青木峰郎 システムコールとライブラリ関数 − @IT自分戦略研究所 システムコール・ライブラリルーチン - UNIX の部屋 ltrace 共有ライブラリの呼び出しをトレース。*.soと何を話しているか。 ltrace -p PID でプロセスにアタッチ。実行中のプロセスをトレース。 ltrace で共有ライブラリの関数呼び出しをトレースする - bkブログ 404 - エラー: 404 - Linux JF ƒ‰ƒCƒuƒ‰ƒŠ‚ÌŠ
1行プログラミング awk でデータの単純なフォーマット変換することを目的としています。 まず、次のようなデータ(/tmp/a とします)に対して、処理を行うことを考えます。 1 2 3 4 -5 6 7 8 0 9 10 113 入力行の総数を印字する 入力行の総数を出力します(他の方法 cat /tmp/a | wc)。 cat /tmp/a | awk 'END {print NR }' 実行結果 3 N行目の入力行を印字する 3行目の入力行を出力します(他の方法 cat /tmp/a | head -3 | tail -1)。 cat /tmp/a | awk 'NR==3' 実行結果 9 10 113 N個より多い欄を持つすべての入力行を印字する 1 行に3 個以上のデータが記述されている行をすべて出力する。 % cat /tmp/a | awk 'NF > 3 {print}'
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く