3.5. Migration des entrées de groupes nets de NIS vers IdM
La carte NIS netgroup
contient des informations sur les groupes nets. Utilisez ces données pour migrer les groupes nets NIS vers la gestion des identités (IdM) :
Conditions préalables
- Vous disposez d'un accès root sur le serveur NIS.
- NIS est activé dans IdM.
- Le serveur NIS est enrôlé dans IdM.
Procédure
Installez le paquetage
yp-tools
:[root@nis-server ~]# dnf install yp-tools -y
Créez le script
/root/nis-netgroups.sh
avec le contenu suivant sur le serveur NIS :#!/bin/sh # $1 is the NIS domain, $2 is the primary NIS server ypcat -k -d $1 -h $2 netgroup > /dev/shm/nis-map.netgroup 2>&1 IFS=$'\n' for line in $(cat /dev/shm/nis-map.netgroup); do IFS=' ' netgroupname=$(echo $line | awk '{print $1}') triples=$(echo $line | sed "s/^$netgroupname //") echo "ipa netgroup-add $netgroupname --desc=NIS_NG_$netgroupname" if [ $(echo $line | grep "(," | wc -l) -gt 0 ]; then echo "ipa netgroup-mod $netgroupname --hostcat=all" fi if [ $(echo $line | grep ",," | wc -l) -gt 0 ]; then echo "ipa netgroup-mod $netgroupname --usercat=all" fi for triple in $triples; do triple=$(echo $triple | sed -e 's/-//g' -e 's/(//' -e 's/)//') if [ $(echo $triple | grep ",.*," | wc -l) -gt 0 ]; then hostname=$(echo $triple | cut -f1 -d,) username=$(echo $triple | cut -f2 -d,) domain=$(echo $triple | cut -f3 -d,) hosts=""; users=""; doms=""; [ -n "$hostname" ] && hosts="--hosts=$hostname" [ -n "$username" ] && users="--users=$username" [ -n "$domain" ] && doms="--nisdomain=$domain" echo "ipa netgroup-add-member $netgroup $hosts $users $doms" else netgroup=$triple echo "ipa netgroup-add $netgroup --desc=<NIS_NG>_$netgroup" fi done done
S'authentifier en tant qu'utilisateur de l'IdM
admin
:[root@nis-server ~]# kinit admin
Exécutez le script. Par exemple :
[root@nis-server ~]# sh /root/nis-netgroups.sh nisdomain nis-server.example.com