gpt4 book ai didi

linux - BASH:检查用户是否是 root

转载 作者:IT王子 更新时间:2023-10-29 01:08:14 24 4
gpt4 key购买 nike

如何在 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

您可以使用它来检测应用程序是否在 fakeroot 中运行,遍历路径并查找 libfakeroot

示例代码:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com