Une question étrange, je sais. Voici le script:
echo $USER
Voici la commande que j'utilise pour l'exécuter:
Sudo ./myscript.sh
Pour le moment, il affiche "root" mais je veux qu'il imprime jon
, mon nom d'utilisateur. Y a-t-il un moyen de le faire en modifiant le script et non la commande?
Sudo_USER
au lieu de USER
.Sudo
place le nom de l'utilisateur qui l'a exécuté dans la variable d'environnement Sudo_USER
:
ek@Io:~$ Sudo sh -c 'echo $USER'
[Sudo] password for ek:
root
ek@Io:~$ Sudo sh -c 'echo $Sudo_USER'
ek
Vous pouvez donc simplement remplacer $USER
par $Sudo_USER
dans votre script:
echo $Sudo_USER
man Sudo
, dans la section "ENVIRONNEMENT":
Sudo_USER Set to the login name of the user who invoked Sudo.
La page de manuel décrit également d’autres variables d’environnement associées définies par Sudo
qui peuvent être utiles, telles que Sudo_UID
et Sudo_GID
.
Obtenir $ USER dans le script Shell lors de l'exécution avec sudo?