correspondência dir / a: r e icacls

0

Estou tentando ver as permissões de arquivo na linha de comando. Eu encontrei uma pergunta semelhante , mas não Entenda icacls output.

No exemplo a seguir, c10.dat é um arquivo somente leitura, conforme mostrado por dir /a:r e o erro ao sobrescrevê-lo com dir > c10.dat .

No icacls output DOMAIN\USER é um alocador de espaço para meu próprio id. Como isso indica que c10.dat é um arquivo somente leitura? Pelo que entendi, seus acls significam (I) herdado e (F) full-access.

X:\>dir /a:r c10.dat
 Volume in drive X is OSDisk
 Volume Serial Number is 6621-4FA8

 Directory of X:\

04/08/2013  11:11 AM             8,192 c10.dat
               1 File(s)          8,192 bytes
               0 Dir(s)  40,525,492,224 bytes free

X:\>icacls c10.dat
c10.dat NT AUTHORITY\SYSTEM:(I)(F)
        BUILTIN\Administrators:(I)(F)
        DOMAIN\USER:(I)(F)

Successfully processed 1 files; Failed processing 0 files

X:\>dir > c10.dat
Access is denied.
    
por Miserable Variable 08.04.2013 / 23:47

2 respostas

2

Сlaro atributo somente leitura:

X:\>attrib -R c10.dat

teste:

X:\>dir > c10.dat

SKU:

ls -al

Saída:

total 148
drwxrwxrwx+ 1 Domain Users     Domain Users      0 Apr  9 04:06 .
drwxrwxrwx+ 1 +Administrators  513               0 Apr  8 14:43 ..
-rwxrwxrwx+ 1 +Administrators  Domain Users    354 Jun  5  2012 2.ps1
-rwxrwxrwx+ 1 +Administrators  Domain Users    115 Oct 22 22:43 3.ps1
-rwxrwxrwx+ 1 +Administrators  Domain Users    154 Apr  9 02:15 4.ps1
-r-xr-xr-x+ 1 +Administrators  Domain Users  12030 Apr  9 02:25 Aliases.txt
-rwxrwxrwx+ 1 +Administrators  Domain Users    267 Feb 21  2012 ps-run.cmd
-rwxrwxrwx+ 1 +Administrators  Domain Users  61436 Apr  9 04:07 sub2.txt
    
por 08.04.2013 / 23:52
2

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 .

    
por 10.04.2013 / 04:00