il sudo
Il comando ti consente di eseguire comandi in Linux come se fossi qualcun altro, Che cosa root
. sudo
ti permette anche di controllare chi può entrare root's
capacità, con granularità. Concedere agli utenti l'accesso completo o consentire loro di utilizzare un piccolo sottoinsieme di comandi. Ti mostriamo come.
Sudo e permessi di root
Abbiamo tutti sentito (semplificazione esagerata) che tutto in Linux è un file. In realtà, praticamente tutto nel sistema operativo, dai processi, record, directory, prese e tubi, comunicare con il kernel tramite un descrittore di file. Quindi anche quando tutto Non è un file, la maggior parte degli oggetti del sistema operativo viene gestita Come Li avevamo. Quando possibile, il design dei sistemi operativi Linux e Unix-like aderisce a questo principio.
Il concetto di “tutto è un file” ha una grande portata su Linux. È facile quindi vedere come i permessi dei file in Linux siano diventati uno dei pilastri dei privilegi e dei diritti degli utenti.. Se hai un file o una directory (un tipo speciale di file), puoi farci quello che vuoi, anche modificarlo, rinominalo, spostalo ed eliminalo. Puoi anche determinare le autorizzazioni sul file in modo che altri utenti o gruppi di utenti possano leggere, modificare o eseguire il file. Tutti sono governati da queste autorizzazioni.
Tutto quello, allo stesso tempo come super utente, sono conosciuti come root
. il root
l'account è un account con privilegi speciali. Non è soggetto alle autorizzazioni di nessuno degli oggetti del sistema operativo. L'utente root può fare qualsiasi cosa e, in pratica, in qualsiasi momento.
Certo, chiunque abbia accesso a root's
la password può fare lo stesso. Potrebbero provocare il caos intenzionalmente o accidentalmente. In realtà, il root
L'utente può anche creare scompiglio se commette un errore. Nessuno è infallibile. È una cosa pericolosa.
Ecco perché ora è considerata una best practice no accedi come root
assolutamente. Accedi con un account utente frequente e usa sudo
per eleva i tuoi privilegi per un breve periodo di tempo ne hai bisogno. Spesso, è solo per impartire un singolo comando.
IMPARENTATO: Cosa significa “tutto è un file” en Linux?
L'elenco dei sudoer
sudo
era già installato sui computer Ubuntu 18.04.3, Manjaro 18.1.0 e Fedora 31 usato per indagare su questo post. Questa non è una sorpresa. sudo
esiste dai primi anni '90 1980 ed è diventato il mezzo standard di funzionamento del superutente per quasi tutte le distribuzioni.
Quando installi una distribuzione moderna, l'utente che crei durante l'installazione viene aggiunto a un elenco di utenti chiamato sudoers. Questi sono gli utenti che possono utilizzare il sudo
comando. Perchè tu hai sudo
poteri, puoi usarli per aggiungere altri utenti all'elenco sudoers.
Certo, non è saggio cedere lo stato di superutente completo a piacimento o a chiunque abbia solo un bisogno parziale o specifico. L'elenco sudoer ti consente di specificare quali comandi possono essere utilizzati da diversi utenti sudo
insieme a. Quel modo, non dà loro le chiavi del regno, ma possono ancora realizzare ciò che devono fare.
Esecuzione di un comando come un altro utente
Originariamente, si chiamava "superutente do", perché potrei fare le cose come superutente. Il tuo ambito ora è stato ampliato e puoi usarlo sudo
eseguire un comando come se fosse un qualsiasi utente. È stato rinominato per riflettere questa nuova funzionalità.. Ora si chiama “Utente sostitutivo”.
Utilizzo sudo
per eseguire un comando come un altro utente, dobbiamo usare il -u
opzione (Nome utente). Qui, corriamo il chi sono comando come utente mary
. Se usi il sudo
comando senza -u
opzione, eseguirà il comando come root
.
E comunque, perché stai usando sudo
ti verrà chiesta la password.
sudo -u mary whoami
La soluzione di whoami
ci dice che l'account utente che esegue il comando è mary
.
Puoi usare il sudo
per accedere come un altro utente senza conoscere la password. Ti verrà richiesta la tua password. Dobbiamo usare il -i
(accesso) opzione.
sudo -i -u maria
pwd
chi sono
ls -hl
Uscita
Hai effettuato l'accesso come mary
. I file “.bashrc”, “.bash_aliases” e “.profilo” Per l'account utente MARY, vengono elaborati esattamente come se il proprietario dell'account utente MARY avesse effettuato l'accesso.
- Il prompt dei comandi viene modificato per indicare che si tratta di una sessione per l'account utente
mary
. - il
pwd
Ripetere il comando in cui ci si trova oramary's
home directory. whoami
ci dice che stai utilizzando un account utentemary
.- I file nella directory appartengono al
mary
account utente. - il
exit
il comando ti riporta a la tua normale sessione dell'account utente.
Modificare il file sudoers
Per aggiungere utenti all'elenco delle persone che possono utilizzare sudo
, devi modificare il sudoers
procedimento. È di vitale importanza che tu lo faccia solo usando il visudo
comando. il visudo
Il comando impedisce a più persone di provare a modificare il file sudoers contemporaneamente. Cosa c'è di più esegue la verifica e l'analisi nel contenuto del file mentre li salvi.
Se le tue modifiche falliscono i test, il file non viene salvato alla cieca. Hai delle opzioni. Puoi annullare e abbandonare le modifiche, torna indietro e modifica di nuovo le modifiche, o forza il salvataggio delle modifiche errate. L'ultima opzione è una pessima idea. Non essere tentato di farlo. Potresti trovarti in una situazione in cui tutto il mondo bloccato accidentalmente in modo che non possa essere utilizzato sudo
.
Anche se si avvia la procedura di modifica con il tasto visudo
comando, visudo
non un editore. Chiama uno dei tuoi editor esistenti per apportare modifiche al file. Su Manjaro e Ubuntu, il visudo
comando lanciato il semplice editor nano
. In Fedora, visudo
lanciato il più capacema meno intuitivo–vim
.
IMPARENTATO: Come uscire dall'editor Vi o Vim
Se preferisci usare nano
in Fedora, può farlo facilmente. Primo, installare nano
:
sudo dnf install nano
E successivamente visudo
doveva essere invocato con questo comando:
sudo EDITOR=nano visudo
Sembra un buon candidato per un alias. il nano
L'editor si apre con il file sudoers caricato al suo interno.
Aggiungi utenti al gruppo sudo
Utilizzo visudo
per aprire il file sudoers. Usa questo comando o quello precedentemente descritto per specificare l'editor di tua scelta:
sudo visudo
Scorri il file sudoers fino a vedere la definizione di %sudo
iscrizione.
Il segno di percentuale indica che si tratta di una definizione di gruppo e non di una definizione utente. In alcune distribuzioni, il %sudo
la linea ha un hash #
all'inizio della riga. Questo rende la linea un commento. se questo è il caso, rimuovi l'hash e salva il file.
il %sudo
la linea è divisa in questo modo:
- % sudo: il nome del gruppo.
- TUTTI =: Questa regola si applica a tutti gli host su questa rete.
- (TUTTO TUTTO): i membri di questo gruppo possono eseguire comandi come tutti gli utenti e tutti i gruppi.
- Tutti: i membri di questo gruppo possono eseguire tutti i comandi.
Per riformulare un po', i membri di questo gruppo possono eseguire qualsiasi comando, come qualsiasi utente o gruppo, su questo computer o su qualsiasi altro host su questa rete. Quindi, un modo semplice per concedere a qualcuno i privilegi di root e la possibilità di usare sudo
, è aggiungerli a sudo
gruppo.
Abbiamo due utenti, Tom e Mary, con account utente. tom
e mary
rispettivamente. Aggiungeremo un account utente tom
al sudo
gruppo con lui usermod
comando. il -G
L'opzione (gruppi) specifica il gruppo a cui andremo ad aggiungere il tom
conto a. il -a
(Aggiungere) opzione Inserisci questo gruppo nel gruppo elenca l'account utente tom
già acceso. Senza questa opzione, l'account utente tom
verrebbe inserito nel nuovo gruppo ma rimosso da qualsiasi altro gruppo.
sudo usermod -a -G sudo tom
Vediamo in quali gruppi appartiene Mary:
gruppi
Account utente mary
è solo nel mary
gruppo.
Controlliamo con Tom:
gruppi
il tom
account utente, e così, Tom, è nei gruppi tom
e sudo
.
Proviamo a convincere Mary a fare qualcosa che richieda sudo
privilegi.
sudo less /etc/shadow
Mary non può guardare all'interno del file limitato “/ eccetera / ombra”. Riceve un leggero rimprovero per aver cercato di usare sudo
senza permesso. Vediamo come fa Tom:
sudo less /etc/shadow
Non appena Tom inserisce la sua password, il file è mostrato / eccetera / ombra.
Semplicemente aggiungendolo al sudo
gruppo, è stato elevato ai ranghi d'élite di coloro che possono usare sudo
. Assolutamente nessuna restrizione.
Concedi agli utenti diritti sudo limitati
Tom si è dato completamente sudo
diritti. Può fare qualsiasi cosa root
O chiunque altro nel sudo
gruppo - può fare. Questo potrebbe darti più potere di quello che sei felice di dare.. A volte è necessario che un utente esegua una funzione che richiede root
privilegi, ma non c'è motivo giustificabile per loro di avere pieno sudo
accesso. Puoi raggiungere questo equilibrio aggiungendoli al file sudoers ed elencando i comandi che possono usare.
Incontriamo Harry, proprietario dell'account utente. harry
. Lui non c'è sudo
gruppo, e lui no sudo
privilegi.
gruppi
È utile che Harry possa installare il software, ma non vogliamo che abbia sudo
diritti. Va bene, Nessun problema. accendiamo visudo
:
sudo visudo
Scorri il file verso il basso fino a superare le definizioni del gruppo. Aggiungiamo una riga per Harry. Perché questo è un Nome utente definizione e non una definizione di gruppo, non è necessario iniziare la riga con un segno di percentuale.
La voce per l'account utente harry è:
harry ALL=/usr/bin/apt-get
Si noti che esiste una scheda tra “Saccheggiare” e “TUTTI =”.
Questo viene letto come account utente harry
puoi usare i comandi elencati su tutti gli host connessi a questa rete. C'è un comando nella lista, Che cos'è “/ usr / bidone / apt-get”. Possiamo concedere a Harry l'accesso a più di un comando aggiungendoli all'elenco dei comandi, separati da virgole.
Aggiungi la riga al file sudoers e salva il file. Se vuoi controllare che la linea sia sintatticamente corretta, possiamo chiedere visudo
per scansionare il file e controllare la sintassi per noi, usando il -c
(marchio solista) opzione:
sudo visudo -c
Vengono effettuati controlli e visudo
segnala che va tutto bene. Harry dovrebbe ora essere in grado di usare apt-get
installare software ma dovrebbe essere rifiutato se si tenta di utilizzare qualsiasi altro comando che richieda sudo
.
sudo apt-get install finger
L'appropriato sudo
Harry ha ottenuto i diritti e può installare il software.
E se Harry provasse a usare un comando diverso di cui ha bisogno? sudo
?
sudo spegnilo ora
Harry non può eseguire il comando. Ti abbiamo concesso con successo un accesso specifico e limitato. Puoi usare il comando designato e nient'altro.
Utilizzo degli alias utente sudoers
Se vogliamo dare a Maria gli stessi privilegi, potremmo aggiungere una riga nel file sudoers per l'account utente. mary
esattamente come abbiamo fatto con Harry. Un altro modo più ordinato per ottenere lo stesso risultato è usare a User_Alias
.
nel file sudoers, un User_Alias
contiene un elenco di nomi di account utente. Il nome di User_Alias
può essere successivamente utilizzato in una definizione per rappresentare tutti quegli account utente. Se vuoi cambiare i privilegi di quegli account utente, ha solo una riga da modificare.
Creiamo un User_Alias
e usalo nel nostro file sudoers.
sudo visudo
Scorri verso il basso nel file fino a raggiungere la riga di specifica User_Alias.
Aggiungi il User_Alias
scrivere:
User_Alias INSTALLATORI = harry, Maria
Ogni elemento è separato da uno spazio, non per un ciglio. La logica si rompe come:
- User_Alias: Questo dice
visudo
questo sarà unUser_Alias
. - INSTALLATORI: Questo è un nome arbitrario per questo alias.
- = Harry, Maria: L'elenco degli utenti da includere in questo alias.
Ora modificheremo la riga che abbiamo aggiunto in precedenza per l'account utente. harry
:
harry ALL=/usr/bin/apt-get
Cambialo per dire:
INSTALLATORI ALL=/usr/bin/apt-get
Questo dice che tutti gli account utente inclusi nella definizione di “INSTALLATORI” User_Alias
può eseguire il apt-get
comando. Possiamo testarlo con Mary, chi ora dovrebbe essere in grado di installare il software.
sudo apt-get install colordiff
Maria può installare il software perché è in “INSTALLATORI” User_Alias
, lancio User_Alias
ti sono stati concessi quei diritti.
Tre trucchi veloci sudo
Quando dimentichi di aggiungere sudo
a un comando, scriba
sudo !!
E l'ultimo comando verrà ripetuto con sudo
aggiunto all'inizio della riga.
Una volta che hai usato sudo
e autenticato con la tua password, non dovrai usare la tua password con più sudo
comandi durante 15 minuti. Se vuoi che la tua autenticazione venga dimenticata immediatamente, utilizzo:
sudo -k
Ti sei mai chiesto dove puoi vedere fallito? sudo
tentativi di comando? Dall'archivio “/var/log/auth.log”. Puoi vederlo con:
less /var/log/auth.log
Possiamo vedere la voce dell'account utente mary che ha effettuato l'accesso a TTY pts / 1 quando hai provato a eseguire il shutdown
comando come utente “radice”.
Con grande potenza …
… arriva la capacità di delegare parti ad altri. Ora sai come potenziare gli altri utenti in modo selettivo.