Mülkiyet ve izinler iki farklı şeydir. -p
Bayrak 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-owner
bayrağını kullanıyor olsanız bile , root
mülkiyeti koruyacak dosyaları çıkarmanız gerekecektir . Bu bayrak varsayılan olarak açıktır root
, yani istediğiniz şey:
sudo tar xpf foo.tgz
tar
değildir, bu yüzden de yapamayacağımı düşünüyorum . Lütfen işe yaradıysa söyle.