从 Haskell 检查 root 权限

Checking root permissions from Haskell

我的程序需要更高的权限,因此当 运行 没有这些时它会崩溃。

有没有办法检查 Haskell 程序是否已 运行 作为 Linux 上的根目录?

即区分

sudo ./myProgram

./myprogram

来自 unix 包,System.Posix.User:

getRealUserID :: IO UserID
getEffectiveUserID :: IO UserID

当运行在sudo下时,我认为他们应该都报告0(root)。

当运行作为setuid时,只有第二个应该报告0(如果我没记错的话)。

getuid / geteuid 的手册页应该清楚,我希望。