Кажется, вы путаете атрибут « Read-only файла с ACL (как уже упоминали другие).
Если файл помечен атрибутом « Read-only(как это видно по attrib или dir /a:r), он будет недоступен для записи (Read-only) системой и всеми пользователями независимо от прав доступа ACL для файла для любой пользователь.
Если вы пытаетесь найти разрешение на Write (ACL) файла для данного пользователя, вы увидите это с помощью icacls.
Например, я создал файл с именем «test.txt». Файл НЕ помечен Read-only.
C:\>attrib test.txt
A C:\test.txt
C:\>
Я проверил файл с помощью icacls:
C:\>icacls test.txt
test.txt BUILTIN\Administrators:(I)(F)
NT AUTHORITY\SYSTEM:(I)(F)
NT AUTHORITY\Authenticated Users:(I)(M)
BUILTIN\Users:(I)(RX)
C:\>
Я пометил файл Read-only с помощью attrib:
C:\>attrib +R test.txt
A R C:\test.txt
C:\>attrib test.txt
A R C:\test.txt
C:\>
Я снова проверил файл, используя icacls:
C:\>icacls test.txt
test.txt BUILTIN\Administrators:(I)(F)
NT AUTHORITY\SYSTEM:(I)(F)
NT AUTHORITY\Authenticated Users:(I)(M)
BUILTIN\Users:(I)(RX)
C:\>
Как вы видели, для этого файла нет изменений в выводе icacls .
Затем я изменил разрешение файла для BUILTIN\Users на « Deny Write (это приблизительно Read-only) и снова проверил файл, используя icacls:
C:\>icacls test.txt
test.txt BUILTIN\Users:(DENY)(W)
BUILTIN\Administrators:(I)(F)
NT AUTHORITY\SYSTEM:(I)(F)
NT AUTHORITY\Authenticated Users:(I)(M)
BUILTIN\Users:(I)(RX)
C:\>
Обратите внимание, что теперь он показывает BUILTIN\Users:(DENY)(W) для файла.
Если я изменю разрешение файла для BUILTIN\Users на Deny Full control и снова проверю файл, icacls показывает:
C:\>icacls test.txt
test.txt BUILTIN\Users:(N)
BUILTIN\Administrators:(I)(F)
NT AUTHORITY\SYSTEM:(I)(F)
NT AUTHORITY\Authenticated Users:(I)(M)
BUILTIN\Users:(I)(RX)
C:\>
Теперь он показывает BUILTIN\Users:(N) для файла.
Если я изменю разрешение файла для BUILTIN\Users на « Allow Full control доступ», а затем « Deny Modify и снова проверю файл, то icacls показывает:
C:\>icacls test.txt
test.txt BUILTIN\Users:(DENY)(M)
BUILTIN\Administrators:(I)(F)
NT AUTHORITY\SYSTEM:(I)(F)
NT AUTHORITY\Authenticated Users:(I)(M)
BUILTIN\Users:(I)(RX)
C:\>
Теперь он показывает BUILTIN\Users:(DENY)(M) для файла.
Если вы хотите увидеть настройку атрибута «Только для чтения» для файла, вы не сможете увидеть его с помощью icacls потому что « Только Read-only не является частью ACL. Вы должны использовать attrib.