15

chmod 777配布する前に、作成時 (または作成直後) の tarfile の内容にアクセスする方法はありますか? tar されているディレクトリの書き込み権限は、tar の時点では不明です (ただし、通常は 555)。tar を展開しているユーザーがchmod -R 777 <untarred dir>続行する前に覚えておく必要がなく、展開されたディレクトリを誰でも書き込み可能にしたいと考えています。

不器用な方法は、ディレクトリのコピーを作成することchmod -R 777 <copydir>ですが、より良い解決策があるかどうか疑問に思っていました.

私はSolaris 10マシンを使用しています。

バックグラウンド:

ルート ディレクトリは ClearCase vob 内にあり、特定のファイル アクセス許可が再帰的に付与されます。tarfile が作成され、組織内の複数の「顧客」に配布されます。ほとんどの場合、読み取り/実行権限のみが必要ですが (具体的には書き込み可能にしたくない場合)、特に 1 つのグループは、これらのファイルを編集したり、「新しい」コピーに復元したりする可能性があるため、コピーを再帰的に書き込み可能にする必要があります (つまり、 、私が彼らに与えた元の状態で)。

このグループは、やや技術的に困難です。彼らは tarfile の「ハウツー」に関する指示を持っていますが、tarfile を一度 untar すると再帰的に書き込み可能にするファイルの設定を常に忘れている (または間違っている) ようです。これにより、さまざまな問題を診断するために電話がかかってきます。根本的な原因は、展開されたディレクトリの chmod を実行するのを忘れた (または誤って実行した) ことです。

そして、あなたが尋ねる前に、はい、私は彼らに untar/chmod のスクリプトを書きました (彼らのためだけに)、しかし... 気にしないでください。

そこで、再帰的に書き込み可能な別のバージョンの tar を作成して、彼らだけに配布することにしました。最初に言ったように、いつでもディレクトリのコピーを作成し、そのコピーを再帰的に書き込み可能にしてから、コピーしたディレクトリを tar することができますが、ディレクトリはかなり大きく、ディスク容量がほぼ満杯になることがあります (大きく変動する可能性があります)。ディレクトリのコピーを作成することは、100% 実行可能ではありません。

4

2 に答える 2

20

GNU tar では--mode、アーカイブを作成するときに次のオプションを使用します。

tar cf archive.tar --mode='a+rwX' *

ただし、アーカイブが抽出されると、デフォルトで umask が適用されることに注意してください。したがって、ユーザーの umask が 000 でない限り、パーミッションはその時点で更新されます。-pただし、 ( --preserve) オプションを使用すると、umask を無視できます。たとえば、次のようになります。

tar xfp archive.tar
于 2013-12-06T02:09:40.347 に答える