<Precedenti | Contenuti | Succ.>
sudo – Esegui un comando come un altro utente
. sudo il comando è come su in molti modi, ma ha alcune importanti capacità aggiuntive. L'amministratore può configurare sudo per consentire a un utente normale di eseguire comandi come un utente diverso (di solito il superutente) in modo molto controllato. In particolare, un utente può essere limitato a uno o più comandi specifici e a nessun altro. Un'altra differenza importante è che l'uso di sudo non richiede l'accesso alla password del superutente. Per autenticarsi utilizzando sudo, l'utente utilizza la propria password. Diciamo, ad esempio, che sudo è stato configurato per consentirci di eseguire un programma di backup fittizio chiamato "backup_script", che richiede privilegi di superutente. Con sudo si farebbe così:
[io@linuxbox~]$ sudo backup_script
Password:
Avvio del backup del sistema...
[io@linuxbox~]$ sudo backup_script
Password:
Avvio del backup del sistema...
Dopo aver inserito il comando, ci viene richiesta la nostra password (non quella del superutente) e, una volta completata l'autenticazione, il comando specificato viene eseguito. Una differenza importante tra su e sudo è che sudo non avvia una nuova shell, né carica l'ambiente di un altro utente. Ciò significa che i comandi non devono essere quotati in modo diverso da come lo sarebbero senza usare sudoSi noti che questo comportamento può essere sovrascritto specificando varie opzioni. Vedere sudo pagina man per i dettagli.
Per vedere quali privilegi sono concessi da sudo, usa l'opzione "-l" per elencarli:
[io@linuxbox~]$ sudo -l
L'utente me può eseguire i seguenti comandi su questo host: (ALL) ALL
[io@linuxbox~]$ sudo -l
L'utente me può eseguire i seguenti comandi su questo host: (ALL) ALL
Ubuntu e sudo
Uno dei problemi ricorrenti per gli utenti abituali è come eseguire determinate attività che richiedono privilegi di superutente. Queste attività includono l'installazione e l'aggiornamento del software, la modifica dei file di configurazione del sistema e l'accesso ai dispositivi. Nel mondo Windows, questo viene spesso fatto assegnando agli utenti privilegi amministrativi. Ciò consente agli utenti di eseguire queste attività. Tuttavia, consente anche ai programmi eseguiti dall'utente di avere le stesse capacità. Ciò è auspicabile nella maggior parte dei casi, ma consente anche il malware (software dannosi) come i virus per avere libero sfogo nel computer.
Nel mondo Unix, c'è sempre stata una divisione più ampia tra utenti normali e amministratori, a causa della tradizione multiutente di Unix. L'approccio adottato in Unix è quello di concedere privilegi di superutente solo quando necessario. Per fare ciò, su e sudo i comandi sono comunemente usati.
Fino a qualche anno fa, la maggior parte delle distribuzioni Linux si basava su su per questo scopo. su non richiedeva la configurazione che sudo richiesto, e avere un account root è tradizionale in Unix. Questo ha introdotto un problema. Gli utenti erano tentati di operare come root inutilmente. Infatti, alcuni utenti utilizzavano i loro sistemi esclusivamente come utente root, poiché elimina tutti quei fastidiosi messaggi di "permesso negato". È così che si riduce la sicurezza di un sistema Linux a quella di un sistema Windows. Non è una buona idea.
Quando Ubuntu è stato introdotto, i suoi creatori hanno adottato una strategia diversa. Per impostazione predefinita, Ubuntu disabilita gli accessi all'account root (non impostando una password per l'account) e utilizza invece sudo per concedere privilegi di superutente. All'account utente iniziale viene concesso l'accesso completo ai privilegi di superutente tramite sudo e può concedere poteri simili agli account utente successivi.