Buka ritsleting file saat mendapatkan izin yang benar?

17

Saya membuka ritsleting file di server saya menggunakan:

unzip filename

Namun ini tampaknya telah menyebabkan semua file memiliki izin pemilik / grup 0 0.

File yang saya unggah adalah PHPskrip perangkat lunak, jadi saya bertanya-tanya bagaimana saya mengatur izin dengan benar saat membuka ritsleting file dan apa yang harus diatur?

Brett
sumber

Jawaban:

10

Zip tidak mendukung penyimpanan kepemilikan / izin file sejauh yang saya tahu. Anda dapat mencoba mengatur umask sehingga unzip harus membuat file dengan izin ini. Lari

umask 644

sebelumnya unzip.

lawl0r
sumber
Sebenarnya zip dengan jendela, maaf.
Brett
1
Tidak masalah jika itu dibuat di windows atau * nix. Zip masih tidak mendukung izin file unix. Di mana pun itu dibuat.
lawl0r
Ya, saya tahu .... tapi Anda bilang saya bisa mencoba mengatur umasksehingga akan membuat zip dengan izin ini; tetapi jangan berpikir saya bisa melakukan itu di windows?
Brett
Sebelum unziping
lawl0r
8
@ lawl0r ya itu. Gunakan opsi -Z untuk melihatnya.
OrangeDog
20

Sebenarnya, beberapa jawaban di sini tidak benar. File ZIP juga dapat memiliki izin file. (*) Anda dapat mendaftar izin file dalam file ZIP Anda dengan:

unzip -Z

Mungkin alat yang Anda gunakan untuk membuat file ZIP tidak menyimpan izin atau tidak menyimpannya dengan benar.

Jadi, jika Anda membuat file ZIP sendiri , periksa alat yang Anda buat file ZIP. Mungkin ada cara untuk mengatur izin sebelum zip (seperti dengan pakar), atau mempertahankan izin asli (tapi itu hanya akan bekerja pada sistem yang mendukung izin - yaitu bukan pada Windows).

Jika Anda tidak membuat file ZIP sendiri , satu-satunya kesempatan Anda adalah mengatur izin yang benar setelah unzip, misalnya dengan

chmod -R [permissions] [directory]

(*) Kami menggunakan fitur itu dalam kombinasi dengan plugin majelis maven, tempat Anda dapat menentukan fileMode untuk file yang masuk ke file ZIP.

David Tanzer
sumber
1
Saya pikir Anda benar, tetapi cara Anda mengajukan jawaban itu tidak benar. Anda harus fokus untuk memberikan jawaban yang baik daripada mengkritik yang baru ...
Francisco Tapia
2
@FranciscoTapia Saya memperbarui jawaban saya (dengan beberapa hal yang bisa dicoba), tetapi saya akan meninggalkan petunjuk bahwa jawaban lain salah di sana. Saya pikir ini penting.
David Tanzer
1
UnZip 6.00 of 20 April 2009, by Info-ZIP. Maintained by C. Spieler.pada Windows / mingw. Saat ini saya tidak memiliki akses ke kotak linux saya, tetapi ada -Z berfungsi juga. Bagaimanapun, terima kasih atas petunjuknya!
David Tanzer
3
@ David Tanzer , jawaban Anda adalah yang terbaik meskipun tidak diterima. Memang, asal usul arsip (misalnya Windows, Linux, dll) penting. Saya sudah menguji di Linux ( Zip 3.0 , UnZip 6.00 ). Setelah file dimasukkan ke dalam arsip, izin disimpan. Dan mereka dipulihkan pada file yang diekstraksi (misalnya ketika file diekstraksi di Linux). Jelas, izin tidak akan diterapkan saat mengekstraksi pada kotak Windows. Ini akan benar-benar dingin untuk melihat di unzip switch tertentu (seperti tar 's --no-same-permissions) yang tidak melestarikan perizinan dan hal umask saat mengekstrak.
flaz14
1
@DanielF Izin hanya ada jika program pembuatan meletakkannya di sana, jadi jika arsip Anda dibuat pada Windows, zipinfo/ saya unzip -Zhanya bisa menebak. Untuk melihat apakah ada izin, gunakan zipinfo -v/ unzip -Zvdan cari "atribut file eksternal non-MSDOS"; dua byte paling signifikan adalah izin UNIX (dalam hex, bukan oktal!) asalkan "sistem file atau sistem operasi asal" adalah UNIX.
Alex Shpilkin