Neden chown
sadece komut root? Kök olmayan kullanıcılar neden sahip oldukları dosyaları vermek için chown kullanamıyorlar?
chown
etmek vermek oldukları dosyaları. (Dosya sistemi yapılandırmasına bağlı olarak yapabileceğiniz sistemleri gördüm.)
Neden chown
sadece komut root? Kök olmayan kullanıcılar neden sahip oldukları dosyaları vermek için chown kullanamıyorlar?
chown
etmek vermek oldukları dosyaları. (Dosya sistemi yapılandırmasına bağlı olarak yapabileceğiniz sistemleri gördüm.)
Yanıtlar:
Unix sistemlerinin çoğu, kullanıcıların dosyaları “vermelerini” önler, yani kullanıcılar yalnızca chown
hedef kullanıcı ve grup ayrıcalıklarına sahipse çalıştırılabilir . Kullanmak chown
, dosyaya sahip olmayı veya root olmayı gerektirir (kullanıcılar hiçbir zaman diğer kullanıcıların dosyalarına uygun olamaz), yalnızca chown
dosyanın sahibini başka bir kullanıcıya değiştirmek için çalıştırılabilir .
Bu kısıtlamanın nedeni, başka bir kullanıcıya bir dosya vermenin nadir görülen, ancak yine de önemli durumlarda kötü şeylerin olmasına izin vermesidir. Örneğin:
chown
bu dosyayı başka bir kullanıcı Bill'in sahibi yapmak için çalıştırabilir . Dosya, yalnızca Alice dosyayı kullanabilse bile Bill'in disk kotası altında sayılır./bin/bash
, ayarlayabilmesi ve daha sonra chown
istediği kişiye verebilmesi. Şimdi o kişi olarak kabuk erişimine sahipler.
chown
her zaman setuid ve setgid bitlerini temizler.
drwxr-xr-x ring0 ring0 .
) hangi kök içinde (normal dosyası vardır -rw-r--r-- root root file
) Ben yapamam neden chown ring0 file
buna beri zaten olarak yapmak için izin verilir ring0
, cp file x ; rm file ; mv x file
(ve bazı isteğe bağlı touch sometime file
...)?
Linux'ta boğulmak için CAP_CHOWN özelliğine ihtiyacınız var. Kök böyle verilir. Açıklamalar için http://vouters.dyndns.org/tima/Linux-OpenVMS-C-Implementing_chown.html adresine bakın . CAP_CHOWN özelliğini vermek istiyorsanız, kodunuzu aşağıdaki şekilde gösterildiği gibi libcap-ng veya libcap ile oluşturun: http://vouters.dyndns.org/tima/Linux-PAM-C-Pluggable_Authentication_Modules_programming_example.html , CAPIT_WR_AUD_WE_BE_EIT CAP_CHOWN ile.
Komutu başlatabilirsiniz, ancak root değilseniz çalışmaz. Çok kolay: bir yazılımı kök kullanıcıya değiştirebilecek bir kullanıcı hayal edin. Setuid bit ekleyebilir ve voilà, adam kök! Böylece, kullanım bit'i chmod ile ekleyebilir, ancak dosyaların sahibini değiştirme şansı yoktur.