Измените 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