Alguém alterou as permissões em várias máquinas usando cacls que corrigiam um problema, mas criavam um problema maior. Estou procurando maneiras de reverter isso, mas não consigo voltar ao que era.
Eu repliquei usando uma máquina de teste e a saída está abaixo.
Eu usei subinacl para obter a saída.
Alterar usando:
ECHO Y|CACLS C:\APPSYS /t /e /p User1:F
A razão pela qual as permissões foram alteradas foi porque alguns arquivos foram colocados por alguém logado como administrador, o qual os usuários também precisavam de acesso total. Eu ainda gostaria de saber uma forma segura de adicionar o usergroup1 a esses arquivos, enquanto não mexendo com os outros que não precisam ser alterados. Não é uma lista estática de arquivos, algumas máquinas têm apenas 1 ou 2 arquivos, outras têm 20 a 50 arquivos, onde o usuário1 exige controle total, mas não possui permissões.
Antes de executar o ECO "Y | CACLS C: \ APPSYS / pt / p / User1: F"
====================
+File C:\APPSYS\BIN
====================
/control=0x400
/owner =PC1125230\ORGUSER
/primary group =PC1125230\none
/audit ace count =0
/perm. ace count =8
/pace =PC1125230\USERGROUP1 Type=0x0 Flags=0x13 AccessMask=0x1f01ff
/pace =builtin\administrators Type=0x0 Flags=0x13 AccessMask=0x1f01ff
/pace =system Type=0x0 Flags=0x13 AccessMask=0x1f01ff
/pace =PC1125230\ORGUSER Type=0x0 Flags=0x10 AccessMask=0x1f01ff
/pace =creator owner Type=0x0 Flags=0x1b AccessMask=0x10000000
/pace =builtin\users Type=0x0 Flags=0x13 AccessMask=0x1200a9
/pace =builtin\users Type=0x0 Flags=0x12 AccessMask=0x4
/pace =builtin\users Type=0x0 Flags=0x12 AccessMask=0x2
=============================
+File C:\APPSYS\ERROR.LOG
=============================
/control=0x0
/owner =PC1125230\ORGUSER
/primary group =PC1125230\none
/audit ace count =0
/perm. ace count =0
Depois de executar o ECO "Y | CACLS C: \ APPSYS / pt / p / User1: F"
====================
+File C:\APPSYS\BIN
====================
/control=0x0
/owner =PC1125230\ORGUSER
/primary group =PC1125230\none
/audit ace count =0
/perm. ace count =9
/pace =PC1125230\User1 Type=0x0 Flags=0x3 AccessMask=0x1f01ff
/pace =PC1125230\USERGROUP1 Type=0x0 Flags=0x13 AccessMask=0x1f01ff
/pace =builtin\administrators Type=0x0 Flags=0x13 AccessMask=0x1f01ff
/pace =system Type=0x0 Flags=0x13 AccessMask=0x1f01ff
/pace =PC1125230\ORGUSER Type=0x0 Flags=0x10 AccessMask=0x1f01ff
/pace =creator owner Type=0x0 Flags=0x1b AccessMask=0x10000000
/pace =builtin\users Type=0x0 Flags=0x13 AccessMask=0x1200a9
/pace =builtin\users Type=0x0 Flags=0x12 AccessMask=0x4
/pace =builtin\users Type=0x0 Flags=0x12 AccessMask=0x2
=============================
+File C:\APPSYS\ERROR.LOG
=============================
/control=0x0
/owner =PC1125230\ORGUSER
/primary group =PC1125230\none
/audit ace count =0
/perm. ace count =1
/pace =PC1125230\User1 Type=0x0 Flags=0x0 AccessMask=0x1f01ff
Existem muitos arquivos e pastas que são exclusivos para as diferentes máquinas, por isso estou tentando encontrar um método que funcione neles sem especificar cada arquivo exato.
Eu usei o subinacl para conceder aos grupos de usuários aos quais foi negado acesso ao arquivo ERROR.LOG, por exemplo, todos os arquivos e pastas da pasta APPSYS, pois havia muitos problemas com a falha dos aplicativos. Isso resolveu esse problema, mas estou preocupado com o efeito duradouro das alterações feitas em comparação com as configurações originais.
Antes de usar o método subinacl para conceder permissões, tentei remover a permissão User1, mas novamente o ERROR.LOG não volta para o que era permissões sábias. Eu tentei suppresssid também com o mesmo resultado sem diferença. Eu tentei com o dispositivo de teste fazer um backup antes de executar o comando cacls e, em seguida, restaurar o backup com o subinacl, mas ele não foi restaurado corretamente do que eu posso ver,
"/ pace = builtin \ users Type = sinalizadores 0x0 = 0x12 AccessMask = 0x4" foi removido da ACL.
Eu não tenho experiência com descritores de segurança, então desculpe se é dolorosamente óbvio ou deixei detalhes. Passei os últimos 5 dias e noites lendo o que posso para descobrir o que deu errado e como corrigi-lo usando um processo em lote.
Estou limitado a scripts básicos (windows xp pro) vb, lote eu posso usar ferramentas do kit de recursos e, até certo ponto, utilitários de terceiros, mas, novamente, será necessário usar o script em lote.