Cómo chequear los permisos de acceso sobre un objeto del IFS en AS400
- Detalles
- Escrito por Nora Salmún
Controle las autorizaciones de acceso que poseen los objetos del Integrated File System (IFS), mediante comandos ejecutados en "pantalla verde" o desde iSeries Navigator en AS400.
Durante muchos años los usuarios finales, los administradores y operadores del AS400 han trabajado exclusivamente con las aplicaciones y objetos contenidos en el file system QSYS.LIB, con su estructura "tradicional" jerárquica de Bibliotecas, Objetos y Miembros.
Sin embargo en los últimos años se "popularizó" el uso de otros sistemas de archivo "no-nativos" disponibles en un sistema AS400, conocido como el Sistema de Archivos Integrado (Integrated File System o IFS), debido a que posibilita almacenar no sólo elementos "tradicionales" dentro del File System QSYS.LIB (código EBCDIC), sino también contenido ASCII: archivos de texto, scripts SQL, documentos, planillas de cálculo y páginas HTML, así como videos, imágenes y archivos de audio, permitiendo la integración y el intercambio de información con las plataformas Windows, Unix y Linux
Es importante aclarar que el IFS no es un sistema operativo ni un programa bajo licencia (tampoco se lo encontrará como opción separada de ningún producto) simplemente forma parte del sistema operativo.
NOTA: Es altamente recomendable leer la Nota técnica "Qué es el IFS y cómo accederlo" para un mayor entendimiento de lo que se describirá en la Nota presente.
Acceso al IFS desde "pantalla verde"
Como se explica en la Nota técnica de lectura previa recomendada, una de las formas de acceder al IFS desde la línea de comandos del OS/400 ("pantalla verde)", es mediante el menú FILESYS, ejecutando GO FILESYS. Desde el menú FILESYS se puede elegir el item "Mandatos de Objeto" que ofrece la posibilidad de ejecutar el comando WRKLNK (Work with Objects Links - Trabajar con enlaces de Objeto), el comando principal para el manejo de objetos dentro del IFS.
Esos "links" (enlaces) pueden ser de varios tipos diferentes, donde los principales son de tipo Directorios (DIR) o Stream Files (SMTF). Desde la perspectiva de la PC, estarían relacionados a Directorios (carpetas) y Archivos (files).
Al ejecutar el comando WRKLNK sin parámetros, se desplegará una lista completa de todos los directorios del nivel principal (raiz) en el IFS, representado en la siguiente figura:
Desde esta pantalla de salida se podrá explorar el IFS completo dentro del sistema AS400, incluyendo el file system "nativo" que está incuído bajo QSYS.LIB.
Además, si se desea acceder directamente a un directorio específico, se puede ejecutar el comando WRKLNK especificando en el parámetro OBJ, el nombre de directorio u archivo "calificado" como se muestra a continuación:
WRKLNK OBJ('/pruebasql')
Cuando se ejecute el comando especificado anteriormente, se accederá directamente al directorio "pruebasql" en el File System ''/', sin tener que navegar el árbol completo.
Visualizar permisos de acceso sobre un archivo o directorio del IFS
Desde el punto de vista de la seguridad, el OS400 provee el mismo nivel de seguridad en el IFS, que para los objetos del File System nativo QSYS.LIB, pero los file systems "no-nativos" del IFS usan un esquema de seguridad diferente al del File System QSYS.LIB "tradicional". El File System raíz ('/'), el sistema de arhivos QOpenSys y los sistemas de archivo definidos por los usuarios, usan un esquema de autoridad basado en UNIX, que conoceremos más adelante en este artículo.
Si nuestro objetivo es conocer cuáles son los seteos de seguridad para un objeto determinado del IFS (ya sea un directorio o un archivo de tipo STMF), una de las posiblidades de lograrlo es ejecutar el comando WRKLNK, que mostrará la pantalla "Trabajar con enlaces de objeto", y desde allí poder navegar la estructura de directorios y archivos de acuerdo a cada necesidad, e identificar en la navegación el objeto con el que se desea operar.
Posteriormente, sobre el objeto indicado se puede seleccionar la opción "9= Trabajar con autorización" para acceder a la información completa relacionada con la seguridad sobre el mismo, como se muestra en la pantalla siguiente:
Esta acción lleva a otra pantalla: "Trabajar con Autorización", y se podrá obtener la información de seguridad completa sobre ese objeto específico, en nuestro caso el directorio pruebastip que está bajo sistema de archivos '/' (raiz). Esta información incluye: el propietario, una lista de autorizaciones (si el objeto tuviera alguna especificada), los seteos de autorización para *PUBLIC y una lista de los usuarios que están autorizados a trabajar con ese objeto.
Asimismo, desde esta pantalla se podrá:
- Añadir un nuevo usuario y sus permisos, cambiar la autorización para un usuario o eliminar los permisos para un usuario sobre ese objeto
y con diferentes Teclas de Función:
- cambiar la lista de autorizaciones, cambiar el propietario o cambiar el grupo primario de ese objeto.
También se llega a la misma pantalla directamente ejecutando el comando WRKAUT (indicando en el "pathname" el nombre del objeto del IFS a acceder), y mediante CHGAUT y DSPAUT, se accederá directamente a Cambiar Autorización y Visualizar autorización, respectivamente.
Si bien los comandos mencionados son comandos del OS/400 que se ejecutan en "pantalla verde", requerirán sin embargo que se especifique un "path name" para identificar cualquier nombre de objeto dentro del IFS (contrapuesto a la manera de "calificar" un objeto referenciado con cualquier comando que maneje objetos en el sistema de archivos tradicional - QSYS:LIB)
La siguiente pantalla detalla el esquema de seguridad del directorio '/pruebastip' dentro del IFS:
Como se comentó anteriormente, algunos Sistemas de Archivos del IFS usan un esquema de seguridad basado en UNIX. Por lo tanto es importante conocer cuál es la nomenclatura para definir la seguridad en el IFS, y así poder interpretar el esquema de permisos de los objetos (directorios y archivos) dentro del mismo.
En la pantalla anterior, se observa que la información de seguridad en el IFS se describe mediante una combinación de las letras R-W-X (si existen, van en ese orden), prefijadas por un símbolo ' * ' , que determinan las autoridades otorgadas para los usuarios sobre los datos de ese objeto, como se vé marcado en "rojo" en la pantalla anterior.
Se puede notar, en el ejemplo, que se ha otorgado la autoridad completa (*RWX) al usuario *PUBLIC, sobre el directorio "pruebastip" que depende del directorio raíz, '/', y además se ha otorgado el mismo esquema de permisos al usuario TEKNODA por ser el propietario de dicho objeto, mientras que el usuario QDIRSRV, posee la autoridad *X.
Pero ... ¿Cómo interpretar esos códigos de letras R - W - X y sus combinaciones? ¿Cuál es la correspondencia con las autorizaciones otorgadas por el OS/400 sobre los objetos del sistema de archivos QSYS.LIB?
Cuando se controla el acceso a objetos del IFS, se manejan tanto autorizaciones de objeto como autorizaciones de datos. Las autorizaciones *R, *W, *X especificadas en objetos del IFS, se "mapean" exclusivamente con las autorizaciones de datos, con el siguiente significado:
- *R (autoridad read- Lectura) permite que se pueda listar el contenido de un directorio o que se pueda leer un objeto (ej. un stream file).
- *W (autoridad write- Actualización) permite que un nuevo objeto (un subdirectorio o un "stream file" ) pueda ser agregado a un directorio.
- *X (autoridad execute- Ejecutar/Buscar) permite que se pueda "navegar" o "buscar" en un directorio y también ejecutar un programa.
Algunos ejemplos de combinaciones posibles que se pueden encontrar al visualizar las autorizaciones de objetos del IFS (recordar que simbolizan las autorizaciones sobre los datos de un objeto del IFS):
*RWX equivale a la autoridad *CHANGE otorgada por el OS/400 sobre los objetos del file system QSYS.LIB - La autorización *RWX proporciona autorización operativa sobre objeto y todas las autorizaciones sobre datos.
*RX equivale a la autoridad *USE del OS/400 - La autorización *RX proporciona autorización operativa obre el objeto y autorizaciones de ejecución y de lectura. Se puede ejecutar un programa o visualizar el contenido de un archivo, pero impide al usuario que cambie ese objeto.
*RW proporciona autorización operativa sobre el objeto y autorizaciones de lectura, adición, actualización y supresión de datos. Se permite visualizar el contenido de un objeto y cambiar su contenido.
Sin embargo, *XR - ofrece una combinación inválida y no provee ningún permiso, y se emite un mensaje de error al especificarlo.
NOTA IMPORTANTE: si se ejecuta el comando DSPAUT OBJ('/') (Visualizar las autorizaciones del directorio raíz del IFS), se podrá observar que el acceso default para el directorio raíz ('/') ofrece para el usuario *PUBLIC las autorizaciones de datos *RWX y todas las autorizaciones sobre el objeto! (Presionar F11 para acceder al detalle de las autorizaciones). En términos de seguridad "tradicional" del OS/400, es equivalente a tener *PUBLIC(*ALL). Esto implica que cualquier directorio que se cree debajo del raíz '/', va a heredar estas autorizaciones (*RWX) para el usuario *PUBLIC, con el consecuente comportamiento en la seguridad de esos objetos. Por lo tanto, es conveniente revisar los defaults de las autorizaciones de los objetos importantes del IFS, para evitar "sorpresas" posteriores.
El cuadro siguiente muestra la correspondencia de autorizaciones entre objetos del file system QSYS:LIB (usando la terminología acostumbrada) y el esquema de seguridad encontrado en los objetos del IFS, mostrando cómo se verán reflejadas las autorizaciones sobre los datos en los objetos dentro de sistemas de archivos "no-nativos":
Notar que la autorización *OBJOPR, que es una "autorización sobre Objeto" en términos de la seguridad de OS/400, está incluída con las autorizaciones sobre Datos que conforman la implementación de esas autoridades "UNIX" sobre el sistema operativo OS/400, y se verá como "OpObj" cuando se visualicen las autorizaciones de cualquier objeto del IFS. Sin embargo, las "Autoridades sobre Objetos" tradicionalmente usadas sobre objetos de QSYS: *OBJMGT, *OBJEXIST, *OBJALTER, *OBJREF, y *AUTLMGT, no se verán reflejadas en la representación combinada de R-W-X "like UNIX", pero sí se consideran parte de los permisos de acceso a ese objeto del IFS.
Como ejemplo, considerar que si se elimina la autorización *OBJEXIST para un usuario sobre un objeto determinado, se podrá observar que de todas maneras se seguirá visualizando *RWX, si esa fue la autorización sobre los datos que ya poseía, es decir, no se verán afectados los permisos sobre los datos, por lo tanto no se verá modificada la representación "like UNIX".
Acceso al IFS desde iSeries Navigator
Además de los comandos usados en "pantalla verde" para acceder al esquema de autorizaciones sobre objetos del IFS, también es posible establecer y visualizar los permisos sobre objetos del IFS, mediante el uso de la herramienta gráfica iSeries Navigator.
Para eso: Ir a Mis conexiones → Sistema → Sistemas de archivos → Sistema de Archivos Integrado y luego expandir el directorio Root para visualizar los directorios debajo de Root, botón derecho del mouse sobre el directorio selccoinado a elección y elegir Permisos. Esta llevará a la pantalla siguiente:
La forma en se muestran los permisos para un objeto del IFS desde el iSeries Navigator es distinto a como se muestran en pantalla verde: observar que para el directorio ejemplo '/pruebastip', en las "autorizaciones sobre datos", se visualiza específicamente, quedando más claro el tipo de permiso que se está otorgando:
Lectura - Escritura- Ejecución - equivale a *R, *W y *X, si se lo visualiza desde los comandos de "pantalla verde" alternativos mencionados en la nota presente.
Para tener en cuenta ...
- Los comandos de manejo de autorizaciones presentados en esta nota, ya sea especificados en pantalla verde o a través del iSeries Navigator, también pueden aplicarse sobre objetos del file system QSYS.LIB, mencionándolos apropiadamente en el "path name" y se podrá visualizar el esquema de permisos como si se tratara de objetos de otros files systems, con la ya analizada nomenclatura R-W-X.
- La autoridad adoptada no está contemplada en el manejo de autorizaciones dentro del IFS. Por lo tanto, se tendrá que adaptar la aplicación para que permita el intercambio de perfil de usuario con el que se pueda acceder al objeto.
- Para visualizar los contenidos de un directorio se requiere la autorización de datos *RX para cada directorio en el "path name" del objeto. Por lo tanto, es posible que un usuario pueda cambiar su directorio de trabajo (hacerlo corriente) a un directorio sobre el que no pueden visualizar su contenido.
- Se puede prevenir que un usuario acceda al file system QSYS:LIB desde iSeries Navigator, o desde el soporte de red de Windows (servicio Netserver), eliminando la autoridad para dicho usuario sobre la lista de autorizaciones QPWFSERVER., provista por el OS/400, que por default tiene sobre *PUBLIC *USE. Si se especifica *PUBLIC en *EXCLUDE sobre esta lista de autorizaciones, se impedirá que los usuarios accedan a QSYS.LIB a través de interfaces como iSeries Navigator.
- Existen consideraciones adicionales sobre el manejo de autorizaciones de objetos del IFS que no están consideradas en esta nota técnica.
Copyright 2011 - Teknoda S.A.
IMPORTANTE: “Notas técnicas de AS/400 - IBM i" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes IBM i - AS/400. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. NS iTech - Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos. |
Ficha técnica: Notas técnicas – Tips de AS400 - iSeries ”Cómo chequear los permisos de acceso sobre un objeto del IFS en AS400"
Tema: Seguridad, control de acceso, IFS
Descripción: Controle las autorizaciones de acceso que poseen los objetos del Integrated File System (IFS), mediante comandos ejecutados en "pantalla verde" o desde iSeries Navigator.