web-dev-qa-db-ja.com

アーカイブ内のファイルとフォルダーのアクセス許可を維持する

私はWindows、Linux、Mac用に作成したプログラムをパッケージ化して配布しています。ファイルとフォルダをZipアーカイブに入れる予定です。

正しいフォルダーとファイルのアクセス許可を設定し、Zipに圧縮して再配布した場合、ユーザーがLinuxまたはMacシステムでそれらを抽出しても、それらのアクセス許可は維持されますか?または、権限を自分で設定する必要がありますか?

25
ajaybc

Zipは、アーカイブにファイルのアクセス許可を格納しません。

tarアーカイブは、LinuxおよびOS Xでのファイル権限を保持します。Windowsで何が起こるかわかりません。 Windowsでテストして問題なく動作する場合は、おそらくこれが最善の策です。それはおそらく、人々がアーカイブを解凍するために使用するツールに依存します。

別のオプションは、インストーラーを作成することですが、クロスプラットフォームインストーラーを作成するための非商用オプションはほとんどありません。ウィキペディアには リスト があります。

6
larsks

ここではインストーラーが最良のオプションです。理由をもう少し詳しく説明しましょう。

Windowsには次の権限があります。

Modify
Read & Execute
Read
Write

グループまたはユーザー名に割り当てられている

Unixベースのシステムには次のものがあります。

Read
Write 
Execute

所有者、グループ、その他に割り当てることができます。

ファイルシステムはパーミッションを異なる方法で処理するため、あるシステムから別のシステムにパーミッションをマッピングするのは難しいことはわかりますか。

ただし、Info-Zipなどの一部のZipユーティリティは、ユーザーIDとグループID、ファイルアクセス許可、シンボリックリンクのサポートなど、Unixベースのファイルシステム機能をサポートしています。また、NTFSファイルシステムのアクセス許可をサポートしており、ファイルを抽出するときにNTFSアクセス許可からUnixアクセス許可に、またはその逆に変換しようとします。これにより、意図しない組み合わせになる可能性があります。実行権限が拒否されたNTFSボリューム上に作成されている.exeファイル。*

プログラムの配布を計画している場合は、インストーラーが最善の解決策です。

*ウィキペディアから: Zip(ファイル形式)

3
aemus