Linux kullanımında, kökün ayrıcalıkları böylece bu belgelere bakarak kökün özel ayrıcalıklarla tam bir listesini alabilirsiniz "yetenekleri" bölünmüş bir noktada idi: man 7 capabilities
.
Sorunuzu yanıtlamak için, bir komut bu ayrıcalıklardan birine ihtiyaç duyduğunda root olarak çalışmayı gerektirir ve komut dosyası olmayan çalıştırılabilir dosya meta verilerinde ayarlanan ilgili özelliğe sahip değil (örneğin, bir python komut dosyası yetenek gerektiriyorsa, shebang hattında belirtilen python yorumlayıcısında olması gerekir).
Kök erişimi gerektiren bazı komutların sudo
, yürütülebilir dosyalarında SUID biti ayarladıkları gibi bir şeye ihtiyaç duymadıklarını unutmayın . Bu bit, çalıştırılabilir erişimi olan herhangi biri tarafından çalıştırıldığında çalıştırılabilir dosya sahibinin (genellikle kök) çalışmasına neden olur. Bir örnek olarak, sudo
kullanıcıların değişmesi, yapması gereken ayrıcalıklı bir eylemdir.
EDIT: Sorunuzdan, bir komutun çalıştırmadan önce root erişimi gerekip gerekmediğini belirleyebileceğiniz fikrine sahip olabileceğinizi not ediyorum. Konu bu değil. Bir program bazen kök ayrıcalıkları gerektirebilir ve diğer zamanlar gerektirmez ve bu, çalışma zamanında sağladığı veriler nedeniyle program tarafından verilen bir karar olabilir. Örneğin, vim
argümanlar olmadan ve sonra bir dizi tuşa basma ve yapıştırma yoluyla arama yaparak , bir dosyaya bir şey yazmasını söyleme, yazma izni olmayan bir dosya yazma veya belki de kök ayrıcalıkları gerektirecek başka bir komutu çalıştırma. Yürütmeden önceki komutla ilgili hiçbir şey, sonunda kök erişimi gerektireceğini gösteremez. Bu, yalnızca gerektiren bir şeyi yapmaya çalıştığı noktada belirlenebilecek bir şeydir.
Her neyse, işte root ayrıcalıklarının başvurulan el kitabından çok az örnek:
- Proses UID'lerinin (setuid (2), setreuid (2), setresuid (2), setfsuid (2)) keyfi manipülasyonlarını yapın;
- Dosyayı atla, izin kontrollerini oku, yaz ve çalıştır. (DAC, "isteğe bağlı erişim denetimi" nin kısaltmasıdır.)
- Baypas izni, sinyal gönderimini kontrol eder (bkz. Kill (2)). Bu, ioctl (2) KDSIGACCEPT işleminin kullanımını içerir.
- Ağla ilgili çeşitli işlemleri gerçekleştirin:
- arayüz konfigürasyonu;
- IP güvenlik duvarı yönetimi, maskeleme ve muhasebe;
- yönlendirme tablolarını değiştir;
- Bir soketi İnternet etki alanı ayrıcalıklı bağlantı noktalarına bağlayın (1024'ten daha az bağlantı noktası sayısı).
- Çekirdek modüllerini yükleme ve boşaltma (bkz. İnit_module (2) ve delete_module (2));
- Sistem saatini ayarlayın (settimdayday (2), stime (2), adjtimex (2)); gerçek zamanlı (donanım) saati ayarlayın.
- Aşağıdakileri içeren bir dizi sistem yönetimi işlemi gerçekleştirin: quotactl (2), mount (2), umount (2), swapon (2), swapoff (2), sethostname (2) ve setdomainname (2);
- Yeniden başlatma (2) ve kexec_load (2) kullanın.
- Chroot (2) kullanın.
- Proses nice değerini (nice (2), setpriority (2)) yükseltin ve keyfi prosesler için nice değerini değiştirin;