GNU/Linux >> Linux Esercitazione >  >> Linux

Perché le variabili di percorso sono diverse durante l'esecuzione tramite Sudo e Su?

Sulla mia macchina virtuale fedora, durante l'esecuzione con il mio account utente ho /usr/local/bin nel mio cammino:

[[email protected] ~]$ env | grep PATH
 PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/justin/bin

E allo stesso modo durante l'esecuzione di su :

[[email protected] ~]$ su -
Password: 
[[email protected] justin]# env | grep PATH
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/justin/bin

Tuttavia, durante l'esecuzione tramite sudo , questa directory non è nel percorso:

[[email protected] justin]# exit
[[email protected] ~]$ sudo bash
[[email protected] ~]# env | grep PATH
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/sbin:/bin:/usr/sbin:/usr/bin

Perché il percorso dovrebbe essere diverso durante l'esecuzione tramite sudo ?

Risposta accettata:

Dai un'occhiata a /etc/sudoers . Il file predefinito in Fedora (così come in RHEL, e anche Ubuntu e simili) include questa riga:

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

Ciò garantisce che il tuo percorso sia pulito durante l'esecuzione di binari in sudo. Questo aiuta a proteggere da alcune delle preoccupazioni indicate in questa domanda. È comodo anche se non hai /sbin e /usr/sbin sulla tua strada.


Linux
  1. Quando è adatto Dd per copiare i dati? (o, quando sono Read() e Write() parziali)?

  2. Le utilità Linux sono intelligenti quando si eseguono comandi convogliati?

  3. Come mantenere le variabili di ambiente quando si utilizza sudo

  4. Qual è la differenza tra root e sudo?

  5. Perché ricevo Autorizzazione negata quando eseguo ssh-add?

Linux:perché vero e falso sono così grandi?

Perché alcune Emoji in bianco e nero e altre sono troppo grandi?

Quando viene gestito un segnale e perché alcune informazioni si bloccano?

Perché vero e falso sono così grandi?

Perché non ho l'evidenziazione della sintassi quando sudo vi <filename>?

comando linux trovato ma non trovato quando si usa sudo