如何在 BASH 脚本中检查用户是否是 root 用户?
我知道我可以使用
[[ $UID -eq 0 ]] || echo "Not root"
或者
[[ $EUID -eq 0 ]] || echo "Not root"
但是如果脚本是通过 fakeroot 调用的,UID 和 EUID 都是 0(当然,因为 fakeroot 伪造了 root 权限)。
但是有没有办法检查用户是否是root?不尝试做只有 root 可以做的事情(即在/中创建文件)?
最佳答案
Fakeroot 设置包含 LD_LIBRARY_PATH
路径的自定义 libfakeroot
。例如:
/usr/lib/x86_64-linux-gnu/libfakeroot:/usr/lib64/libfakeroot:/usr/lib32/libfakeroot
您可以使用它来检测应用程序是否在按路径迭代并查找
libfakeroot
的 fakeroot 内运行。示例代码:
IS_FAKEROOT=false
for path in ${LD_LIBRARY_PATH//:/ }; do
if [[ "$path" == *libfakeroot ]]; then
IS_FAKEROOT=true
break
fi
done
echo "$IS_FAKEROOT"
关于linux - BASH:检查用户是否为 root,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33446353/