如何强制用户成为root

如何强制用户成为root

我已经编写了一个 bash 脚本,可以在我的 ubuntu 机器上使用。现在我想阻止在我自己的用户下运行此脚本,并且只能以 root (sudo) 身份运行它。

有没有可能强制这样做。如果我在自己的用户名下运行脚本,是否可以以某种方式让脚本请求 root 权限?

答案1

我有一个用于bash此目的的标准函数:

# Check if we're root and re-execute if we're not.
rootcheck () {
    if [ $(id -u) != "0" ]
    then
        sudo "$0" "$@"  # Modified as suggested below.
        exit $?
    fi
}

可能有更优雅的方法(我很久以前就写了这个!),但这对我来说效果很好。

要在脚本中一致地使用此函数,您应该将脚本最初接收到的参数传递给它。

用法:(rootcheck "${@}" 单独rootcheck不会将任何参数传递给 rootcheck 函数)

答案2

我正在使用这个单行版本,可以轻松复制粘贴到脚本顶部

[ `whoami` = root ] || { sudo "$0" "$@"; exit $?; }

答案3

sudo chown root yourcode
sudo chmod 500 yourcode

瞧!

答案4

您可以更改权限,以便只有 root 可以执行它。或者您可以使用whoami命令,以防它不是 root 强制 sudo。

相关内容