Разрешение для группы «Пользователи» успешно изменено с помощью кода, но изменение не отражено на вкладке «Безопасность» для группы «Пользователи»

Разрешение для группы «Пользователи» успешно изменено с помощью кода, но изменение не отражено на вкладке «Безопасность» для группы «Пользователи»

У меня есть код C# (в конце), который:

  1. Создает файл
  2. Распечатывает текущий ACL
  3. Предоставляет встроенной группе пользователей «разрешения на запись» в ранее созданный файл.
  4. Распечатывает текущий измененный ACL

Права на запись успешно назначены с помощью кода, как вы можете видеть в выводе консоли.

введите описание изображения здесь

Мой вопрос:Почему вкладка «Безопасность» файла не отражает это изменение разрешений для группы «Пользователи»?

введите описание изображения здесь

Код C#:

var file = "sectest.txt";
File.WriteAllText(file, "File security test.");
var sid = new SecurityIdentifier(WellKnownSidType.BuiltinUsersSid, null);

string strBuiltInUsersAccount = sid.Translate(typeof(NTAccount)).ToString();
  
FileSecurity fileSecurity = new FileSecurity(file,
AccessControlSections.Owner |
AccessControlSections.Group |
AccessControlSections.Access);

Console.WriteLine("AFTER CREATE:");

ShowSecurity(fileSecurity); // BUILTIN\Users group doesn't have Write permission

// short: give "builtin\users" write permissions
var fsAccessRule = new FileSystemAccessRule(strBuiltInUsersAccount,
                                            FileSystemRights.Write,
                                            AccessControlType.Allow);

fileSecurity.ModifyAccessRule(AccessControlModification.Add, fsAccessRule, out bool modified);

Console.WriteLine();

Console.WriteLine("AFTER MODIFY:");
ShowSecurity(fileSecurity); // BUILTIN\Users has Write permission

решение1

Это изменяет только одно правило доступа в ACE. Затем его нужно будет сохранить в файле. См. File.SetAccessControl(filePath, fileSecurity)

https://learn.microsoft.com/en-us/dotnet/api/system.security.accesscontrol.filesecurity?view=net-7.0

Связанный контент