Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este artículo le ayuda a resolver el problema en el que las reglas de autorización de FTP no se heredan con la configuración de aislamiento de usuario si el aislamiento de usuario ftp está configurado en el nivel de sitio.
Versión original del producto: Internet Information Services 7.5
Número de KB original: 4294477
Síntomas
En Microsoft Internet Information Services (IIS), si el aislamiento de usuario ftp está configurado en el nivel de sitio en el directorio físico nombre de usuario (habilitar directorios virtuales globales), las reglas de autorización ftp no se adhieren a la ruta de acceso física de la aplicación y no se heredan según la estructura de carpetas.
Supongamos que un sitio FTP de IIS tiene el aislamiento de usuario establecido en Directorio físico de nombre de usuario (habilitar directorios virtuales globales) y, en la característica de autorización ftp, se conceden permisos de lectura a todos los usuarios. Se crea una carpeta denominada Upload en \FTP\Localuser\<user_name>\
y se concede acceso de lectura y escritura a todos los usuarios a través de la característica de autorización ftp de IIS para esta carpeta upload . A pesar de tener permisos de escritura en la carpeta Upload, cuando un usuario cuyo nombre de usuario coincide con la< carpeta user_name> en la ruta de acceso intenta cargar un archivo en la carpeta Upload, el usuario recibe un mensaje de error acceso denegado.
La salida de intentar cargar un archivo FTP a través de la utilidad FTP de línea de comandos que se incluye en Windows es similar a la siguiente:
ftp> cd upload
250 CWD command successful.
ftp> put c:\file_name.txt
200 EPRT command successful.
550-Access is denied.
Win32 error: Access is denied.
Error details: Authorization rules denied the access.
550 End
Causa
Este comportamiento se debe al diseño. La configuración del directorio físico de nombre de usuario de FTP (habilitar directorios virtuales globales) garantiza la compatibilidad con versiones anteriores con la funcionalidad heredada de IIS 6.
Solución
Para obtener el comportamiento deseado, use otra carpeta fuera de las carpetas aisladas del usuario y, a continuación, establezca las reglas de autorización ftp necesarias en esa carpeta. En el caso de los sitios FTP que usan el aislamiento de directorio físico de nombre de usuario (habilitar directorios virtuales globales), use la FTP/Upload
ruta de acceso en lugar de establecer las reglas de FTP/LocalUser/<user_name>/Upload
autorización de FTP. El analizador de directorio omitirá la parte de la ruta de acceso porque FTP/LocalUser/<user_name>/Upload
se usa para la búsqueda de aislamiento. Por lo tanto, el comportamiento solo funcionará según lo esperado cuando las reglas de autorización se definen en rutas de acceso fuera de las carpetas aisladas del usuario, como la ruta de acceso de FTP/Upload
ejemplo. De esta manera, la autorización se aplica a la carpeta Upload para todos los usuarios.
A continuación se muestra una regla de autorización de ejemplo en el archivo ApplicationHost.config :
<location path="FTP/Upload">
<system.ftpServer>
<security>
<authorization>
<remove users="*" roles="" permissions="Read" />
<add accessType="Allow" users="*" permissions="Read, Write" />
</authorization>
</security>
</system.ftpServer>
</location>
Al intentar cargar un documento en el sitio FTP que tiene esta configuración, la salida de la utilidad del símbolo del sistema FTP en Windows es similar a la siguiente:
ftp> cd upload
250 CWD command successful.
ftp> put c:\file_name.txt
200 EPRT command successful.
125 Data connection already open; Transfer starting.
226 Transfer complete.
ftp: 14 bytes sent in 0.00Seconds 14000.00Kbytes/sec.
La opción User Isolation User name physical directory (habilitar directorios virtuales globales) se hereda de IIS 6 y no sigue la estructura de carpetas correcta. Otro modo de aislamiento, directorio de nombre de usuario (deshabilitar directorios virtuales globales) está presente en IIS 7 y versiones posteriores, y esta configuración sigue las reglas de autorización.