Doğru izinleri alırken dosyayı unzipping?


17

Kullanarak sunucumdaki bir dosyayı açtım:

unzip filename

Ancak bu, sahip / grup izinlerine sahip tüm dosyaların neden olduğu görülüyor 0 0.

Yüklediğim dosyalar bir PHPyazılım betiğiydi, bu yüzden dosyaları açarken izinleri nasıl doğru bir şekilde ayarladığımı ve neye ayarlanacağını merak ediyorum?

Yanıtlar:


10

Zip bildiğim kadarıyla dosya sahipliğini / iznini kaydetmeyi desteklemiyor. Umask'ı, unzip'in bu izinlere sahip dosyaları oluşturması için ayarlamayı deneyebilirsiniz. Çalıştırmak

umask 644

önce unzip.


Aslında pencere ile sıkıştırılmış, üzgünüm.
Brett

1
Windows veya * nix üzerinde oluşturulmuş olması önemli değil. Zip hala unix dosya izinlerini desteklemiyor. Nerede oluşturulduğuna bakılmaksızın.
lawl0r

Evet, biliyorum .... ama umaskbu izinlerle zip oluşturacak şekilde ayarlamayı deneyebileceğimi söyledin ; ama bunu pencerelerde yapabileceğimi düşünmüyor musun?
Brett

Sıkıştırmadan
lawl0r

8
@ lawl0r evet öyle. Bunları görmek için -Z seçeneğini kullanın.
OrangeDog

20

Aslında, bazı cevaplar doğru değil. ZIP dosyalarının dosya izinleri de olabilir. (*) ZIP dosyanızdaki dosyaların izinlerini aşağıdakilerle listeleyebilirsiniz:

unzip -Z

ZIP dosyasını oluşturmak için kullandığınız araç izinleri saklamadı veya doğru bir şekilde saklamadı.

Yani, kendini ZIP dosyası yaptıysanız , sen ile ZIP dosyası yapılmış aracını kontrol edin. Sıkıştırmadan önce izinleri ayarlamanın bir yolu vardır (maven gibi) veya orijinal izinleri korur (ancak bu yalnızca izinleri destekleyen bir sistemde çalışır - yani Windows'ta değil).

Eğer varsa ZIP dosyasını kendiniz yapmadığını , tek şansın ile örneğin, izinler unzipping sonra doğru ayarlamaktır

chmod -R [permissions] [directory]

(*) Bu özelliği, ZIP dosyasına giren dosyalar için fileMode'u belirtebileceğiniz maven montaj eklentisiyle birlikte kullanıyoruz.


1
bence haklısın, ama cevabı nasıl önerdiğin doğru değil.
Francisco Tapia

2
@FranciscoTapia Cevabımı güncelledim (bazılarının deneyebileceği bazı şeylerle), ancak diğer cevapların orada yanlış olduğu ipucunu bırakacağım. Bence önemli.
David Tanzer

1
UnZip 6.00 of 20 April 2009, by Info-ZIP. Maintained by C. Spieler.Windows / mingw üzerinde. Şu anda linux kutuma erişimim yok, ama -Z de çalışıyor. Her neyse, ipucu için teşekkürler!
David Tanzer

3
@David Tanzer , cevabınız kabul edilmese bile en iyisidir. Gerçekten de, bir arşivin (örn. Windows, Linux, vb.) Kökeni önemlidir. Linux'ta test yaptım ( Zip 3.0 , UnZip 6.00 ). Bir dosya arşive konduğunda izinler kaydedilir. Ve ayıklanan dosyaya geri yükleniyorlar (örneğin dosya Linux'ta çıkarıldığında). Açıkçası, izinler Windows kutusunda ayıklanırken uygulanmayacak. Gerçekten görmek serin olacak unzip (gibi belirli bir anahtar katran 'ın --no-same-permissionsizinlerini korumak ve saygı etmediğini) umask ayıklanması sırasında.
flaz14

1
@DanielF İzinler yalnızca oluşturma programı onları oraya koyarsa, arşiviniz Windows'ta oluşturulduysa zipinfo/ unzip -Zyalnızca tahmin edebilir. İzinlerin orada olup olmadığını görmek için zipinfo -v/ öğesini kullanın unzip -Zvve “MSDOS harici dosya öznitelikleri” ni arayın; “dosya sistemi veya menşe işletim sistemi” UNIX olması koşuluyla, en önemli iki bayt UNIX izinleridir (sekizli değil, sekizgen değil!).
Alex Shpilkin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.