Bash: Test Who Runs a Script: Difference between revisions

From WikiMLT
m (Spas moved page Bash Test Who Runs a Script to Bash: Test Who Runs a Script without leaving a redirect)
m (Text replacement - "mlw-continue" to "code-continue")
 
Line 5: Line 5:
cat test-user.sh
cat test-user.sh
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="bash" line="1" class="mlw-continue">
<syntaxhighlight lang="bash" line="1" class="code-continue">
#!/bin/bash
#!/bin/bash
SCRIPT_UID="33"
SCRIPT_UID="33"
Line 14: Line 14:
echo "The script is running as $(id $EUID -un)."
echo "The script is running as $(id $EUID -un)."
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="shell" line="1" class="mlw-continue">
<syntaxhighlight lang="shell" line="1" class="code-continue">
./test-user.sh
./test-user.sh
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="shell-session" class="mlw-continue">
<syntaxhighlight lang="shell-session" class="code-continue">
Please run as www-data, use: sudo -u www-data ./test-user.sh
Please run as www-data, use: sudo -u www-data ./test-user.sh
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="shell" line="1" class="mlw-continue">
<syntaxhighlight lang="shell" line="1" class="code-continue">
./test-user.sh
./test-user.sh
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="shell-session" class="mlw-continue">
<syntaxhighlight lang="shell-session" class="code-continue">
The script is running as www-data.
The script is running as www-data.
</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 08:29, 26 September 2022

So­lu­tion

cat test-user.sh
#!/bin/bash
SCRIPT_UID="33"
[[ $EUID -ne $SCRIPT_UID ]] && {
    echo "Please run as $(id $SCRIPT_UID -un), use: sudo -u $(id $SCRIPT_UID -un) $0"
    exit 1
}
echo "The script is running as $(id $EUID -un)."
./test-user.sh
Please run as www-data, use: sudo -u www-data ./test-user.sh
./test-user.sh
The script is running as www-data.

Ref­er­ences