Da un lato, ci sono cose che nessun utente può fare, come ad esempio
- directory hard linking (a causa delle limitazioni del file system)
- scrivere su un CD-ROM già masterizzato (perché fisica)
Ma quelli non sono privilegi, perché non possono essere concessi, semplicemente non sono possibili per nessuno.
Quindi ci sono restrizioni per l'intero sistema o parti di esso che possono essere attivate o disattivate.
Ad esempio, su OS X esiste un'opzione per consentire l'esecuzione del codice solo se è stato firmato da Apple.
Non lo considero nemmeno un vero privilegio, perché nessun utente può averlo se il superutente non può. Puoi disabilitarlo solo a livello globale.
Modifica: la
tua idea di un file senza il bit eseguibile rientra anche in questa categoria, poiché letteralmente nessuno è in grado di farlo e nessuno può ottenere tale autorizzazione.
E anche quando si concede a un altro utente o gruppo l'autorizzazione per eseguire quel file, ma non è presente root o un gruppo di utenti root, root sarà comunque in grado di eseguire quel file (testato su OS X 10.10, 10.11 e Ubuntu 15.04 server).
A parte questi casi, non c'è praticamente nulla che root non possa fare.
Vi è, tuttavia, una cosa chiamata modalità kernel (al contrario della modalità utente).
Per quanto ne so, su un sistema sano solo il kernel, le estensioni del kernel e i driver funzionano in modalità kernel, e tutto il resto (compresa la shell da cui si accede come root) viene eseguito in modalità utente.
Si potrebbe quindi sostenere che "essere root non è abbastanza". Tuttavia, sulla maggior parte dei sistemi l'utente root è in grado di caricare i moduli del kernel, che a loro volta verranno eseguiti in modalità kernel, offrendo in modo efficace a root un modo per eseguire il codice in modalità kernel.
Ci sono sistemi, tuttavia, (come iOS) in cui ciò non è (arbitrariamente) possibile, almeno non senza sfruttare i sistemi di sicurezza. Ciò è dovuto principalmente alla maggiore sicurezza, come l'applicazione della firma del codice.
Ad esempio, ci sono chiavi di crittografia AES integrate nei processori di iDevices, a cui è possibile accedere solo dalla modalità kernel. I moduli del kernel potrebbero accedervi, ma il codice in quei moduli del kernel dovrebbe anche essere firmato da Apple affinché il kernel li accetti.
Su OS X, dalla versione 10.11 (El Capitan) esiste anche una cosiddetta "modalità rootless" (sebbene il nome sia fuorviante perché root esiste ancora), che proibisce effettivamente a root determinate cose che gli installatori possono ancora fare.
Citando questa eccellente risposta su AskDifferent :
Ecco cosa limita, anche da root:
- Non è possibile modificare nulla in / Sistema, / bin, / sbin o / usr (tranne / usr / local); o una qualsiasi delle app e utility integrate. Solo l'aggiornamento dell'installer e del software possono modificare queste aree, e anche lo fanno solo quando installano pacchetti firmati Apple.
root
, e quindi nessun diritto a cui possa essere sottrattoroot
.