Qual è la relazione tra root e kernel? [chiuso]


8

Sulla base di una parte della prima risposta a queste domande :

leggere da un file (il kernel deve verificare che le autorizzazioni consentano di leggere da detto file, quindi il kernel esegue le istruzioni effettive sul disco per leggere il file)

Richiede il privilegio di root per modificare l'autorizzazione a un file. Con il privilegio di root, l'utente può accedere a qualsiasi file senza preoccuparsi dell'autorizzazione. Quindi, ci sono delle relazioni tra root e kernel?


La domanda è troppo vaga / poco chiara per rispondere.
psusi,

Questa domanda praticamente comporta diverse cose. Potrebbe essere necessario leggere informazioni sulla chiamata di sistema , sul privilegio e sul livello di privilegio . Non so come formulare meglio la domanda. In qualche modo, Steven D capisce cosa intendo.
Ron Vince,

Risposte:


13

Innanzitutto, un chiarimento:

Richiede il privilegio di root per modificare l'autorizzazione a un file.

Da man 2 chmod possiamo vedere che la chiamata di sistema chmod () restituirà EPERM (un errore di permessi) se:

L'UID effettivo non corrisponde al proprietario del file e il processo non è privilegiato (Linux: non ha la capacità CAP_FOWNER).

Ciò significa in genere che si sia bisogno di essere il proprietario del file o l'utente root. Ma possiamo vedere che la situazione in Linux potrebbe essere un po 'più complicata.

Quindi, ci sono delle relazioni tra root e kernel?

Come ha sottolineato il testo che hai citato, il kernel è responsabile di verificare che l'UID del processo che effettua una chiamata di sistema (ovvero l'utente con cui è in esecuzione) sia autorizzato a fare ciò che chiede. Pertanto, i superpoteri di root derivano dal fatto che il kernel è stato programmato per consentire sempre un'operazione richiesta dall'utente root (UID = 0).

Nel caso di Linux, la maggior parte dei vari controlli delle autorizzazioni che avvengono verificano se l'UID specificato ha le funzionalità necessarie . Il sistema di funzionalità consente un controllo più preciso su chi è autorizzato a fare cosa.

Tuttavia, al fine di preservare il significato UNIX tradizionale dell'utente "root", un processo eseguito con l'UID di 0 ha tutte le funzionalità.

Si noti che mentre i processi in esecuzione come UID = 0 dispongono dei privilegi di superutente, devono comunque effettuare richieste del kernel tramite l'interfaccia di chiamata di sistema.

Pertanto, un processo di spazio utente, anche in esecuzione come root, è ancora limitato in ciò che può fare in quanto è in esecuzione in " modalità utente " e il kernel è in esecuzione in " modalità kernel " che sono in realtà modalità di funzionamento distinte per la CPU stessa. Nella modalità kernel un processo può accedere a qualsiasi memoria o inviare qualsiasi istruzione. Nella modalità utente (sulle CPU x86 ci sono in realtà un numero di diverse modalità protette), un processo può accedere solo alla propria memoria e può solo dare alcune istruzioni. Quindi un processo di spazio utente in esecuzione come root ha ancora accesso solo alle funzionalità della modalità kernel che il kernel espone ad esso.


Dovremmo dire che root o UID = 0 ha il privilegio a livello di kernel? O ci sono restrizioni applicate dal kernel alla radice?
Ron Vince,

I processi in esecuzione come UID = 0 dispongono dei privilegi di superutente; tuttavia, continuano a fare richieste al kernel tramite l'interfaccia di chiamata di sistema. Un processo di spazio utente, anche in esecuzione come root, è ancora limitato in ciò che può fare in quanto è in esecuzione in "modalità utente" e il kernel è in esecuzione in "modalità kernel" che sono in realtà modalità di funzionamento distinte per la CPU stessa. Un processo di spazio utente in esecuzione come root ha ancora accesso solo alle funzionalità della modalità kernel che il kernel espone ad esso. Vedi linfo.org/kernel_mode.html per maggiori informazioni.
Steven D,

Ho aggiunto il mio elogio alla risposta con alcuni link.
Steven D,

Hai qualche consiglio sui libri Unix?
Ron Vince,

Grazie per avermelo detto. Sto ancora facendo una revisione della letteratura basata sulle risposte fornite. Indicano l'idea e il materiale letterario ma non ho ancora la certezza di determinare il giusto o sbagliato di quelle risposte.
Ron Vince,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.