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

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


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

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

1週間おやすみをいただき、さぞリフレッシュしただろうと思いきや、 仕事が終らず減らずすっきりせずで、混沌としておりました。
年末に向かってどうなっていくのか、直視するのがちょっと恐い今日この頃、 といった具合になっております。

さてさて、前回ご紹介した、

DBA必読!!
ORACLEの内部がわかれば問題解決能力が格段にUPします!
オラクルと聞いてピンときたら・・・
メルマガ「素人なりのORACLE検証」
http://www.mag2.com/m/0000126828.htm

ですが、なんと、書籍化が決定! だそうです。すごいですね。

書名:「Oracleはこう動いている。Oracle徹底検証」
発行元:アルファポリス出版
著者:榎本茂男
定価:¥1,600+税

もうすでに、書店に並んでいるそうですよ。要チェックですね!

わたしは、相変わらず Oracle のインストールに到達していません。
しかし、1カ月以上前にダウンロードした、1カ月間限定お試し版を、 いまインストールしたら使えるのかどうか、ということが、 なぜか気になってしまっています。

それを確かめるべく、今週はインストールに到達できるかもしれません。
目的がおかしくなっていますが、インストールするというモチベーションのためなら、 かまわないんじゃないかとすら思ってしまっています。

…ああ、話がどんどんずれていってますね。
これ以上脱線する前に、今週も、はりきってまいりましょうか。

今週のお題 - ファイルの属性を操作する

サーバといえば、いろんな方々が使われていますので、 自分のファイルを誰かに見られたり、故意でなくてもうっかり誰かに消される、 などということが、可能性が低いとはいえ、ありえるのではないかと思います。

万が一でもそんなことが起こらないように、常日頃から、chmod コマンドを用いて、 適切なアクセス権を設定しておかないといけませんよね。

しかしながら、所有者が自分である場合や、root になって作業をする場合には、 大事なファイルを消してしまうことや、上書きしてしまうといったような事故を、 既存のアクセス権だけで防ぐことは、難しいのではないかと思います。 (特に、root のうっかりは、しゃれになりません…。)

そこで、今週は、アクセス権とは別の、ファイルの属性を用いることで、 うっかりを防ぐ方法について、ご紹介したいと思います。

ただし、今回の技(?)は、ext2 (あるいは ext3) ファイルシステムに限定されます。 他のファイルシステムには使えませんので、ご了承ください。

では、早速、コマンドの説明に入ります。
ファイルの属性の設定には、chattr コマンドを使用します。
おおまかな書式は、以下の通りです。

  chattr [-R] [mode] ファイル...

-R は、cp や rm と同様、再帰的に設定を行うためのオプションです。

mode には、設定したいファイルの属性を指定します。
最初に、+ か - か = のいずれかを指定します。
それぞれ、後に続く属性の追加、削除、設定を意味します。
そして、属性には、主に以下を(複数)指定します。

A:atime を変更しない。
a:追加書き込み以外の書き込み不可。(root のみ設定可能)
c:圧縮して保存。(読み出す時は自動的に伸長)
d:dump コマンドによるバックアップの対象外にする。
i:変更不可。(root のみ設定可能)
S:即座にディスクへ書き込み。(ライトスルー)
s:削除したとき、使用していたブロックを 0 にする。

また、属性を確認するには、lsattr コマンドを使用します。
引数には、確認したいファイルを指定します。
たとえば、ファイル foo の属性を確認するには、以下のようにします。

  % lsattr foo
  -----a-A----- foo

属性 a と属性 A が設定されていることがわかります。

それでは、いくつかの属性を実際に設定し、効果を確認してみましょう。

まずは、属性 a を設定してみましょう。
foo というファイルがあるとして、それに属性 a を設定します。

  # chattr +a foo
  # lsattr foo
  -----a------- foo

そして、追加書き込みと、上書きを、リダイレクトで行ってみます。
すると、以下のように、追加書き込みはできますが、上書きは拒否されてしまいました。

  % ls -l foo
  -rw-r--r--    1 usu      users          22 Dec  4 02:21 foo
  % echo test >> foo
  % echo test > foo
  bash: foo: 許可されていない操作です

次に、属性 i を設定してみましょう。
属性 i の確認ですので、先ほど設定した属性 a は、外しておきます。
属性 a を外して、属性 i を設定する手順は、

  # chattr -a foo
  # chattr +i foo

としてもよいですし、単純に

  # chattr =i foo

としても、よいです。
いずれの場合も、以下のように、属性 i だけが設定されます。

  % lsattr foo
  ----i-------- foo

そして、上書きや消去を行ってみます。
すると、以下のように、いずれの場合も拒否されました。

  % echo test > foo
  bash: foo: 許可がありません
  % rm foo
  rm: 書き込み保護されたファイル `foo' を削除しますか(yes/no)? y
  rm: リンク `foo' を削除できません: 許可されていない操作です

というわけで、ファイルの属性を設定する方法を、ご紹介しました。
例えば、滅多に変更することのないファイルには、属性 i をつけておくと、 rm などで消されたり変更される心配が、かなり減ると思います。
まずは、あたりさわりのないファイルから、試してみてください。

他の属性の用途に関しては、すみませんが、宿題とさせていただきます。

宿題の答え

先週の宿題は、

  chage コマンドの、-I オプションや -E オプションで設定した項目を
  無効にするには、どうすればよいでしょうか?

でした。

その答えは、どちらも -1 を指定すると、無効になります。
またまた、test2 さんを使って、例で示しましょう。
今は、こうなっています。(-I 7 -E 2005-11-30 な状態です。)

  # grep test2 /etc/shadow
  test2:$1$IxmeWwzX$gIHLFwSUYrwwaBDIN3I9z/:13107:0:0:3:7:13117:

まず、-I オプションの指定を、無効にしてみましょう。

  # chage -I -1 test2
  # grep test2 /etc/shadow
  test2:$1$IxmeWwzX$gIHLFwSUYrwwaBDIN3I9z/:13107:0:0:3::13117:

なくなりました。
引続き、-E オプションの指定を、無効にします。

  # chage -E -1 test2
  # grep test2 /etc/shadow
  test2:$1$IxmeWwzX$gIHLFwSUYrwwaBDIN3I9z/:13107:0:0:3:::

見事、消えました。

…以上の話が、なんのことかわからない方は、以下をご覧ください。

Vol.036 - パスワードを管理する
http://www.usupi.org/sysad/036.html

今週の宿題

今週の宿題は、こちらです。

  ファイルの属性のそれぞれの用途を、考えてみましょう

です。

属性 i については、いわずもがなですが、他の属性は、 どういうときに設定すると役に立つのか、ちょっと考えてみましょう。

あとがき

ここのところ、以下の本と格闘しておりました。

ワインバーグのシステム思考法
http://www.amazon.co.jp/exec/obidos/ASIN/432002706X/usupiorg-22

ここ1年にたずさわったお仕事のいくつかが、袋小路に陥ったのですが、 今後そうならないためにどうすればいいか、 考えるためのきっかけにならないかなと思い、読んでいました。

内容は、私にはちょっと難しかったのですが、それでも納得できるところや、 ためになるところが結構ありました。

よくわかっていない私が要約を書くよりも、 実際に読んでいただいた方が 100万倍ためになると思います。
…が、ぐっと来たところを、ちょびっとだけご紹介します。

  • 次の事象を決定するのは、その前の事象ではなく、その事象に対する反応である。
  • 無益な振舞いを減らすもっともよいやり方は、有益な振舞いを増やすことにある。

前者は、よいプロジェクトと悪いプロジェクトを左右するのは、 発生する出来事ではなく、その出来事に対する対処にある、 ということから来ています。(耳が痛いですね…。)
後者は、人間は、知ってしまった(無益な)ことを、 脳から取り除くことができないため、より有益なことを追加することで改善しよう、 ということから来ています。(追加の原理、という名称が付けられていました。)

いずれも、本題とはちょっとずれている気がしますが…。
でも、個人的には、肝に命じておきたいと思いました。

さて、とうとう12月になってしまいました。
いろいろやばいことになってきましたが、みなさんは大丈夫でしょうか。
体を壊さない程度に、お互いもうひとがんばりしましょう。

あ、もし、システム管理に関して、夜眠れないくらい悩んでいらっしゃる方は、 お気軽にご連絡ください。
たいした知恵は持っていませんが、ひょっとするとお役に立てるかもしれません。
もちろん、本業は別にありますので、お代をいただくことはありません。
軽い気持ちで、メールを書いていただければと思います。
(事前に許可はいただきますが、ネタにさせていただくかも、です。)

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

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

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本