¿Puedo acceder a la variable $ USER de origen desde un script ejecutado con 'sudo'?

19

Una pregunta extraña, lo sé. Aquí está el guión:

echo $USER

Aquí está el comando que uso para ejecutarlo:

sudo ./myscript.sh

Ahora imprime "root" pero quiero que se imprima jon , mi nombre de usuario. ¿Hay alguna manera de hacerlo cambiando la secuencia de comandos, y no el comando?

    
pregunta Jon 31.12.2016 - 19:08

1 respuesta

27

Use la variable de entorno SUDO_USER en lugar de USER .

sudo coloca el nombre del usuario que lo ejecutó en la variable de entorno SUDO_USER :

ek@Io:~$ sudo sh -c 'echo $USER'
[sudo] password for ek:
root
ek@Io:~$ sudo sh -c 'echo $SUDO_USER'
ek

Así que puedes simplemente reemplazar $USER con $SUDO_USER en tu script:

echo $SUDO_USER

Lectura adicional

respondido por el Eliah Kagan 31.12.2016 - 19:23

Lea otras preguntas en las etiquetas