如何验证文件是否正在以 root 帐户执行?

如何验证文件是否正在以 root 帐户执行?

假设我们已经创建了一个具有 root 帐户-rwsr-xr-x script.sh权限的文件。我们已经在该文件上设置了 suid 位,因此任何要执行该文件的用户都将由该文件的所有者 root 执行。例如我们看一下passwd命令:

$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 68208 Apr 16 17:06 /usr/bin/passwd

该命令与我们的文件类似。任何执行此命令的用户,无论该用户是 root 还是具有 sudo 权限,都将以 root 帐户运行。

问题是我如何验证这个主题?

为了弄清楚这一点,我尝试了以下方法:如果我们查看script.sh内容,我编写了这个简单的脚本:

#!/bin/bash 

if [[ $UID -eq 0 ]]
then 
    echo "Running as root"
else
    echo "Not root"
fi

现在,如果我以普通用户身份运行此脚本,输出将是:Not root

那么如何检查它是否以 root 身份运行呢?


如果我对这些概念有误解,请告诉我。我是新手。

答案1

尝试一下怎么样:

if [ $(whoami) = "root" ]

相关内容