Tengo un directorio compartido vía CIFS desde un "servidor" de Windows 7. Sin dominio: solo un simple grupo de trabajo.
Mis clientes acceden a este directorio a través de LAN a través de cuentas de "Usuario estándar" (no de "Administrador") en el servidor. Usan este recurso compartido para "almacenamiento personal", por lo que necesitan crear, editar o eliminar por completo todo lo que contiene.
El problema es: creo un directorio allí en el lado del servidor.Este único elemento no debe ser editable de ninguna manera, solo legible/navegable/listable(centrémonos en el directorio en sí, no en el archivo que contiene (a veces no hay ninguno)).
Estoy trabajando con permisos NTFS: eliminé la herencia del directorio que no debe eliminarse, para poder trabajar en sus permisos.
Eliminé la cuenta del cliente y, en esta etapa, solo el SISTEMA, los Administradores y yo estamos presentes con sus permisos. En esta etapa, los clientes no pueden eliminar ni abrir la carpeta.
Si agrego una regla Denegar "control total", nada cambia (como se esperaba).
Perosi modifico esa regla y permito solo "Listar carpeta/leer datos", mientras mantengo todas las demás en Denegar... el usuario puede eliminar la carpeta!?!?!?
¿Cómo es eso posible? ¿Qué estoy entendiendo mal?
Nota: Verifiqué dos veces con un solo archivo, no con un directorio: ¡el mismo problema!
Esta es la salida de Icacl:
NO DEBE ELIMINAR NT AUTHORITY\SYSTEM:(OI)(CI)(F) muletto\Zane:(OI)(CI)(F) BUILTIN\Administrators:(OI)(CI)(F) muletto\myNetworkUser:(OI) (CI) (RX)
1 archivo procesado correctamente; Error al procesar 0 archivos
Respuesta1
DE ACUERDO. Puedo confirmar que un usuario puede eliminar un archivo (o eliminar un directorio vacío) sin tener acceso de escritura a ese archivo/directorio si tiene acceso Eliminar hijo al directorio principal. Si era consciente de esto antes, lo había olvidado, pero es un comportamiento documentado, por ejemplo, verKB101651.
Hay (al menos) tres formas de resolver su problema:
Otorgue a los usuarios acceso de modificación en lugar de acceso de control total al directorio principal. Las únicas diferencias entre Control total y Modificar son el derecho Eliminar niño (que permite al usuario eliminar objetos secundarios) y el derecho Escribir DAC (que permite al usuario cambiar los permisos del objeto, incluso si no es el propietario).
Establezca los permisos del recurso compartido en Modificar en lugar de Completo. Esto debería tener el mismo efecto, pero sólo afectará a los usuarios de la red, no a los usuarios interactivos. Un efecto secundario es que los usuarios no pueden cambiar los permisos, ni siquiera en sus propios archivos.
Establezca el indicador de solo lectura en el archivo/directorio secundario. La documentación no es clara sobre este punto, pero mis pruebas (Windows 7) indican que Eliminar hijo no le permite eliminar archivos ni eliminar directorios con el indicador de solo lectura configurado. Tampoco le permite restablecer el indicador de solo lectura. Tenga en cuenta que la GUI del Explorador implica que el indicador de solo lectura no tiene ningún efecto en los directorios; de hecho, evita que se elimine el directorio. (No impide que se escriban nuevos archivos en el directorio). Apéndice:el indicador de solo lectura no impide que se mueva un directorio.
Otras notas:
Puede denegar explícitamente el derecho Eliminar hijo al directorio principal, pero si el usuario tiene control total sobre el directorio principal, puede eliminar la entrada de denegación.
Tener Eliminar hijo directamente en el directorio principal no permite a los usuarios eliminar archivos del directorio secundario o eliminar el directorio secundario a menos que esté vacío. Apéndice:permite a los usuarios mover el directorio secundario.