Fév 22 2016

Changer le Propriétaire d’Objets AS400 en Masse

Publié par à 1:42 sous AS400




Méthodes Classiques

Il existe de nombreuses façons de changer le propriétaire d’un object comme CHGOBJOWN pour un simple objet ou WRKOBJOWN puis 9 pour chaque objet si vous voulez traiter tous les objets appartenant à quelqu’un.
Que faire si vous en avez des milliers?
 
Comme de nombreux sites spécialisés le mentionnent,
CHGOWN OBJ(‘/qsys.lib/mylib.lib/*.*’) NEWOWN(new_owner) RVKOLDAUT(*YES)
est un bon moyen de changer le propriétaire de tous les objets d’une bibliothèque.
 
Mais il y a plus puissant si vous n’avez rien contre QSHELL/PASE (lancez QSH ou CALL QP2TERM).
 

QSH/PASE

Vous pouvez vous déplacer dans le répertoire d’une bibliothèque avec cd. Ajoutez toujours .LIB au nom de la bibliothèque

cd /QSYS.LIB/MABIB.LIB

 
Vous pouvez facilement compter le nombre d’objets:

$ ls -1 | wc -l
    6228

 
Affichez le propriétaire de tous les objets avec ls et more pour afficher une page à la fois (peut être lent si vous avez beaucoup d’objets)

$ ls -l | more
total 190672
drwx---rwx    2 proprio    0             28672 Jan  5 10:37 $BUL100.FILE
drwx---rwx    2 proprio    0             20480 Jan  5 10:37 $BUL200.FILE
...

 
Changez le propriétaire de tous les objets avec chown:

chown new_owner *.*

Vous pouvez aussi être plus spécifique avec *.FILE ou MON_*.PRG.
 
Et voici où ca devient vraiment intéressant. Vous pouvez changer tous les objets qui n’ont pas de propriétaire

find . -nouser | xargs chown newowner

A utiliser avec précaution, lisez la suite…
 
Vous pouvez aussi changer tous les objets appartenant à quelqu’un en particulier

find . -user ancienproprio | xargs chown nouveauproprio

Ces commandes peuvent vous faire économiser beaucoup de temps!
 

Quelques Trucs à Savoir

find cherche aussi dans les sous-répertoires.
 
Il se peut que vous ayiez une erreur unknown username:

$ chown lgusername AABL01WC.PGM
chown: lgusername is an unknown username.

Vous devez alors récupérer l’id utilisateur dans le profil AS400 et utiliser ce numero à la place, si le nom d’utilisateur fait plus de 8 caractères:

$ chown 1073 AABL01WC.PGM

Voyez cette note sur le site d’IBM. Il vaut mieux donc n’avoir que des noms d’utilisateurs de 8 caractères ou moins sur iSeries.
 
Sachant le problème de longueur de nom d’utilisateur, la commande « find . -nouser » retourne aussi les fichiers/objets appartenant à des profils faisant 9 ou 10 caractères! Dommage qu’IBM n’aient pas paramétré la longueur maxi des utilisateurs à 10 aussi pour PASE.
 
Un dernier conseil: connectez-vous via SSH pour avoir ainsi un terminal dans une fenêtre plus grande.


No responses yet

Comments RSS

Leave a Reply