Fév 22 2016

Changer le Propriétaire d’Objets AS400 en Masse

Publié par à 1:42 sous AS400

Changer le Propriétaire Via le Terminal IBM i

Il existe de nombreuses façons de changer le propriétaire d’un object sur IBM i. Avec CHGOBJOWN pour un simple objet, ou WRKOBJOWN puis 9 pour chaque objet si vous voulez traiter tous les objets appartenant à quelqu’un.
Changer le propriétaire de milliers d’objets de cette façon risque de prendre énormément de temps!
 
Des sites web spécialisés comme itjungle proposent des solutions plus rapides comme:

CHGOWN OBJ('/qsys.lib/ma_lib.lib/*.*') NEWOWN(nouveau_proprio) RVKOLDAUT(*YES)

qui est un bon moyen de changer le propriétaire de tous les objets AS400 d’une bibliothèque donnée.
 
Mais il y a plus puissant si vous n’avez rien contre QSHELL/PASE (lancez QSH ou CALL QP2TERM), ou connectez-vous en SSH.


Commandes Avancées de Propriétaire sur 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 nouveau_proprio *.*

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 nouveau_proprio

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

find . -user ancien_proprio | xargs chown nouveau_proprio

Idéal pour réaffecter les objets des personnes ayant quitté la société avant de supprimer leur compte!


Longueur du Nom d’Utilisateur AS400 et Autres

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