如何确定shell脚本是否以root权限运行?

时间:2011-06-15 18:21:14

标签: shell permissions sudo

我有一个我想要使用su权限运行的脚本,但是脚本中会出现故障的有趣脚本化命令,所以我想先预先进行干净的测试以确定脚本是否会没有SU功能就失败了。

对bash,sh和/或csh执行此操作的好方法是什么?

2 个答案:

答案 0 :(得分:13)

的bash / SH:

#!/bin/bash
# (Use #!/bin/sh for sh)
if [ `id -u` = 0 ] ; then
        echo "I AM ROOT, HEAR ME ROAR"
fi

CSH:

#!/bin/csh
if ( `id -u` == "0" ) then
        echo "I AM ROOT, HEAR ME ROAR"
endif

答案 1 :(得分:9)

您可以在脚本开头添加类似内容:

#!/bin/sh

ROOTUID="0"

if [ "$(id -u)" -ne "$ROOTUID" ] ; then
    echo "This script must be executed with root privileges."
    exit 1
fi