Parece que você está confundindo o atributo Read-only
de um arquivo com o ACL
(como outros já mencionaram).
Se um arquivo estiver marcado com o atributo Read-only
(como pode ser visto por attrib
ou dir /a:r
), ele será regravável (Read-only)
pelo sistema e por todos os usuários, independentemente das permissões ACL
do arquivo para qualquer usuário.
Se você está tentando encontrar a Write
permissão (ACL)
de um arquivo para um determinado usuário, verá que usando icacls
Por exemplo, criei um arquivo chamado "test.txt". O arquivo NÃO está marcado como Read-only
.
C:\>attrib test.txt
A C:\test.txt
C:\>
Eu verifiquei o arquivo usando 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:\>
Marquei o arquivo Read-only
usando attrib
:
C:\>attrib +R test.txt
A R C:\test.txt
C:\>attrib test.txt
A R C:\test.txt
C:\>
Eu verifiquei o arquivo novamente usando 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:\>
Como você viu, não há alteração na saída de icacls
para esse arquivo.
Em seguida, alterei a permissão do arquivo para BUILTIN\Users
para Deny Write
(isso aproxima Read-only
) e verifiquei o arquivo novamente usando 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:\>
Observe que agora, ele mostra BUILTIN\Users:(DENY)(W)
para o arquivo.
Se eu alterar a permissão do arquivo para BUILTIN\Users
para Deny Full control
e verificar o arquivo novamente, icacls
mostrará:
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:\>
Agora, ele mostra BUILTIN\Users:(N)
para o arquivo.
Se eu alterar a permissão do arquivo de BUILTIN\Users
para Allow Full control
e, em seguida, Deny Modify
e verificar o arquivo novamente icacls
mostra:
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:\>
Agora, ele mostra BUILTIN\Users:(DENY)(M)
para o arquivo.
Se você deseja ver a configuração do atributo "Somente leitura" para um arquivo, não será possível vê-lo usando icacls
porque Read-only
não faz parte do ACL
. Você deve usar attrib
.