Кажется, вы путаете атрибут « 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
.