Dar acceso a un subdirectorio sin dar acceso a directorios principales


12

Tengo un escenario que involucra un servidor de archivos de Windows donde el "propietario" quiere repartir permisos a un grupo de usuarios del siguiente tipo:

  • \\server\dir1\dir2\dir3: leer, escribir y ejecutar
  • \\server\dir1\dir2: no permisos
  • \\server\dir1: no permisos
  • \\server: leer y ejecutar

A mi entender ( Actualización : ¡Todo este párrafo está mal!), No es posible hacer esto porque se debe otorgar Read & Executepermiso a todos los directorios principales en una cadena de directorios para que el sistema operativo pueda "ver" al hijo directorios y llegar a ellos. Sin este permiso, ni siquiera puede obtener el token de contexto de seguridad cuando intenta acceder al directorio anidado, incluso si tiene acceso completo al subdirectorio.

Estamos buscando formas de evitar esto, sin mover los datos de \\server\dir1\dir2\dir3a \\server\dir4.

Una solución alternativa en la que pensé, pero de la que no estoy seguro si funcionará, es crear algún tipo de enlace o unión \\server\dir4que sea una referencia \\server\dir1\dir2\dir3. No estoy seguro de cuál de las opciones disponibles (si hay alguna) funcionaría para este propósito si el usuario no tiene Read & Executepermiso \\server\dir1\dir2o \\server\dir1, pero que yo sepa, las opciones son estas:

  • Enlace simbólico NTFS,
  • Unión,
  • Enlace duro

Entonces las preguntas:

  • ¿Alguno de estos métodos es adecuado para lograr mi objetivo?
  • ¿Existen otros métodos para vincular o hacer referencia indirectamente a un directorio, que no he enumerado anteriormente, que podrían ser adecuados?
  • ¿Hay directos soluciones que no implican la concesión Read & Executede \\server\dir1o \\server\dir2, pero que todavía permite el acceso a \\server\dir1\dir2\dir3?

Esto es posible. El usuario vería el directorio, pero si no se le da permiso de lectura, no puede ver el contenido del directorio, lo que es bastante fácil de configurar.
Ramhound

Esa fue mi pregunta también. Gracias por plantear la discusión. Y por actualizar su pregunta para reflejar de inmediato que su suposición fue incorrecta.
tyron

Respuestas:


15

Estás equivocado en tu suposición original, lo que hace que el resto de tu pregunta sea discutible.

El permiso mínimo que un usuario necesitaría dir1y dir2es Traverse Directory. Sin embargo, esto probablemente sea problemático para sus usuarios, por lo que recomendaría Traverse Directory y List Folders . Podrán navegar a través de los dos directorios superiores y llegar a dir3donde tienen más permisos, pero ni siquiera verán qué archivos existen en los dos directorios superiores.

Los permisos les gustan Read & Executey Modifyson solo colecciones de permisos individuales. Son lo primero que ves, porque son los más utilizados. Si necesita ser muy granular (como esta situación), haga clic en el Advancedbotón y profundice en las opciones que se enumeran allí.


Excelente información (2)! Pero hay algo que no entendí: "Esto probablemente será problemático para sus usuarios". ¿Por qué sería problemático? El nombramiento es bastante sencillo en el sentido de que "Traverse" parece ser el único permiso necesario. ¿Qué tipo de problemas deben esperar los usuarios?
tyron

12

Sorprendentemente, si el individuo tiene la ruta completa a una subcarpeta en la que tiene al menos permisos R, no requieren permisos en ninguna de las carpetas principales, ni siquiera atraviesan. Simplemente pueden acceder a él utilizando la UNC. (Deben, por supuesto, tener permisos de lectura en el recurso compartido; simplemente no en ninguna carpeta por encima del nivel al que desean acceder).

No me lo creí cuando me lo dijeron, pero las pruebas lo prueban.

Esto es contrario a lo que pensé que sabía sobre los permisos en el mundo de Windows, y sospecho que será una sorpresa para muchos.

\ server \ folder1 \ folder2 \ folder3

Si no hay permisos para Bilbo en la carpeta1 y en la carpeta2, pero Bilbo ha modificado (por ejemplo) en la carpeta3, \ server \ folder1 \ folder2 \ folder3 lo llevará allí mismo, no hay problema.


Esto funciona cuando folder1tiene permisos COMPARTIR y los permisos NTFS están configurados, por folder3lo que esto \\server\c$\folder1\folder2\folder3no funcionará.
user2304170

1
Para agregar a esta respuesta, esta "capacidad" implícita de atravesar las carpetas principales a una subcarpeta, por profunda que sea, a la que tiene acceso es otorgada por el usuario llamado "Omitir verificación transversal" otorgado en la Política de grupo por defecto para la mayoría / todos los usuarios en la mayoría de los casos. Visite itprotoday.com/management-mobility/… ya que no puedo pegar suficiente aquí para capturar la lista de lo que obtiene el permiso en qué circunstancias.
Torre

Omitir la verificación de recorrido como un derecho también está allí como una mejora de rendimiento de NTFS para permitir omitir la verificación de los permisos de cada carpeta en el árbol en el camino para abrir la carpeta / archivo final deseado, por lo que no se sugiere eliminarlo a menos que sepa que necesita ese nivel extremadamente alto de seguridad.
Torre

1

Una solución similar a MDMarra es establecer los permisos NTFS de la siguiente manera:

  1. dir1 : Otorgar contenido de la carpeta de la Lista (Carpeta transversal / archivo de ejecución, Carpeta de la lista / lectura de datos, Lectura de atributos, Lectura de atributos extendidos, Lectura de permisos)
  2. PERO seleccione Esta carpeta solo para Aplicar al menú desplegable
  3. dir2 : Otorgar contenido de la carpeta Lista y Aplicar solo a esta carpeta
  4. dir3 : conceda los permisos de lectura / escritura deseados y aplique a esta carpeta, subcarpetas y archivos o solo subcarpetas y archivos

El resultado final es que el usuario / grupo puede leer cada carpeta principal individual y profundizar en la carpeta secundaria sin ninguna otra carpeta o archivo.


Eso no es similar a la respuesta de MDMarra, esa es la respuesta de MDMarra, explicada con mayor detalle.
Scott

0

Así que he estado probando esto en el siguiente entorno, ya que quería obtener una respuesta final probada, con los permisos mínimos requeridos para simplemente atravesar carpetas a través de la exploración (es decir, a través del Explorador de archivos de Windows). Aquí están los resultados para aquellos que quieren cerrar las cosas con fuerza.

Todavía no he probado esto en producción para ver si hay algún efecto secundario extraño al reducir la plantilla de derechos de recorrido bien probada "estándar" de

  • Carpeta transversal
  • Lista de carpetas
  • Leer atributos
  • Leer ext. Atributos
  • Permisos de lectura

... que básicamente son permisos normales de "Leer y ejecutar" limitados a "Esta carpeta". Dicho esto, las pruebas a pequeña escala han sido completamente buenas hasta ahora para los usuarios que simplemente mueven, copian y eliminan archivos en el servidor y los usuarios trabajan completamente fuera de las copias de documentos del servidor, etc.


Medio ambiente:

  • Servidor : Windows 2008 R2: política de grupo poco o nada, nada ha cambiado en relación con los derechos del usuario, configurado como controlador de dominio, DNS integrado en AD, configuración muy estándar / básica.
  • Cliente : Windows 7 SP1: instalación limpia en una máquina virtual, reinicia entre los cambios para garantizar que la conexión al servidor se haya recreado completamente cada vez.
  • Ambas instalaciones se actualizaron al menos a finales de 2017, por lo que es probable que estén al día para todo lo relacionado con los permisos que están muy integrados en este momento en la línea de tiempo de Windows.
  • Esto fue acceder a una carpeta compartida montada como una unidad de red persistente (\ server \ share -> S :) en la VM. Los permisos de compartir fueron de lectura + cambio para el grupo de usuarios autenticados que cubre al usuario de prueba y a todos los demás que probablemente necesiten acceso en algún momento.
  • Después de cada cambio, reiniciaría la máquina virtual, abriría el Explorador de archivos y simplemente examinaría el recurso compartido normalmente, siguiendo una ruta que sabía que el usuario de prueba tenía estos derechos transversales frente a los que no tenía.

Resultados:

  • Requerido en la carpeta raíz : ListFolder-ReadData + ReadAttributes (2x permisos)
  • Necesario en subcarpetas : ListFolder-ReadData (permiso 1x)
  • Opcional : TraverseFolder - ExecuteFile

    -> Este permiso opcional solo es importante si se omite explícitamente el derecho de omitir la verificación de usuarios de la verificación transversal, ya que está activado de forma predeterminada en el 99% de las circunstancias. Dicho de otra manera, el derecho de usuario "Omitir verificación transversal" (expuesto en la directiva de grupo, no en los permisos de archivos / carpetas NTFS) que se habilita obvia este privilegio por completo y lo habilita de manera predeterminada en todas partes. Nota: No he probado para ver si una denegación explícita de este derecho, a su vez, detendría que el derecho de usuario de Bypass Traverse Check tenga efecto en esa instancia en particular, pero podría).

Información complementaria: el derecho de usuario "Omitir verificación de recorrido" permite a alguien desplazarse pasivamente a una subcarpeta, a pesar de muchos niveles de profundidad, a los que tiene acceso directamente (es decir, los permisos se establecen en ese archivo / carpeta, pero no necesariamente en otro lugar más arriba) la ruta del archivo).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.