Perché uno è preferito rispetto all'altro in questo esempio?
sudo su
echo "options iwlwifi 11n_disable=1" >> /etc/modprobe.d/iwlwifi.conf
exit
Si prega di fornire collegamenti alla documentazione di Ubuntu.
Perché uno è preferito rispetto all'altro in questo esempio?
sudo su
echo "options iwlwifi 11n_disable=1" >> /etc/modprobe.d/iwlwifi.conf
exit
Si prega di fornire collegamenti alla documentazione di Ubuntu.
Risposte:
Il sudo sucomando sta per "cambia utente" e ti consente di diventare un altro utente. Consente a un utente autorizzato di eseguire un comando come superutente o un altro utente, come specificato nel file sudoers.
L'opzione ‑i (simula il login iniziale) esegue la shell specificata dalla voce del database delle password dell'utente di destinazione come shell di login. Ciò significa che i file di risorse specifici per l'accesso come .profile o .login verranno letti dalla shell. Se viene specificato un comando, viene passato alla shell per l'esecuzione tramite l'opzione -c della shell. Se non viene specificato alcun comando, viene eseguita una shell interattiva.
Fonte: ManPage
sudo suti viene chiesta la password, non la password di root. L'utente root non deve nemmeno avere una password. Indipendentemente da ciò, se un amministratore utilizza la password di root, ciò non implica che tutti gli utenti normali lo sappiano.
sudoviene eseguito sucome root e root può essere eseguito da suqualsiasi utente senza conoscere la propria password. I fraintendimenti fondamentali su come funziona il sistema meritano una valutazione negativa dell'IMO.
sudo -inon chiederà neanche la password di root, quindi non è rilevante per la domanda.
sudo sucambia solo l'utente corrente in root. Le impostazioni dell'ambiente (come PATH) rimangono le stesse.
sudo -i crea un nuovo ambiente come se root avesse appena effettuato l'accesso.
La differenza è più evidente se si utilizzano altri utenti. Dopo sudo su bobsarai bob, ma nello stesso posto. Dopo sudo -i -u bobche sarai bob, nella home directory di bob, con la shell predefinita di bob e con bob .profilee tutti gli altri script di login che sono stati eseguiti.
Vedi man sudoper maggiori dettagli su cosa -ifa. Sfortunatamente, i man sudettagli sono chiari.
Trovato una versione di man su(da login-1: 4.1.4.2 + svn3283-3ubuntu5.1) che ha il seguente da dire:
$ PATH ripristinato secondo le opzioni /etc/login.defs ENV_PATH o ENV_SUPATH (vedi sotto);
$ IFS reimpostato su "<spazio> <tab> <nuova>", se impostato.
Si noti che il comportamento predefinito per l'ambiente è il seguente:
Le variabili di ambiente $ HOME, $ SHELL, $ USER, $ LOGNAME, $ PATH e $ IFS vengono ripristinate.
Se --login non viene utilizzato, l'ambiente viene copiato, ad eccezione delle variabili sopra.
Se si utilizza --login, le variabili di ambiente $ TERM, $ COLORTERM, $ DISPLAY e $ XAUTHORITY vengono copiate se impostate.
Altri ambienti potrebbero essere impostati da moduli PAM.
Quindi, se e fino a che punto sudo sul'ambiente cambia dipende dalla tua distribuzione e configurazione. Quindi sudo -iè teoricamente più portatile.
su fa impostazioni di ambiente cambiamento, e può essere utilizzato per simulare un login utilizzando -o -l. Anche senza -l, $PATH è cambiato. Prova queste affermazioni prima di farle! (Intendevi che PWDrimane lo stesso?)
sudo su -e sudo -i?
$PATHè cambiato quando lo uso susenza sudo(usando la password di root). Secondo info su(che potrebbe essere una cosa migliore da collegare nella tua risposta), suleggi davvero la voce della password per l'utente che stai diventando. Forse il $PATHcambiamento che sto osservando dipende dal sistema (sono su Debian 7).
man su(che è più lungo di quello a cui ti sei collegato) dice che fa parte di shadow-utils 4.1.5.1. La mia manpagina dice anche che $PATHè impostato anche se --preserve-environmentviene utilizzato. Quindi immagino che sia davvero solo una differenza tra le diverse versioni di su.
/etc/pam.d/sudoe /etc/pam.d/supuò essere impostato per fare cose completamente diverse o esattamente le stesse.
Il problema principale è una delle (non così) impostazioni dell'ambiente sano.
L'uso sudo sudella nuova shell ottiene il suo ambiente dall'utente che emette il comando, il che può essere problematico.
Con sudo -ite ottieni una shell root pulita.
Vedi Note speciali su sudo e shell
Resta da osservare che raramente è assolutamente necessario creare una shell di root.
sudo -iè simile sudo su -, che in realtà non ottiene il suo ambiente dall'utente che emette il comando.
sudo sucontro sudo -i.