사용자 그룹에 대한 권한이 코드를 통해 성공적으로 수정되었지만 변경 사항이 사용자 그룹의 보안 탭에 반영되지 않습니다.

사용자 그룹에 대한 권한이 코드를 통해 성공적으로 수정되었지만 변경 사항이 사용자 그룹의 보안 탭에 반영되지 않습니다.

마지막에 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

관련 정보