2017-07-20 84 views
0

在lua腳本(對於Domoticz @ Raspberry),我應用以下腳本段生成一個htm文件並將其放入指定的文件夾中。設置所有者+訪問權限與io.open

Line02text到Line30text是在lua腳本的其他地方動態填充的變量。

file = io.open("/home/pi/domoticz/scripts/lua/XXXXX.htm", "w+") 
-- Opens a file named XXXXX.htm (stored under the designated sub-folder of Domoticz) 
-- in append mode 
-- write lines to opened file 
file:write("SOF<br>") 
file:write(Line02text .. "<br>") 
file:write(Line03text .. "<br>") 

.... 

file:write(Line29text .. "<br>") 
file:write(Line30text .. "<br>") 
file:write("EOF<br>") 
file:close() -- closes the open file 

所有似乎都沒問題,因爲htm文件按計劃顯示。

接下來的步驟是將文件複製到不同的文件夾,在瀏覽器中打開,等等。

但HTM文件的所有者是「根」和權限是0640.

對於進一步的應用所有者應該是不同的,並且權限例如777.

嘗試手動更改或使用chmod導致服務器報告'Permission denied'。

問題: 如何設置(作爲lua腳本的結果)不同所有者和其他htm文件的權限?

+0

你可以插入'os.execute'(「chmod a + rw /home/pi/domoticz/scripts/lua/XXXXX.htm」) 'file:close()'之後'? –

+0

謝謝葉戈爾! 該腳本行的添加是獲取所有用戶都可以訪問的文件的解決方案。 – Toulon7559

回答

0

Lua的目標是儘可能便攜,所有權/權限管理是非常特定於操作系統的。沒有嵌入的函數來處理它。

您需要公開一些本地函數,它將根據文件的權限執行您所需的操作。或者使用一些已經存在的庫,比如說可能是lua-fs:(https://github.com/clementfarabet/lua-fs-0.3