如何判断脚本是否以超级用户身份运行?

时间:2011-06-18 01:34:34

标签: linux lua

我在Lua中编写了一个粉丝控制脚本,我正在运行Linux。风扇控制需要写入/ sys /所以我需要成为超级用户。

我想通知用户他们不是超级用户。这样做的最佳方式是什么?

3 个答案:

答案 0 :(得分:5)

唯一确定的测试是检查POSIX geteuid() call是否返回零。

为此,您可能必须使用像luaposix这样的Lua库。

或者你可以弹出并运行id -u以查看它是否输出0

答案 1 :(得分:1)

既然它是Linux,你可以尝试这个,这是Lua的股票,不需要额外的库:

function running_as_root()
  local f=io.open"/root"
  if f==nil then return false else io.close(f) return true end
end

但是,如果发生这种情况,为什么不尝试写入/ sys /并报告失败?

答案 2 :(得分:0)

最好的办法就是报告失败:您可以拥有一个系统,其中除root之外的其他用户都可以访问sysfs。

fd = assert(io.open("/sys/...."))