Как предоставить полное разрешение на файл, созданный моим приложением, для ВСЕХ пользователей?

Разрабатываемый мной инструмент должен предоставить права доступа «Полный доступ» к создаваемому им файлу. Его необходимо прочитать, изменить и удалить из всех учетных записей Windows и даже возможных будущих учетных записей. Можно ли этого достичь?

Я знаю, что могу попробовать это для SPECIFIC_USER:

FileSystemAccessRule rule = new FileSystemAccessRule(SPECIFIC_USER, FileSystemRights.FullControl, AccessControlType.Allow);
FileSecurity fSecurity = File.GetAccessControl(filePath);
fSecurity.SetAccessRule(rule);
File.SetAccessControl(filePath, fSecurity);

Но как предоставить это всем пользователям? И даже возможные будущие аккаунты? Если вторая часть невозможна, как выполнить первое требование?

Спасибо.

РЕДАКТИРОВАТЬ:

Это код, который работал у меня. Взято по ссылке ответчика.

private bool GrantAccess(string fullPath)
{
    DirectoryInfo dInfo = new DirectoryInfo(fullPath);
    DirectorySecurity dSecurity = dInfo.GetAccessControl();
    dSecurity.AddAccessRule(new FileSystemAccessRule(
        new SecurityIdentifier(WellKnownSidType.WorldSid, null), 
        FileSystemRights.FullControl,
        InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit,
        PropagationFlags.NoPropagateInherit,
        AccessControlType.Allow));

    dInfo.SetAccessControl(dSecurity);
    return true;
}

Обратите внимание на обязательный PropagationFlags.NoPropagateInherit (упомянутый в конце ссылки). Он предоставляет привилегии даже будущим учетным записям.

70
задан LeopardSkinPillBoxHat 17 September 2018 в 04:29
поделиться