Ago 23 2021
Cambio masivo de propietario de objetos AS400
Cambiar propietario a través de IBM i Terminal
Hay muchas formas de cambiar el propietario de un objeto en IBM i. Con CHGOBJOWN para un solo objeto, o WRKOBJOWN luego 9 para cada objeto si desea procesar todos los objetos que pertenecen a alguien. ¡Cambiar el propietario de miles de objetos de esta manera puede llevar mucho tiempo!
Los sitios web especializados como itjungle ofrecen soluciones más rápidas como:
CHGOWN OBJ('/qsys.lib/ma_lib.lib/*.*') NEWOWN(nuevo_propietario) RVKOLDAUT(*YES)
que es una buena manera de cambiar el propietario de todos los objetos AS400 de una biblioteca determinada.
Pero no es más potente si no tiene nada en contra de QSHELL / PASE (QSH de lanzamiento o QP2TERM LLAMADA), o se conecte en SSH.
Órdenes de Propietario Avanzados en QSH / PASE
Puede moverse a un directorio de biblioteca con cd. Siempre agregue .LIB al nombre de la biblioteca
cd /QSYS.LIB/MILIB.LIB
Puede contar fácilmente el número de objetos:
$ ls -1 | wc -l
6228
Muestre el propietario de todos los objetos con ls y more para mostrar una página a la vez (puede ser lento si tiene muchos objetos)
$ 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
[...]
Cambie el propietario de todos los objetos con chown:
chown nuevo_propietario *.*
También puede ser más específico con * .FILE o MY_*. PRG.
Y aquí es donde se pone realmente interesante. Puedes cambiar todos los objetos que no tienen dueño
find . -nouser | xargs chown nuevo_propietario
Úselo con precaución, siga leyendo …
También puede cambiar todos los objetos que pertenecen a una persona específica
find . -user antiguo_propietario | xargs chown nuevo_propietario
¡Ideal para reasignar los objetos de personas que dejaron la empresa antes de borrar su cuenta!
Longitud del Nombre de Usuario AS400 y Otros
find también busca en subdirectorios.
Es posible que tenga un error de nombre de usuario desconocido:
$ chown lgusername AABL01WC.PGM
chown: lgusername is an unknown username.
A continuación, debe recuperar el ID de usuario del perfil AS400 y utilizar este número en su lugar, si el nombre de usuario tiene más de 8 caracteres:
$ chown 1073 AABL01WC.PGM
Consulte esta nota en el sitio de IBM. Por tanto, es mejor tener sólo nombres de usuario de 8 caracteres o menos en iSeries.
Conociendo el problema de la longitud del nombre de usuario, el comando «find. -nouser» también devuelve archivos / objetos que pertenecen a perfiles de 9 o 10 caracteres. Lástima que IBM no estableció la longitud máxima de usuario en 10 también para PASE.
Un último consejo: conéctese a través de SSH para tener un terminal en una ventana más grande.