Subsistema para aplicaciones UNIX (SUA) proporciona un subsistema compatible con Portable Operating System Interface (POSIX) que ejecuta aplicaciones, utilidades y shells de UNIX de forma nativa, junto con aplicaciones Microsoft® Windows®. En este tema se describen algunas de las consideraciones de trabajo para los usuarios que requieren un sistema operativo compatible con POSIX.
Compatibilidad con el shell de POSIX
El shell de Korn de SUA tiene el mismo comportamiento que el shell de Korn tradicional, que casi idéntico al comportamiento de POSIX. Si necesita una compatibilidad total con POSIX, que es necesaria en algunos entornos, vea las diferencias existentes entre el shell de Korn y POSIX en la documentación de ksh(1), en los archivos de Ayuda que se encuentran en el paquete de descarga de las utilidades y el kit de desarrollo de software (SDK) para Subsistema para aplicaciones UNIX.
Para obtener una compatibilidad total con POSIX.2 desde el shell de Korn, deberá ejecutar el shell de Korn en modo POSIX. Para ejecutar el shell de Korn en modo POSIX, haga lo siguiente:
-
Abra el shell de Korn con la opción -o posix.
-
Ejecute el conjunto de comandos -o posix desde el shell.
-
Establezca el parámetro de shell POSIXLY_CORRECT.
No se admite la compatibilidad con POSIX en el shell de C. A diferencia del shell de Korn, el shell de C no dispone de opciones de comandos de modo POSIX.
Comprobación de recorrido de permisos de directorios
De forma predeterminada, los usuarios de Windows disponen de permisos para moverse a través de un árbol de directorios, aunque puede que no tengan permisos para obtener acceso a todos los directorios de la ruta de acceso. En los sistemas POSIX, no se puede obtener acceso a un directorio a menos que se disponga de permiso para obtener acceso a todos los directorios de la ruta de acceso al directorio. El comportamiento de POSIX se conoce con el nombre de comprobación de recorrido. Por ejemplo, si no dispone de permiso para obtener acceso a un directorio, no podrá cambiar del directorio actual a uno de sus subdirectorios, aunque tenga permiso para obtener acceso a los subdirectorios. En Windows, se puede cambiar del directorio actual a uno de sus subdirectorios para el que se dispone de permiso de forma predeterminada.
En Windows, hay un permiso especial, que recibe el nombre de permiso Recorrer carpeta o ejecutar archivo, y que se puede establecer para un usuario o grupo. Puede configurar este permiso para permitir o denegar cualquier movimiento a través de un árbol de directorio. El permiso Recorrer la carpeta surte efecto sólo si el grupo o usuario no tiene otorgado el derecho de usuario Omitir comprobación de recorrido en el complemento Directiva de grupo. En Microsoft Windows 2000, el grupo Todos tiene el derecho de usuario Omitir comprobación de recorrido de forma predeterminada. En los sistemas operativos Windows Server® 2008 R2, Windows® 7, Windows Server® 2008, Windows Vista®, Windows Server 2003 y Windows XP, los grupos Administradores, Operadores de copia de seguridad, Todos, Usuarios avanzados y Usuarios tienen este derecho. Para obtener una compatibilidad total con los estándares POSIX, quite el derecho de usuario Omitir comprobación de recorrido de todos los usuarios y grupos, a excepción del grupo Operadores de copia de seguridad. Para ajustarse a los privilegios concedidos al usuario raíz en muchas otras implementaciones UNIX, quite el derecho de usuario Omitir comprobación de recorrido de todos los usuarios, a excepción de los grupos Administradores y Operadores de copia de seguridad.
Desviación del comportamiento de comprobación de recorrido en su y setuid
Los usuarios raíz que usan el comando su para ejecutar como otros usuarios y los usuarios que usan procesos setuid (y todos los procesos que incluyen llamadas relacionadas con setuid) se desvían del comportamiento predeterminado descrito ya que conservan algunos derechos de recorrido de directorio.
Si se quita el derecho Omitir comprobación de recorrido de las cuentas de usuario, se consigue un comportamiento compatible con POSIX. Sin embargo, cuando un usuario raíz intenta ejecutar su en cualquier otro usuario sin proporcionar una contraseña, la sesión resultante no tiene el comportamiento descrito anteriormente. Los procesos iniciados después de que un usuario ejecute su sin proporcionar una contraseña pueden tener acceso y desplazarse en un árbol de directorio, pero es posible que no dispongan de permiso para tener acceso a todos los directorios de la ruta.
Los procesos de Setuid y los procesos que llaman a setuid, seteuid o setreuid, también muestran el mismo comportamiento. Después de quitar el derecho Omitir comprobación de recorrido de la cuenta del usuario que ejecuta estos procesos, los procesos pueden desplazarse en un árbol de directorios, si bien es posible que no dispongan de los permisos para tener acceso a todos los directorios de la ruta.