Henüz kimsenin ✓'si yok, bu yüzden aklıma gelen her şeyi içeren bir cevap oluşturdum.
1 Bir yürütülebilir dosya çalıştırdığınızda, işletim sistemi bazen izninizi reddeder. Örneğin, make install öneki bir sistem yolu varken sudo'ya ihtiyaç duyarken, prefix sistem dışı bir yol olması sudo için istenmez. İşletim sistemi, yürütülebilir bir dosyayı çalıştırmanın, program bir şey yapmadan önce bile kullanıcının sahip olduğundan daha fazla ayrıcalık gerektireceğine nasıl karar verir?
Hayır, yürütülebilir bir dosya başlatıldığında yapılmaz. Yürütülebilir dosya bir şey yapmaya çalıştığında yapılır.
İşletim Sistemi, dosya sistemi izinlerini ve yeteneklerini kontrol eder (bunlar dosya sistemi izinleri kapsamında değildir ve güzel düzey, mknode, bazı düşük düzey ağ öğelerini azaltma, başkalarının işlemlerini öldürme, yeniden başlatma, zamanı ayarlama vb. İçerir). Eğer izinleriniz yoksa, bunu yapamazsınız. Kök, CAP_DAC_OVERRIDE (dosya iznini yoksay) dahil olmak üzere tüm özelliklere sahiptir.
2 Bazen, bir programın çalıştırılmasına izin verilmez, ancak program sudo ile çalıştırılırsa daha fazla şey yapabilir. Örneğin, du bazı sistem dizininde çalıştırıldığında, yalnızca sudo ile bazı dizine erişebilir. İşletim sistemi neden böyle bir programı çalıştırma iznini reddetmiyor veya program çalıştırılmadan önce daha fazla ayrıcalık bildirmek tercih ediliyor?
İşletim sistemi programın ne yapacağını bilemez. Bu nedenle, başlamadan önce izinleri kontrol etmek ve ne yapacağınıza karar vermek programa bağlıdır. Ancak bunu yapmak zorunda değildir.
Not: Android'de bir manifest var, bu uygulamada hangi ayrıcalıkları kullanabileceğini açıkladı. İşletim sistemi, beyan etmediği bir ayrıcalık kullanmaya çalışan herhangi bir uygulamayı öldürür ve işletim sistemi her zaman bir ayrıcalığın onurlandırılabileceğini garanti etmez. ağ erişimi mevcut olmayabilir.
2 sudo her çalıştığında, su da çalışacak ve su her çalıştığında, sudo'nun da çalışacağı doğru mu? veya su ile, bir kullanıcı sudo'dan daha fazlasını yapabilir mi? İşletim sistemi sudo'nun ne zaman ve ne zaman su gerektiğine nasıl karar verir?
sudo
ve su
kabaca bir şeyler yapın. Bazı farklılıklar, ortam değişkenlerinin işlenmesi ve diğer güvenlik sorunlarından kaçınmadır. Bununla birlikte, her ikisi de başka bir kullanıcı olmanıza izin veren araçlardır ve her ikisinin de varsayılan bir kök kullanıcısı vardır.
su
orijinal araçtır, değiştirdiğiniz kullanıcı / grubun şifresini girmenizi gerektirir.
sudo
, daha yenidir ve varsayılan olarak kendi parolanızı girmenizi gerektirir, ancak geçiş yaptığınız kullanıcı / grubun parolasını kabul edecek veya hiç parola kabul etmeyecek şekilde yapılandırılabilir. Ayrıca, bu makinede bu kullanıcı için hangi programla, kimin için çalışacağı, kim için ve bu programla nasıl kimlik doğrulaması yapılacağı konusunda çok fazla yapılandırmaya izin verir. Orada da sudoedit
bunun bir parçasıdır sudo
ve farklı bir kullanıcı olarak düzenleme izin ve (yükseltilmiş ayrıcalıklarla keyfi bir işlemi çalıştırmak için editör arıyorsanız exec) alt bombardımanı bir editör üzerinden güvenlik sorununu önlemek için de kullanılabilir.