Ich möchte ein Bash-Skript erstellen, das mit sudo ausgeführt werden muss, aber den Namen des Nicht-sudo-Benutzers berücksichtigen soll, der es ausgeführt hat. Also, wenn der Benutzer bobläuft, sudo ./myscript.shwürde ich gerne myscript.shwissen, bobwer es ausgeführt hat.
Schauen wir mal rein myscript.sh:
USER=$(whoami)
# Do something that takes into account the username.
Wie kann ich den Namen des Benutzers erfahren, der den Prozess ausgelöst hat? Genauer gesagt, was soll ich verwenden, anstatt whoamizu bekommen bobund nicht root?
#!/usr/bin/env bashmeinen Bash-Skripten einen solchen Hashbang hinzugefügt .
shoder etwas anderem aufrufen .
USER=$(whoami). Beachten Sie, dass dieUSERbereits als Shell-interne Variable existiert. Wenn es sich um ein Bash-Skript handelt, sollten Sie es nicht mit ausführen, da esshnur eine POSIX-kompatible Teilmenge von Funktionen enthält.