¿Qué hace para corregir los permisos corruptos o bloqueados en los archivos compartidos de la empresa?

8

Últimamente he estado trabajando con uno de nuestros chicos de almacenamiento en un proyecto que ha implicado un escrutinio de los archivos compartidos de gran tamaño que la compañía ha utilizado durante años. Con frecuencia, nos encontramos con directorios o archivos a los que no podemos acceder (con una cuenta de administrador de dominio) por uno o más de los siguientes motivos:

  • ACL corruptas
  • el acceso ha sido revocado o denegado para el grupo Administradores (o usuario del SISTEMA)
  • nombre de archivo + ruta demasiado larga (más allá de MAX_PATH )

Hay un puñado de herramientas que pueden ayudar en estas situaciones, desde Microsoft (por ejemplo, TAKEOWN.EXE e ICALCS.EXE) o terceros (por ejemplo, SETACL.EXE ). A veces se necesitan otros trucos, como ejecutar uno de los comandos en la cuenta SYSTEM con PSEXEC.EXE . Incluso solo averiguar qué pasos hacer y en qué orden es un desafío ...

Por ejemplo, me gustaría poder solucionarlo con un flujo como este:

  1. ¿El camino es demasiado largo? Si es así, construya una ruta con el \\?\prefijo, luego pruebe nuevamente.
  2. ¿Está dañado el ACL? Si es así, vuelva a ordenar los ACE correctamente y elimine cualquier incógnita, luego pruebe nuevamente.
  3. ¿Se ha denegado el acceso al grupo de administradores? Si es así, tome posesión, vuelva a agregar permisos para el grupo de Administradores y la cuenta SYSTEM, luego vuelva a probar.
  4. ¿Sigue fallando? Si es así, elimine todas las ACE y aplique solo permisos heredados, luego verifique nuevamente. (Este es un último recurso, ya que con frecuencia abre permisos que debían ser más restrictivos).
  5. ¿Es un directorio? Si es así, entonces el proceso debe continuar recursivamente para los archivos dentro ...

Hacer los pasos anteriores manualmente es un fastidio, y no es razonable cuando tenemos cientos de directorios para arreglar. He intentado escribir scripts para ayudar con estos, pero encuentro que es difícil hacer que el script sea "inteligente" acerca de las decisiones que toma, y ​​por lo tanto, a menudo es más fácil hacer un método de reparación general, como restaurar solo los permisos heredados.

¿Alguien puede recomendar otro software y / o scripts que ayuden en este proceso? O bien, ¿cómo soluciona problemas de permisos como estos?

ewall
fuente

Respuestas:

2

Recomiendo usar fileacl : es capaz de configurar ACL con SeBackupPrivelege, por lo que no requiere que el usuario con el que ejecuta el comando tenga los permisos para cambiar las ACL en un objeto determinado. Además, es compatible de forma nativa con la funcionalidad de herencia posterior a NTFS-5 y es fácil de escribir, por lo que con un poco de lógica de secuencias de comandos de ajuste debería hacer lo que desee.

el wabbit
fuente
estoy marcando esto ... gracias gracias gracias gracias
SpacemanSpiff
@SpacemanSpiff de nada.
the-wabbit
Después de comparar casi todas las herramientas de Microsoft y de terceros que pude encontrar, fileacl.exe resultó ser el mejor. La /forceopción realmente funciona, a diferencia de otras (como ejecutarse bajo la cuenta SYSTEM con psexec.exe u opciones similares de uso-backup-y / o-SYSTEM-permission). Tuve que escribir un script de PowerShell para excavar a través del sistema de archivos y arreglar todo, pero es increíble que la única herramienta externa que necesita es esta. Gracias por el consejo, @ syneticon-dj!
ewall