如果不是超级用户,如何以超级用户身份执行脚本首先检查用户并从 askpass 获取通行证

pah*_*nin 6 bash root scripts

那里有一个类似的问题如何确定shell脚本是否以root身份运行?

我有同样的疑问,但结果不同

是否可以在运行所有内容之前在 BASH 脚本中检查脚本是否以超级用户身份运行,如果不是,则打印一条消息说您必须是超级用户才能使用此脚本,然后随后

使用 askpass 或类似方法从用户那里获取通行证,然后与超级用户执行相同的脚本?

Lek*_*eyn 13

如果程序需要 root 权限,我只调用 sudo,但没有:

#!/bin/bash
if [ $(id -u) != 0 ]; then
   echo "This script requires root permissions"
   sudo "$0" "$@"
   exit
fi
Run Code Online (Sandbox Code Playgroud)

"$0"包含脚本名称、"$@"可选参数。如果您的程序不接受参数,则可以省略它。

注意:这个 shellscript 应该在 shell 中运行,如果这个脚本应该作为 GUI 运行,请使用类似gksukdesudo代替sudo.