In Linux, sudo
e su
appartengono NEITHER to capability-based security,NOR to Protection Rings
!
Sicurezza basata sulle capacità sono un software o un programma specifico con un livello minimo di implementazione (sudo e su non condividono alcuna capacità e hanno e sono molto lontani dal principio del privilegio minimo!), mentre Anelli di protezione applica tutto direttamente dal livello del processore / CPU (sudo e su non ha nulla a che fare con il processore o l'architettura gerarchica)!
Sudo è usato per eseguire un particolare comando con permessi di root. La cosa interessante è che quando usi sudo per un particolare comando, il sistema ti chiede la password dell'utente corrente. Una volta inserita la password, il comando viene eseguito con i privilegi di root.
Su è usato per passare a qualsiasi account utente. Il sistema richiede la password corrispondente all'utente commutato. Se su viene utilizzato senza alcuna opzione, viene eseguito un passaggio all'account utente root. In questo caso, il sistema richiede la password dell'utente root.
For example, when editing a system file, we usually need sudo or su to
temporarily switch to user root. Does this example belong to
capability-based security, or to protection rings?
Non passiamo alla root dell'utente, ma solo il nostro accesso / privilegio a determinate azioni specifc è aumentato ed eseguito con i privilegi di root. Il processo verrebbe comunque eseguito nello stesso spazio utente, con la sola differenza che al privilegio è stato concesso quello di root! In realtà, tutte queste cose di accessibilità sono mappate su /etc/sudoers
file in cui l'accesso a ciascuna delle attività come l'esecuzione di determinate applicazioni, la modifica delle impostazioni di sistema, ecc ... sono elencate per ogni sudoer. Non tutti gli utenti sono tenuti nell'elenco di sudoers, potrebbero esserci diversi utenti esclusi da questo per la sicurezza del sistema!
Quindi ogni volta che eseguiamo sudo
OR su
, c'è una chiamata di sistema al kernel, cioè, setuid()
chiamata di sistema viene invocata al kernel Linux e quindi l'uid dell'utente è impostato a 0 (quello di root) e, quindi, viene visualizzato #
, l'intera operazione viene eseguita nello stesso spazio utente dell'utente e nella modalità utente e non nello spazio utente di root !!!