首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何判断脚本是否正在以超级用户身份运行?

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

Stack Overflow用户
提问于 2011-06-18 09:34:34
回答 3查看 139关注 0票数 4

我已经用Lua编写了一个风扇控制脚本,并且我运行的是Linux。风扇控制需要写入/sys/,因此我需要成为超级用户。

我想通知用户,如果他们不是超级用户。做这件事最好的方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-18 09:46:00

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

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

或者,您可以打开外壳并运行id -u,看看它是否输出0。

票数 5
EN

Stack Overflow用户

发布于 2011-06-18 09:50:41

因为它是Linux,你可以试试这个,它是现成的Lua,不需要额外的库:

代码语言:javascript
复制
function running_as_root()
  local f=io.open"/root"
  if f==nil then return false else io.close(f) return true end
end

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

票数 1
EN

Stack Overflow用户

发布于 2011-06-18 21:24:17

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

代码语言:javascript
复制
fd = assert(io.open("/sys/...."))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6393306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档