在目录上授予文件权限:它们是否也适用于子文件?

时间:2016-07-10 00:33:23

标签: nsis

我正在尝试为我的安装文件上的所有用户授予通用读取,写入和执行访问权限。我正在使用AccessControl插件,但我的代码并未向所有用户授予这些权限,作为测试我将文件作为一个用户安装并尝试将文件作为另一个用户删除,我首先被要求获得管理员权限可以删除它。

我的代码,可能会错误地授予主安装文件夹的权限。这是否还授予所有子文件夹和文件的权限?

# resolves to C:/ProgramData/MyApplicationName
AccessControl::GrantOnFile "$APPDATA\MyApplicationName" "(BU)" "GenericRead + GenericWrite + GenericExecute"

1 个答案:

答案 0 :(得分:0)

您必须添加对ACL的删除访问权限:

AccessControl::GrantOnFile "$pluginsdir" "(BU)" "GenericRead + GenericWrite + GenericExecute + Delete"

但是你不应该让所有用户对共享区域进行写访问!如果需要修改数据,应用程序应该将数据从共享位置复制到%AppData%。除非使用/ NOINHERIT开关,否则继承ACL。