none
Cómo restaurar permisos en carpetas que han perdido propietario? RRS feed

  • Pregunta

  • Buenas, tengo unas 1000 carpetas de 1000 usuarios mapeadas desde Un 2003 Server R2 SP2 64 bits las cuales tenían un propietario %username% que es igual a su nombre (peco, mapu, rica, pcu, etc.), por culpa mía heredé el permiso de "todos" e hice propietario al administrador, perdiendo por tanto el %username% en los permisos especiales.

    El caso es que ahora si se salen del mapeo y van a mano a \\SERVIDOR\ALMACENAMIENTO\  Verían lo de los demás usuarios e incluso podrían entrar a esas carpetas. Lo lógico sería quitar a "todos" de los permisos y también a "usuarios del dominio" pero entonces no podrian acceder cada usuario a su carpeta a menos que yo fuera uno a uno dando permisos de carpeta a ese usuario %username%. (y quitando heredar permisos del nivel superior ALMACENAMIENTO).

    Algún script o truco para hacerlo todo de golpe? Tengo la carpeta ALMACENAMIENTO COMPARTIDA POR TODOS.

    Gracias.

    PD: Tengo copias de seguridad viejas, pero el daño ya está hecho.
    jueves, 10 de septiembre de 2009 16:08

Respuestas

  • Buenas!

    Hace tiempo utilice algo parecido a lo que te adjunto para una tarea larga y monotona como la tuya


    :Cambiar permisos de archivo o carpeta
    : y|  sirve para meter la confirmacion de que estamos seguros

    : /T --> reemplaza los permisos
    : /G --> Usuaurio y permiso   F(control total)


    echo y| cacls \\SERVIDOR\ALMACENAMIENTO\%username%  /T /G %username%:F
    pause




    Lo puse en un bat de inicio de sesion por GPO para que se aplicase por usuario.
    El pause simplemente lo pongo en las pruebas para poder ver si me da algun mensaje de error.
    Espero que te sirva
    • Marcado como respuesta Ismael Borche miércoles, 17 de noviembre de 2010 15:00
    martes, 15 de septiembre de 2009 17:14
  • tetevic, es buena idea, pero hay dos cosas a considerar al ponerlo como script de inicio de usuario:
    - Que el usuario tenga los permisos suficientes para cambiar permisos
    - Si le pones Pause que no sea un script asignado por GPO, pues en este caso no se verá la pausa. Si es en propiedades del usuario (a la vieja usanza) entonces sí.

    Guillermo Delprato - MVP-MCT-MCITP-MCTS-MCSE MCITP: Server Administration MCTS:Active Directory/Network Infrastructure Buenos Aires, Argentina
    • Marcado como respuesta Ismael Borche miércoles, 17 de noviembre de 2010 15:00
    martes, 15 de septiembre de 2009 17:22
    Moderador

Todas las respuestas

  • Resumiendo: quiero automatizar el añadir permisos (modificar, leer y escribir) a unas 1000 carpetas cuyo username (permiso) coincide con el nombre de la carpeta (foldername???!). Algún script para poder meter en permisos ese ""%forldername%"?

    PD: Tienen mismos nombre las carpetas y los usuarios porque se crean con perfiles móviles especificando %username%.
    viernes, 11 de septiembre de 2009 8:55
  • No puedo usar ese nombre de carpeta a través de vbscript y meterlo como permisos?

    Pues entonces me tocará hacerlo a manos en los 1200 usuarios que hay, pero y si llegan a ser 1.000.000?

    Gracias.
    martes, 15 de septiembre de 2009 15:34
  • Buenas!

    Hace tiempo utilice algo parecido a lo que te adjunto para una tarea larga y monotona como la tuya


    :Cambiar permisos de archivo o carpeta
    : y|  sirve para meter la confirmacion de que estamos seguros

    : /T --> reemplaza los permisos
    : /G --> Usuaurio y permiso   F(control total)


    echo y| cacls \\SERVIDOR\ALMACENAMIENTO\%username%  /T /G %username%:F
    pause




    Lo puse en un bat de inicio de sesion por GPO para que se aplicase por usuario.
    El pause simplemente lo pongo en las pruebas para poder ver si me da algun mensaje de error.
    Espero que te sirva
    • Marcado como respuesta Ismael Borche miércoles, 17 de noviembre de 2010 15:00
    martes, 15 de septiembre de 2009 17:14
  • tetevic, es buena idea, pero hay dos cosas a considerar al ponerlo como script de inicio de usuario:
    - Que el usuario tenga los permisos suficientes para cambiar permisos
    - Si le pones Pause que no sea un script asignado por GPO, pues en este caso no se verá la pausa. Si es en propiedades del usuario (a la vieja usanza) entonces sí.

    Guillermo Delprato - MVP-MCT-MCITP-MCTS-MCSE MCITP: Server Administration MCTS:Active Directory/Network Infrastructure Buenos Aires, Argentina
    • Marcado como respuesta Ismael Borche miércoles, 17 de noviembre de 2010 15:00
    martes, 15 de septiembre de 2009 17:22
    Moderador
  • 1000 gracias a ambos.

    NO conocía el cacls ese...

    Lo probaré, buena explicación en los comentarios, gracias.

    Lo puedo poner en un bat de inicio, pero es que ya tengo uno, jeje, que mapea esa unidad de red precisamente...

    Gillermo, debería comporbar si tienen ese permiso pero creo que si ya que ahora cualquier usuaruio accede a cualquier carfpeta y ya tiene un .bat con net use.
    Lo del pause no me importa, lanzaré de pruebas y si va masivamente... Pero....

    SI no inician sesión no se cambian los permisos, no??? Y alguna manera de lanzar eso sin tener que llamar a los 1000ypico usuarios? (sólo son 45 PCs concurrentes a la vez).

    Gracias.
    martes, 15 de septiembre de 2009 17:58
  • En lugar de inicio de sesión de usuario, lo haces con uno de inicio de sesión de máquina que seguro tiene todos los permisos (System)

    Pruébalo pero sin Pause, porque corre en forma no visible... y te quedarás esperando 10 minutos hasta que el sistema fuerce el cierre y no verás nada

    Guillermo Delprato - MVP-MCT-MCITP-MCTS-MCSE MCITP: Server Administration MCTS:Active Directory/Network Infrastructure Buenos Aires, Argentina
    martes, 15 de septiembre de 2009 18:36
    Moderador
  • OK; el pause si es para probar lo quito.

    A qué te refieres con inicio de sesión de máquina? A iniciar por ejemplo en local en un PC cualquiera? O bien con el propio administrador del Dominio poniéndole ese .bat en su inicio de sesión? Eso me lo haría automáticamente en todos???
    Edito: En el PC donde están esas carpetas claro, es decir, el Servidor Principal de Domino (único además, mal hecho pero la jefa no compra otro sabiendo el riesgo..)

    Gracias.
    PD: Posibles consecuencias negativas? Del tipo heredar permisos de la carpeta raíz, o bien dejar a los usuarios sin permisos de escitura...?
    PD2: Debo bloquear heredar pèrmisos de \almacenamiento o lo dejo tal cual y las carpetas %username% y subcarpetas pillan los permisos válidos? Luego deberé dar acceso a administrador y profesores a esas carpetas, pero eso si que lo puedo hacer a mano ya que son generales y en TODAS las carpetas.
    martes, 15 de septiembre de 2009 18:40
  • Si asignas los scripts por GPO, tienes cuatro niveles de scripts
    Por máquina: Inicio / Apagado
    Por usuario: Inicio / Cierre

    *PRUEBA* manualmente primero con un usuario de prueba y asegúrate que hace lo que deseas, porque el CALS es "tricky" y los permisos sobre los "homes" son por decirlo suave: delicados

    Guillermo Delprato - MVP-MCT-MCITP-MCTS-MCSE MCITP: Server Administration MCTS:Active Directory/Network Infrastructure Buenos Aires, Argentina
    martes, 15 de septiembre de 2009 19:10
    Moderador
  • Gracias, de esos 4 niveles cuál uso?

    Porque esas carpetas están en el propio Servidor de Dominio, ejecuto a mano el punto bat y listo. no?

    Usaré primero un par de ellos de prueba con el usuario1, usuario2, en lugar de los comodines %username% , y si funciona pues a todos.
    Permisos homes te refieres al raíz, no me importa modificarlo, pero si querría mantener al grupo profesores con permisos, pero como es en todas las carpetas esto lo puedo hacer a mano desde "usuarios y equipos".
    martes, 15 de septiembre de 2009 19:57
  • Primero probarlo con un usuario de prueba/muestra desde línea de comandos y verificar que todo ande bien.

    Si es en el propio DC que está todo entonces no hay que hacer por script de inicio. Simplemente un script que tome de entrada la lista de usuarios.

    Para eso yo empiezo a "flaquear" :-) pregunta mejor en el foro de scripting que seguro te van a dar una mano.

    Guillermo Delprato - MVP-MCT-MCITP-MCTS-MCSE MCITP: Server Administration MCTS:Active Directory/Network Infrastructure Buenos Aires, Argentina
    martes, 15 de septiembre de 2009 20:28
    Moderador
  • Ufff, pensaba que ya bastaba con el .bat y que con poner \\SERVIDOR\ALMACENAMIENTO\%username% el propio era capaz de pillar el nombre de cada carpeta a modo de comodín * usando la variable %username%, si debo programar o complicarlo mucho más lo dejo como está.

    Al fin y al cabo todo empezó por un supuesto robo de datos que luego fue a través de un pendrive y de un usuario a otro. (no hackearon nada).

    Gracias de todos modos, probaré a ver algo.
    martes, 15 de septiembre de 2009 20:32
  • No se puede hacer con sólo %username% porque la variable es tomada desde el nombre de la cuenta que tiene la sesión abierta.


    Guillermo Delprato - MVP-MCT-MCITP-MCTS-MCSE MCITP: Server Administration MCTS:Active Directory/Network Infrastructure Buenos Aires, Argentina
    martes, 15 de septiembre de 2009 21:35
    Moderador
  • OK, gracias, entonces o bien inician la sesión los 1200 usuarios y pongo ese .bat por GPO en inicio (y que funcione perfecto, claro), o bien lo hago a mano.

    O no lo hago, jeje. D emomento no lo hago, y más adelante pues = a mano.

    Gracias.
    miércoles, 16 de septiembre de 2009 8:15
  • Yo creo que con ese bat si ahora mismo todos los usuarios por lo que dices pueden acceder y tienen control total sobre todas las carpetas de todos los usuarios, no deberia dar problemas la modificacion de permisos.

    El poner el bat para que se ejecute por máquina te impediría usar la variable %username% con lo que no ganarias nada.

    Yo lo asignaria por usuario y en caso de que todos los usuarios hayan heredado el permiso de modificar, lo que les permitiria acceder a las carpetas pero no modificar los permisos y el bat no funcionaria, yo en tu lugar aunque no sea lo mas recomendable como algo muy temporal les daria a todos control total para que pueden ejecutar el bat y reestablecer los permisos.

    Saludos y suerte




    miércoles, 16 de septiembre de 2009 14:38
  • Si, pero el caso es que esos 1200 alumnos/usuarios no vienen cada poco y algunos hasta pueden pasar años sin iniciar sesión. Así que %username% que es la variable del usuario que inicia sesión entiendo, no me es útil. Acabaré haciéndolo a mano cuando tenga tiempo libre.

    Gracias.
    miércoles, 16 de septiembre de 2009 15:09
  • En ese caso seria un serio problema hacer el cambio de permisos a control total.
    Solo se me ocurre decirte: Que sea leve
    miércoles, 16 de septiembre de 2009 16:06
  • Para restaurar permisos de una carpeta de un servidor comúnmente suelo usar takeown /A /F nombre de carpeta /r ( y la r para que sea recursivo), luego personalizo nuevamente los permisos...

    Espero que a alguien le sirva

    jueves, 6 de junio de 2013 13:50
  • Perfecto, funciona a la perfeccion. muchas gracias
    martes, 11 de febrero de 2020 11:31