« 真夜中のマーチ | メイン | 大塚家具 »

SELinuxでバックアップ

FedoraやCentOSのSELinux環境でファイルやディレクトリのバックアップを取るときにtarコマンドを使うと、contextが引き継がれない(>_<)
pオプションはオーナーやパーミッションを引き継いでくれますが、contextは引き継いでくれないのです(;_;)
展開したディレクトリのcontextになってしまう(ToT)
展開した後にいちいちchconコマンドでcontextを設定しなおすのはめんどくさいなぁ~、と思っていたら、starコマンドが用意されていた。

starコマンドで-H=exustar -xattrオプションをつけて実行すればcontextも保持されてアーカイブされ、解凍したときには保持されたcontextで展開される。

# star cvzpf test.tgz /etc/yum/ -H=exustar -xattr
a /etc/yum/ directory
a /etc/yum/yum-daily.yum 19 bytes, 1 tape blocks
star: 1 blocks + 0 bytes (total of 10240 bytes = 10.00k).
# star xvzpf test.tgz -H=exustar -xattr
Release star 1.5a54 (i386-redhat-linux-gnu)
Archtype exustar
Dumpdate 1177813565.575410 (Sun Apr 29 11:26:05 2007)
Volno 1
Blocksize 20
star: WARNING: skipping leading '/' on filenames.
x etc/yum/ directory
x etc/yum/yum-daily.yum 19 bytes, 1 tape blocks
star: 1 blocks + 0 bytes (total of 10240 bytes = 10.00k).
# ls -laZ etc/yum/
drwxr-xr-x root root system_u:object_r:etc_t .
drwxr-xr-x root root ..
-rw-r--r-- root root system_u:object_r:etc_t yum-daily.yum

starコマンドはtarコマンドとほぼ互換なのでアーカイブのオプションはそのままで良い。これは便利!
というかこういうコマンドないと困るよね。
注意点は、解凍時もオプションをつけてないとcontextが引き継がれないということ。
オプションを付け忘れて展開しなおす時は、一度展開したファイルを削除してから展開しないとcontextが反映されません。なぜ~?
再アーカイブする時もデフォルトでは上書きしないで終了してしまう設定になっているので、再アーカイブする時は古いアーカイブを削除してから実行してください。


他には、cpコマンドもcontextを引き継いだり、設定したりするオプションがある。
cp -cか-preserve=context でコピー元のcontextを引き継ぎます。
これを忘れると設定ファイルのコピーを作って編集してもcontextが異なっていてデーモンが読めなかったりする(>_<)
cp -Z CONTEXTかcp --context=CONTEXTで、コピー時に任意のcontextを設定できます。
例えば、

# cp -Z system_u:object_r:etc_t hoge.conf hoge.conf.new

-pオプションではcontextを引きついてくれないので注意が必要です。
mkdirコマンドも同じように-Zか--context=でディレクトリ作成時に任意のcontextを設定できます。
オプションをつけないとカレントのcontextになります。
一方、mvコマンドはcontextごとファイルを移動するので、何も気にすることなくcontextが引き継がれます。

SELinuxは奥が深い。


[追記 2007.05.01]
> オプションを付け忘れて展開しなおす時は、一度展開したファイルを削除してから展開しないとcontextが反映されません。なぜ~?
理由はデフォルトではファイルの更新日付比較をして新しいファイルだけ展開するから。
無条件に展開したいときは、-Uオプションを付ければ比較せずに上書き展開してくれます。

トラックバック

このエントリーのトラックバックURL:
http://hagyroom.sakura.ne.jp/mt/mt-tb.cgi/689

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2007年04月27日 00:00に投稿されたエントリーのページです。

ひとつ前の投稿は「真夜中のマーチ」です。

次の投稿は「大塚家具」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

アーカイブ

お薦めショップ

  • HagyShop   ボクの大好きな作品だけ、
      お薦めの本と映画をご紹介。