检查脚本是否以 root 身份执行?

检查脚本是否以 root 身份执行?

我有一个需要 root 权限的脚本。我必须通过 sudo 或从 uid 为 0 的帐户(例如 root)执行它。

如果脚本没有以足够的权限执行,那么我希望该脚本回显“以 Root 身份运行”并退出 1。

我怎样才能实现这个目标?

答案1

/usr/bin/env bash
如果 [[ $EUID -ne 0 ]]; 那么
   echo“此脚本必须以root身份运行”
   出口 1

// 其余脚本在此处

来源

EUID 是脚本运行时的有效 UID。

[[ ne ]] 是对不相等的测试。

0是 root 的 uid(或者更确切地说,是您想要的 uid。root 是最常见的名称,但可以更改,并且可以有多个 uid 为 0 的帐户

答案2

您还可以使该脚本仅由 root 执行。

chmod 700 script(只有文件所有者可以运行该脚本)

chown root:wheel script(将文件所有者设置为root)

相关内容