如何强制用户成为root用户

Pet*_*mit 7 bash permissions

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

是否有可能强制执行此操作。如果我以自己的用户名运行它,我可以以某种方式让我的脚本要求 root 权限吗?

小智 10

我有一个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
}
Run Code Online (Sandbox Code Playgroud)

可能有更优雅的方式(我在 AGES 之前写过这个!),但这对我来说很好用。

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

用法:rootcheck "${@}"rootcheck本身不会传递任何参数给rootcheck功能)


小智 5

我正在使用这个单行版本,易于复制粘贴到脚本之上

[ `whoami` = root ] || { sudo "$0" "$@"; exit $?; }
Run Code Online (Sandbox Code Playgroud)