Quiero crear una secuencia de comandos bash que debe ejecutarse con sudo pero debe tener en cuenta el nombre del usuario que no lo hizo. Entonces, si el usuario bob
ejecuta, sudo ./myscript.sh
me gustaría myscript.sh
saber quién bob
fue el que lo ejecutó.
Miremos adentro myscript.sh
:
USER=$(whoami)
# Do something that takes into account the username.
¿Cómo puedo saber el nombre del usuario que generó el proceso? Más específicamente, ¿qué debo usar en lugar de whoami
para obtener bob
y no root
?
#!/usr/bin/env bash
en mis scripts de bash.
sh
u otra cosa.
USER=$(whoami)
. Tenga en cuenta queUSER
ya existe como una variable interna de shell. Además, si se trata de un script bash, no lo ejecute utilizandosh
, que solo tiene un subconjunto de características compatibles con POSIX.