Localizando arquivos / pastas com permissões de gravação / controle total para todos no Windows 2003

3

Tentando limpar as permissões neste servidor IIS6 w / PHP CGI, parece que vários arquivos / pastas têm permissões de gravação para Todos. (Você provavelmente pode adivinhar o que está acontecendo, repetidamente.)

Então, basicamente, estou procurando o equivalente a find $directory -perm 777 -exec ls -ld {} \;

Eu posso fazer essa primeira parte, listando arquivos que mencionam Todos com icacls , mas não consigo exibir a ACL real:

icacls \directory /findSID *S-1-1-0 /t

Olhando para a documentação subinacl e vários resultados do google, parece que posso usar / subdiretórios e / display para conseguir isso, mas ele retorna imediatamente sem resultados e sem erros:

C:\>subinacl /subdirectories \directory\*.* /findsid=Everyone /display
+subdirectories \directory\*.*
/findsid=Everyone
/display

Elapsed Time: 00 00:00:00
Done:        0, Modified        0, Failed        0, Syntax errors        0
    
por Josh Y. 23.12.2011 / 20:11

2 respostas

4

Isso funcionou para mim com powershell e pstools:

Get-ChildItem C:\temp\ -Recurse | Get-Acl | grep "Everyone"

Você pode precisar refiná-lo mais para as suas necessidades, mas o powershell é o caminho a seguir.

    
por 23.12.2011 / 20:25
4

A sugestão do Orbitron é ótima, mas se você quiser usar uma maneira puramente do PowerShell sem ter que instalar pstools, dê uma olhada no cmdlet select-string . Você pode ter que canalizar o pipeline de objeto para um arquivo primeiro e depois consumi-lo com string de seleção ou pode colocar out-string no pipeline.

Get-ChildItem -Recurse | Get-Acl | out-string -stream | select-string -pattern "everyone"

    
por 23.12.2011 / 21:16