Измените ACL файла, чтобы разрешить полный доступ для всех

Как мне изменить владельца файла на Everyone а также позволяют Everyone объект Full Access?

Есть ли API для этого? Должен ли я использовать P/Invoke?

Я искал везде, но не могу найти ничего, чтобы сделать это.

2 ответа

Решение

Действительно, для этого есть API. Возможно, вы захотите взглянуть на метод File.SetAccessControl в пространстве имен System.IO.

// Read the current ACL details for the file
var fileSecurity = File.GetAccessControl(fileName);

// Create a new rule set, based on "Everyone"
var fileAccessRule = new FileSystemAccessRule(new NTAccount("", "Everyone"),
      FileSystemRights.FullControl, 
      AccessControlType.Allow);

// Append the new rule set to the file
fileSecurity.AddAccessRule(fileAccessRule);

// And persist it to the filesystem
File.SetAccessControl(fileName, fileSecurity);

В вышеупомянутой статье есть множество замечательных вещей, касающихся ACL.

Ты можешь использовать FileInfo.GetAccessControlа также File.SetAccessControl методы

проверьте пример кода, указанный в ссылке MSDN для File.SetAccessControl

Другие вопросы по тегам