Publié le :
Administration CREATION_INTERNE

Chmod (gestion des permissions)

Ce code est également disponible en : Deutsch English Español
Attention : Ce code nécessite des droits administrateur.
Cette macro SAS©, nommée `chmod`, permet de changer les permissions de fichiers et de répertoires sur un système UNIX. Elle est conçue pour être exécutée localement sur le système UNIX ou via une soumission à distance (`rsubmit`). La macro s'assure que le groupe a un accès complet (lecture, écriture, exécution) aux fichiers et répertoires d'une bibliothèque SAS© spécifiée, ainsi qu'à son répertoire parent.
Historique des changements:
  • 1er mars 2004 (pm): Ajout du support pour les vues SAS© et les catalogues.
  • 2 mars 2004 (pm): Ajout du support pour les fichiers compressés (Z).
  • 2 mars 2004 (pm): Modification pour traiter tous les fichiers et répertoires et remonter d'un niveau pour s'assurer d'inclure le répertoire contenant.
Paramètres d'entrée:
  • `path`: Libréf de la bibliothèque pour laquelle les permissions doivent être modifiées (par défaut 'inprd').
  • `local`: Si '1', exécute localement sur UNIX; sinon, la soumission est faite à distance depuis le client vers le serveur.
Analyse des données

Type : CREATION_INTERNE


Le script n'ingère pas de données externes pour traitement. Il utilise un DATA STEP 'null' pour des opérations internes comme la résolution d'un chemin de libréf SAS (`pathname`) et l'exécution de commandes système (`call system`, `x`).

1 Bloc de code
MACRO DEFINITION
Explication :
Ce bloc définit la macro `chmod` avec deux paramètres: `path` (libréf, par défaut 'inprd') et `local` (indicateur d'exécution locale). Le code inclut un bloc conditionnel (`%if`) qui, si `local` n'est pas spécifié, utilise `%syslput` pour transférer la valeur de `path` et soumet le code suivant à un serveur SAS distant via `rsubmit`.
Copié !
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 Bloc de code
DATA STEP
Explication :
Ce bloc exécute un DATA STEP `_null_` qui ne crée pas de jeu de données. Il est utilisé pour:
1. Résoudre le chemin physique de la libréf SAS (`&path`) à l'aide de la fonction `pathname()`.
2. Afficher ce chemin dans le log (`put path=`).
3. Exécuter la commande système `cd` pour changer le répertoire courant vers le chemin résolu.
Ensuite, il utilise deux commandes `x` pour exécuter la commande UNIX `chmod g=rxw *`, d'abord dans le répertoire de la libréf pour donner au groupe des permissions de lecture, écriture et exécution, puis dans le répertoire parent (`cd ..`) pour appliquer les mêmes permissions au répertoire conteneur.
Copié !
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 Bloc de code
MACRO END
Explication :
Ce bloc marque la fin de la macro. Si le code a été soumis via `rsubmit` au début de la macro (condition `&local=` vraie), `endrsubmit` est exécuté pour terminer la session de soumission distante.
Copié !
1%IF &local= %THEN
2 endrsubmit ; ;
3%mend chmod ;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : Program Macro Name : chmod (version#007) Date : 19feb2004 Written By : phil mason


Banner
Le Conseil de l'Expert
Expert
Simon
Expert SAS et fondateur.
« Cette macro chmod est un excellent exemple d'interopérabilité entre SAS et le système d'exploitation UNIX. Elle automatise une tâche d'administration critique : la gestion de la propriété et des droits d'accès des données partagées.

Bien que très efficace, l'utilisation de x "chmod ..." nécessite que l'utilisateur SAS possède les droits de propriété (owner) sur les fichiers visés. Pour des environnements très sécurisés, il est recommandé de vérifier le succès de l'opération en capturant le code retour (&sysrc) de la commande système. »