私はLuaでファン制御スクリプトを書いています。私はLinuxを使っています。ファンコントロールは/ sys /に書き込む必要がありますので、スーパーユーザーになる必要があります。スクリプトがスーパーユーザーとして実行されているかどうかを確認するにはどうすればよいですか?
スーパーユーザーでないユーザーに通知したいと考えています。これを行う最善の方法は何ですか?
私はLuaでファン制御スクリプトを書いています。私はLinuxを使っています。ファンコントロールは/ sys /に書き込む必要がありますので、スーパーユーザーになる必要があります。スクリプトがスーパーユーザーとして実行されているかどうかを確認するにはどうすればよいですか?
スーパーユーザーでないユーザーに通知したいと考えています。これを行う最善の方法は何ですか?
特定の唯一のテストは、POSIX geteuid() callがゼロを返すかどうかを確認することです。
このため、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への書き込みをしてみてください/それが発生した場合、障害を報告していませんか?
最高のことは、単に失敗報告です:ルート以外のユーザーがsysfsにアクセスできるシステムを持つことができます。
fd = assert(io.open("/sys/...."))
ありがとうございます。 :) –