以编程方式将具有写权限的IIS_IUSRS添加到目录

lok*_*oki 3 windows delphi winapi file-permissions delphi-10.2-tokyo

我正在使用Delphi 10.2 Tokyo,我想将IIS_IUSRS用户的写权限添加到特定目录。

我可以使用Delphi中的任何内置函数来执行此操作吗?

如果没有,我必须使用哪些Win32 API函数?

Pau*_*ers 5

由于Windows安全API的复杂性,以编程方式执行此操作很麻烦,但是有一种更简单的方法,那就是使用Shell icacls并让它承担繁重的工作。

我不知道如何让Delphi运行命令行程序,但我想您可以处理这一点,因此合适的命令行可能类似于:

icacls MyFolder /grant "IIS_IUSRS:(OI)(CI)F"
Run Code Online (Sandbox Code Playgroud)

这将授予“航行者” MyFolder及其所有航行者以“完全访问权” ,并且您可以通过资源管理器中相关文件夹的“属性”窗口中的“安全性”选项卡来确切检查此(或其他)命令实际上具有什么作用。

其他更细粒度的权限也是可能的,这里有一个有用的文章:

如何在Windows中使用命令行向用户授予目录权限?

快乐的ACL抽动。