web-dev-qa-db-ja.com

ACLを保持してファイルをバックアップするために何を使用しますか?

Tarユーティリティを使用してファイルをバックアップに保存すると、拡張ACLが失われます。

ACLを保持するために、一般的に使用されているハックではないソリューション(ACLを最初から再生成するスクリプトを作成するなど)はありますか?

24
silk

Tarの使用

作成するには:

tar --acls -cpf backup.tar some-dir-or-file

解凍するには:

tar --acls -xpf backup.tar
4
Scott Grayban

実際、問題は(標準の)ファイル許可ビットではなく、extendedACL情報(setfacl(1)またはacl(5)を参照)に関するものであったと思います。

私の知る限り、未変更のGNU tarはACL情報を無視します。(GNU tar 1.15.1のRHEL 5.2に同梱されているmanページでは、スイッチ--aclsについて言及しています。と--no-aclsですが、動作させることができていません。)

ただし、exustar形式を選択した場合、starプログラムはACLをバックアップおよび復元できます。

star -c -p -acl artype=exustar -f archive.tar  files...
star -x -acl -f archive.tar

スターのホームページ: http://cdrecord.berlios.de/new/private/star.html 少なくともubuntuではスターを利用できます。

14
bhm

私はこれまでに解決策も探しています:

最初に私のフォルダからgetfactlを実行します

getfacl -R /a_folder > folder.acl

その後、通常のタールを行います

tar -czvf folder.tar.gz /a_folder

抽出すると

tar -xvf folder.tar.gz

権限に対してsetfaclを実行します。

setfacl --restore=folder.acl

これは私にとってはうまくいきます。

9
maniat1k
rsync with the -A and/or -X options.
5
Skaperen

使いやすく強力なソリューションをお探しの場合は、rdiff-backupをお勧めします。

基本的には、ソースディレクトリから宛先ディレクトリへのコピーを作成しますが、必要なときにいつでも戻ることができるように追加情報も保存します。

そしてもちろん、それはシンボリックリンク、特別なファイル、ハードリンク、パーミッション、uid/gidの所有権、変更時刻を保存します。

2
Pablo Antonio

bsdtarを使用することをお勧めします。

bsdtarデフォルトで拡張ACLをバックアップ、それは同じ構文を使用しますGNU tar、およびそれが生成するアーカイブはGNU tar

(Debianベースのディストリビューションでの)パッケージとコマンド名はbsdtarです。

bsdtar cf archive.tar /my/folder/using/extd_acl 
bsdtar xf archive.tar 

2番目の(抽出)コマンドは、ACLを復元します。

2
Totor

Tar Man Pageから。

-p、-same-permissions、-preserve-permissions
ファイルの抽出時にumaskを無視(ルートのデフォルト)

実際には、アクセス許可(ACL)を変更するのはアーカイブの行為ではなく、それらをアンパックする行為です。 tarは、あるユーザーから別のユーザーにファイルを配布するために非常によく使用されるため、ユーザーがアンパックするときに、ユーザーに mask を適用すると便利です。

ファイルの以前の権限を保持するには、オプションにpを追加するだけです。例えば

ストレートタール:

tar xvp some-file

bz.tar:

tar xvjp some-file

gz.tar:

tar xvzp some-file
1
Eli Frey