【问题标题】:Change Windows File permissions in Lua to allow writing更改 Lua 中的 Windows 文件权限以允许写入
【发布时间】:2022-01-22 06:00:04
【问题描述】:

我正在读取并修改位于 Windows 程序文件文件夹中的文件中的一些数据。 因此,该文件没有写入权限。所以我在尝试写入时收到错误。

当手动授予包含文件的文件夹写入权限时,脚本将起作用。

是否可以在 Lua 脚本中修改文件夹权限,或写入文件而不管其权限如何?还是只能从文件资源管理器手动完成?

这是我当前正在重写 inputFile 的代码部分:

k=0
updatefile = io.open(inputFile,"w")

for k=1,i do     
    updatefile:write(modfilecontent[k] .. '\n')    --This is where I'm blocked by permissions
end

updatefile:close()

此外,如果有可能的解决方案,并且我将此脚本加载到没有管理员权限的其他人的计算机上,该解决方案是否仍然有效?


编辑: Piglet 的解决方案将使用 os.execute 方法来更改权限。 只要使用插件的软件在第一次设置权限时以管理员身份运行。从此您不再需要以管理员身份运行。

下面是我需要添加到程序开头的代码,当然要减去括号

os.execute('icacls "C:\\Program Files\\[software name]\\[folder name]" /grant Everyone:(OI)(CI)F /T')

【问题讨论】:

    标签: windows lua permissions write


    【解决方案1】:

    您可以使用os.execute 运行相应的 Windows 命令。

    How to grant permission to users for a directory using command line in Windows?

    或者使用支持此类内容的库。也许结帐

    https://keplerproject.github.io/luafilesystem/manual.html

    如果有可能的解决方案,我将这个脚本加载到 没有管理员权限的其他人的计算机将 解决方案还能用吗?

    因为那个人不能以管理员身份运行 Lua,这是不太可能的。这将完全违背不同用户级别的目的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-28
      • 2011-05-07
      • 2012-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-17
      相关资源
      最近更新 更多