Je veux créer un script bash qui doit être exécuté avec sudo mais doit prendre en compte le nom de l'utilisateur non sudo qui l'a exécuté. Donc, si l'utilisateur bob
s'exécute, sudo ./myscript.sh
je voudrais myscript.sh
savoir si bob
c'est lui qui l'a exécuté.
Regardons à l'intérieur myscript.sh
:
USER=$(whoami)
# Do something that takes into account the username.
Comment puis-je connaître le nom de l'utilisateur qui a engendré le processus? Plus précisément, que dois-je utiliser au lieu de whoami
pour obtenir bob
et non root
?
#!/usr/bin/env bash
sur mes scripts bash.
sh
ou autre chose.
USER=$(whoami)
. Notez que leUSER
existe déjà en tant que variable interne du shell. De plus, s'il s'agit d'un script bash, ne l' exécutez pas à l'aidesh
, qui ne possède qu'un sous-ensemble de fonctionnalités compatibles POSIX.