使用 io.open 设置所有者和访问权限

在一个用于树莓派下 Domoticz 的 lua 脚本中,我应用了以下脚本段生成一个 htm 文件并放置在指定的文件夹中。

第 2 行到第 30 行的文本是在 lua 脚本其他地方动态填充的变量。

file = io.open("/home/pi/domoticz/scripts/lua/XXXXX.htm", "w+")
--打开一个名为 XXXXX.htm 的文件(存储在 Domoticz 的指定子文件夹中)
--以追加模式打开
--将行写入打开的文件
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() -- 关闭打开的文件

一切都似乎很好,因为文件按计划出现了。

接下来的步骤是将文件复制到不同的文件夹,打开浏览器等等。

但是 htm 文件的所有者是 'root',许可是 0640。

为了进一步应用,所有者应该是不同的,许可应该是 777。

尝试手动更改或使用 chmod 的结果会导致服务器报告 'Permission denied'。

问题: 如何设置(作为 lua 脚本的结果)htm 文件的不同所有者和其他权限?

点赞
用户5675002
用户5675002

Lua 的目标是尽可能地可移植,而所有权/权限管理非常依赖于操作系统。没有内嵌函数来处理这个。

您需要暴露一些本地函数来处理文件权限。或者使用一些已经存在的库,比如 lua-fs:(https://github.com/clementfarabet/lua-fs-0.3)

2017-07-20 08:04:46