Bazen kodda. Örneğin, ortasında hwclock.c:
if (getuid() == 0)
permitted = TRUE;
else {
/* program is designed to run setuid (in some situations) */
if (set || systohc || adjust) {
warnx(_("Sorry, only the superuser can change "
"the Hardware Clock."));
[...]
Kökseniz veya olmasanız programın davranışını değiştirecektir.
Diğer çoğu durumda, örtüktür; çekirdeğe devredildi. Örneğin, program sistemi yeniden başlatmanıza izin veren sistem çağrısını çağırırsa , yalnızca kökseniz çalışır. Kök değilseniz, uygulamanın (iyi yazılmışsa) size bildirdiği bir "izin reddedildi" hatasıyla karşılaşırsınız. Veya bir dosyayı silmeye çalışıyorsunuz; dosya üzerinde doğru izne sahipseniz başarılı olur; değilse, kök olup olmadığınıza bağlıdır - çekirdek rmçağrıldığında unlink()izinleri kontrol eder.
Yani hayır, prensip olarak, program kök ayrıcalıkları gerektiriyorsa veya istemiyorsa, sadece yürütülebilir dosyanın iznine bakarak diyemezsiniz. Birçok program sadece bazı işlemler için bunları gerektirecektir, bu nedenle böyle bir şey yapmak gerçekten zor olacaktır. Davası hwclockbir (kimse saatini okuyabilir ancak yalnızca kök ayarlayabilirsiniz) 'dir, ancak bunların yüzlerce ( kill, rm, cat...)
Sonra setuid programlarının ilgili ve ilginç dünyası var ...
/binveya/sbindizinleri yürütebilirsiniz . Sorun, bu programlardan bazılarının hangi kullanıcının çalıştırdığına bağlı olarak farklı çalışmasıdır.