
마지막에 C# 코드가 있습니다.
- 파일을 생성합니다
- 현재 ACL을 인쇄합니다.
- 기본 사용자 그룹에 이전에 생성된 파일에 대한 "쓰기 권한"을 부여합니다.
- 현재 수정된 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