web-dev-qa-db-ja.com

正しい権限を取得しながらファイルを解凍しますか?

次のコマンドを使用して、サーバー上のファイルを解凍しました。

unzip filename

ただし、これにより、すべてのファイルの所有者/グループの権限が0 0

アップロードしたファイルはPHPソフトウェアスクリプトだったので、ファイルを解凍するときに権限を適切に設定するにはどうすればよいですか。

17
Brett

Zipは、私の知る限り、ファイルの所有権/権限の保存をサポートしていません。 unmaskがこれらの権限を持つファイルを作成するように、umaskを設定してみてください。走る

umask 644

unzipの前。

10
lawl0r

実際、ここのいくつかの答えは正しくありません。 Zipファイルには、ファイルのアクセス権も設定できます。 (*)次のコマンドを使用して、Zipファイル内のファイルの権限をリストできます。

unzip -Z

おそらく、Zipファイルの作成に使用したツールが権限を保存していないか、権限を正しく保存していない可能性があります。

したがって、自分でZipファイルを作成した場合、Zipファイルを作成したツールを確認してください。たぶん、(mavenのように)zipする前にパーミッションを設定する方法があるか、または元のパーミッションを保持します(ただし、これは、パーミッションをサポートするシステムでのみ機能します-つまり、Windowsでは機能しません)。

Zipファイルを自分で作成しなかった場合の場合、解凍後に適切な権限を設定することが唯一のチャンスです。たとえば、

chmod -R [permissions] [directory]

(*)その機能をMavenアセンブリプラグインと組み合わせて使用​​します。Zipファイルに入れるファイルのfileModeを指定できます。

20
David Tanzer