Publicado el :
Administración CREATION_INTERNE

Chmod (gestión de permisos)

Este código también está disponible en: Deutsch English Français
Attention : Este código requiere privilegios de administrador.
Esta macro SAS©, llamada `chmod`, permite cambiar los permisos de archivos y directorios en un sistema UNIX. Está diseñada para ejecutarse localmente en el sistema UNIX o mediante un envío remoto (`rsubmit`). La macro asegura que el grupo tenga acceso completo (lectura, escritura, ejecución) a los archivos y directorios de una biblioteca SAS© especificada, así como a su directorio padre.
Historial de cambios:
  • 1 de marzo de 2004 (pm): Se añadió soporte para vistas SAS© y catálogos.
  • 2 de marzo de 2004 (pm): Se añadió soporte para archivos comprimidos (Z).
  • 2 de marzo de 2004 (pm): Modificación para procesar todos los archivos y directorios y subir un nivel para asegurar que se incluya el directorio que los contiene.
Parámetros de entrada:
  • `path`: Libréf de la biblioteca para la cual se deben modificar los permisos (por defecto 'inprd').
  • `local`: Si es '1', se ejecuta localmente en UNIX; de lo contrario, el envío se realiza de forma remota desde el cliente al servidor.
Análisis de datos

Type : CREATION_INTERNE


El script no ingiere datos externos para su procesamiento. Utiliza un DATA STEP 'null' para operaciones internas como la resolución de una ruta de libréf SAS (`pathname`) y la ejecución de comandos del sistema (`call system`, `x`).

1 Bloque de código
MACRO DEFINITION
Explicación :
Este bloque define la macro `chmod` con dos parámetros: `path` (libréf, por defecto 'inprd') y `local` (indicador de ejecución local). El código incluye un bloque condicional (`%if`) que, si `local` no se especifica, utiliza `%syslput` para transferir el valor de `path` y envía el código siguiente a un servidor SAS remoto a través de `rsubmit`.
¡Copiado!
1%macro chmod(path=inprd,local=) ;
2%put NOTE-USED: {};
3%IF &local= %THEN
4 %DO ;
5 %syslput path=&path;
6 rsubmit ;
7 %END ;
2 Bloque de código
DATA STEP
Explicación :
Este bloque ejecuta un DATA STEP `_null_` que no crea un conjunto de datos. Se utiliza para:
1. Resolver la ruta física de la libréf SAS (`&path`) utilizando la función `pathname()`.
2. Mostrar esta ruta en el log (`put path=`).
3. Ejecutar el comando del sistema `cd` para cambiar el directorio actual a la ruta resuelta.
Luego, utiliza dos comandos `x` para ejecutar el comando UNIX `chmod g=rxw *`, primero en el directorio de la libréf para otorgar al grupo permisos de lectura, escritura y ejecución, y luego en el directorio padre (`cd ..`) para aplicar los mismos permisos al directorio contenedor.
¡Copiado!
1 * Fix authorities so group has full access to datasets & indexes created ;
2 * use a datastep to force pathname to resolve on UNIX, rather than windows ;
3 DATA _null_ ;
4 LENGTH path $ 256 ;
5 path=pathname("&path") ;
6 put path= ;
7 call system('cd '||trim(path)) ;
8 RUN ;
9 x "chmod g=rxw *" ;
10 * go up a level to fix the directory ;
11 x "cd .." ;
12 x "chmod g=rxw *" ;
3 Bloque de código
MACRO END
¡Copiado!
1%IF &local= %THEN
2 endrsubmit ; ;
3%mend chmod ;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : Program Macro Name : chmod (version#007) Date : 19feb2004 Written By : phil mason