回答:
tarを使用する
作成するには:
tar --acls -cpf backup.tar some-dir-or-file
展開するには:
tar --acls -xpf backup.tar
tar: unrecognized option '--acls'
動作しません。
--acls
実際、質問は(標準の)ファイル許可ビットに関するものではなく、拡張 ACL情報に関するものであると信じています(setfacl(1)またはacl(5)を参照)。
私の知る限り、変更されていないGNU tarはACL情報を無視します。(RHEL 5.2に同梱されているGNU tar 1.15.1のマニュアルページには、スイッチ--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で利用可能です。
star
Debianでは利用できず、「チーム」によって保守されていないようです。プロジェクトはまだ生きており、30年以上後も維持されています。bsdtar
他の何かが必要な場合は試してください。
私はこれまでにこれを見つけた解決策も探しています:
最初に私のフォルダからgetfactlを行います
getfacl -R /a_folder > folder.acl
その後、定期的なタールを行います
tar -czvf folder.tar.gz /a_folder
私がそれを抽出するとき
tar -xvf folder.tar.gz
許可に対してsetfaclを実行します。
setfacl --restore=folder.acl
これは私のために働く。
を使用することをお勧めしますbsdtar
。
bsdtar
デフォルトで拡張ACLをバックアップして、それと同じ構文を使用して、GNU tar
それが生成するアーカイブは読み込み可能GNU tar
です。
パッケージとコマンド名(Debianベースのディストリビューションの下)はbsdtar
です。
bsdtar cf archive.tar /my/folder/using/extd_acl
bsdtar xf archive.tar
2番目の(抽出)コマンドはACLを復元します。
tar manページから。
-p、-same-permissions、-preserve-permissionsは、
ファイルを抽出するときにumask を無視します(rootのデフォルト)
実際には、アクセス許可(ACL)を変更するのはアーカイブの行為ではなく、それらを解凍する行為です。Tarは、あるユーザーから別のユーザーにファイルを配布するために非常に頻繁に使用されるため、ユーザーが解凍するときにumaskを適用すると便利だと考えられています。
ファイルの以前のアクセス許可を保持するには、単にオプションにad apを追加します。例えば
ストレートタール:
tar xvp some-file
bz.tar:
tar xvjp some-file
gz.tar:
tar xvzp some-file