我的程序需要提升权限,因此在没有这些权限的情况下运行时会崩溃。
有没有办法检查Haskell程序是否在Linux上以root身份运行?
即区分
sudo ./myProgram
和
./myprogram
最佳答案
来自 unix
包,System.Posix.User
:
getRealUserID :: IO UserID
getEffectiveUserID :: IO UserID
当在sudo
下运行时,我认为它们都应该报告0
(root)。
当作为 setuid 运行时,只有第二个应该报告 0
(如果我没记错的话)。
我希望 getuid/geteuid
的手册页应该能够澄清。
关于linux - 从 Haskell 检查 root 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57730504/