我在Lua写了一个风扇控制脚本,我正在运行Linux。 风扇控制需要写入/ sys /所以我需要成为超级用户。
我想通知用户,如果他们不是超级用户。 这样做最好的方法是什么?
唯一确定的测试是检查POSIX geteuid()调用是否返回零。
为此,您可能必须使用luaposix之类的Lua库。
或者你可以掏出并运行id -u
来查看它是否输出0
。
由于它是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 /并报告失败,如果发生?
最好的办法是报告失败:你可能有一个系统,其他用户比root用户有权访问sysfs。
fd = assert(io.open("/sys/...."))