Tar's -p (izinleri koru) bayrağı gerçekte ne korur?


22

Ne yok -pyaratma ve bir tarball ayıklanması sırasında bayrak aslında korumak? Koruduğu rwxizinler mi?

htdocs/Root'un sahip olduğu bir tarball yarattığımda , onu yerel makineme çıkarmak, sahipliğini roottan kullanıcıma değiştirdi.


5
Belki arşivi kök olarak çıkarmayı denemelisin. Başka bir kullanıcının izinlerini normal bir kullanıcı olarak ayarlamak mümkün tardeğildir, bu yüzden de yapamayacağımı düşünüyorum . Lütfen işe yaradıysa söyle.
Louis Matthijssen

"yerel makine"? Lütfen bu makinenin hangi işletim sistemi olduğunu açıklayın;)
Rinzwind

Ayrıca hangi dosya sistemlerini kullandığınızı da bize bildirin. Hem kaynak hem de hedef olanlar.
terdon

Kaynak: Red Hat Enterprise Linux Server release 6.5 (Santiago) Hedef: Ubuntu 13.10 Her iki kullanımGPT
nicoX,

Yan not: tarizinleri korur. -pve --same-owner/ --no-same-owner(cevaplarda olduğu gibi) çıkarma bayraklarıdır. Arşivleme sırasında hiçbir etkisi yoktur
Fr0zenFyr

Yanıtlar:


19

Mülkiyet ve izinler iki farklı şeydir. -pBayrak korur izinleri . * Nix sistemlerinde, normal kullanıcılar dosya sahipliğini kendi olmayan bir kullanıcı olarak değiştiremez.

As açıkladı Burada :

Yalnızca dosyanın kullanıcı kimliğine eşit etkin bir kullanıcı kimliğine sahip veya uygun yetkilere sahip işlemler bir dosyanın sahipliğini değiştirebilir. _POSIX_CHOWN_RESTRICTED, yol için geçerliyse:

  • Kullanıcı kimliğini değiştirmek, uygun yetkilere sahip işlemlerle sınırlıdır.

  • Grup kimliğini değiştirmek, dosyanın kullanıcı kimliğine eşit, ancak kullanıcı sahibi kimliğine eşitse ve (uid_t) -1 ve gruba eşitse, uygun yetkilere sahip olmayan bir kullanıcı kimliğine sahip bir işleme izin verilir. Çağıran sürecin 'etkin grup kimliğine veya ek grup kimliğinden birine.

Bunun arkasındaki mantık, bu Unix ve Linux cevabındaki @Gilles tarafından açıklanmıştı :

Bu kısıtlamanın nedeni, başka bir kullanıcıya bir dosya vermenin, nadiren, ancak yine de önemli durumlarda kötü şeylerin olmasına izin vermesidir. Örneğin:

  • Bir sistemde disk kotaları etkinse, Alice, yalnızca kendisi tarafından erişilebilen bir dizinin altında dünyaca yazılabilir bir dosya oluşturabilir (bu nedenle başka hiç kimse bu dünyaca yazılabilir dizine erişemez) ve daha sonra bu dosyayı başka bir kullanıcı Bill'in sahibi olmak için chown'u çalıştırabilir . Dosya, yalnızca Alice dosyayı kullanabilse bile Bill'in disk kotası altında sayılır.
  • Alice, Bill'e bir dosya verirse, Bill'in bu dosyayı oluşturmadığına dair hiçbir iz yoktur. Dosya yasadışı veya başka bir şekilde tehlikeye atılan veriler içeriyorsa, bu bir sorun olabilir.
  • Bazı programlar, bir isteği doğrulamak için giriş dosyalarının belirli bir kullanıcıya ait olmasını gerektirir (örneğin, dosya programın bu kullanıcı adına uygulayacağı bazı talimatlar içerir). Bu genellikle güvenli bir tasarım değildir, çünkü Bill, sözdizimsel olarak doğru talimatları içeren bir dosya oluştursa bile, bunları belirli bir zamanda yürütmeyi amaçlamamış olabilir. Bununla birlikte, Alice'in keyfi içerikli bir dosya oluşturmasına ve Bill'den girdi olarak alınmasına izin vermek işleri daha da kötüleştirebilir.

Bu nedenle, tar'nın --same-ownerbayrağını kullanıyor olsanız bile , rootmülkiyeti koruyacak dosyaları çıkarmanız gerekecektir . Bu bayrak varsayılan olarak açıktır root, yani istediğiniz şey:

sudo tar xpf foo.tgz

9

Tar için ilginç olan 2 seçenek daha var:

--same-owner
       try extracting files with the same ownership as exists in the ar‐
       chive (default for superuser)

--no-same-owner
       extract files as yourself (**default for ordinary users**)

İkincisi varsayılandır, böylece --same-ownerkullanıcıyı kurtarmak için ekleyebilirsiniz . Muhtemelen bunu yapmak zorunda kalacaksın sudo.

Bunun yanı sıra: bu sadece POSIX'i destekleyen sistemler üzerinde çalışacaktır. Ve Ubuntu dışındaki işletim sistemlerinde bu 2 seçenek olmayabilir (bunlar standart değildir).


3
--same-ownerKök olmayan kullanıcılar için olmaz iş, onlar kimseye ama kendilerine sahipliğini ayarlamak hakkına sahip olmayacaktır. Bu POSIX tarafından tanımlanmıştır .
Terdon

4

Kök olarak çalışan sahibini korumak veya ayıklarken -p bayrağıyla birlikte --same-sahibi bayrağını kullanın.


3
Her durumda kök olarak çalıştırılması gerekir. Kök olmayan kullanıcılar, dosya sahipliğini diğer kullanıcılara değiştiremez.
terdon
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.