
tar ユーティリティを使用してファイルをバックアップに保存すると、拡張 ACL が失われます。
ACL を保存するために、一般的に使用されているハック的ではないソリューション (ACL を最初から再作成するスクリプトを作成するなど) はありますか?
答え1
実際のところ、質問は(標準的な)ファイル権限ビットに関するものではなく、延長ACL情報(setfacl(1)またはacl(5)を参照)。
私の知る限り、変更されていない GNU tar は ACL 情報を無視します。(RHEL 5.2 に同梱されている GNU tar 1.15.1 のマニュアル ページには、スイッチ --acls と --no-acls について記載されていますが、私はまだ動作させていません。)
しかし星プログラムは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 少なくとも、Star は Ubuntu で利用可能です。
答え2
私も解決策を探していましたが、今のところこれを見つけました:
まずフォルダからgetfactlを実行します
getfacl -R /a_folder > folder.acl
その後、通常のtarを実行します
tar -czvf folder.tar.gz /a_folder
それを抽出したら
tar -xvf folder.tar.gz
権限に対して setfacl を実行します。
setfacl --restore=folder.acl
これは私にとっては有効です。
答え3
tarの使用
作成するには:
tar --acls -cpf backup.tar some-dir-or-file
解凍するには:
tar --acls -xpf backup.tar
答え4
使用することをお勧めしますbsdtar
。
bsdtar
デフォルトで拡張ACLをバックアップする、それは同じ構文としてGNU tar
実行され、生成されたアーカイブは で読み取り可能ですGNU tar
。
パッケージとコマンド名 (Debian ベースのディストリビューションの場合) は ですbsdtar
。
bsdtar cf archive.tar /my/folder/using/extd_acl
bsdtar xf archive.tar
2 番目の (extract) コマンドは ACL を復元します。