Mounji Posté(e) le 2 juin 2008 Partager Posté(e) le 2 juin 2008 Bonjour a vous, Je cherche a realiser un script me permettant de supprimer les utilisateurs d'un groupe. Je sais qu'il faudrait lister tous les utilisateurs du groupe (grep /etc/group?). Les compter (-wc) Et les supprimer (deluser) Cependant je n'arrive pas à mettre ces 3 parties ensemble.... J'ai donc besoin d'une aide Merci @bientot Lien vers le commentaire Partager sur d’autres sites More sharing options...
Compte_supprime_74291 Posté(e) le 2 juin 2008 Partager Posté(e) le 2 juin 2008 Il y a sûrement plus élégant, mais en faisant à-la-rache (et en adaptant à ton cas là où j'ai mis des commentaires) : #!/bin/bash GROUP_NAME=floppy # Remplace par le nom du groupe qui t'intéresse USERS_LIST=`cat /etc/group|grep "$GROUP_NAME:"|cut -d: -f4` if [ -n $USERS_LIST ] then COMPTEUR=$((`echo $USERS_LIST|tr -cd ,|wc -c`+1)) if (($COMPTEUR>1)) then for ((i=1;i<=$COMPTEUR;i+=1)) do USER_TO_DEL=`echo $USERS_LIST|cut -d, -f$i` echo $USER_TO_DEL # Remplace par l'instruction qui efface l'utilisateur done else USER_TO_DEL=$USERS_LIST echo $USER_TO_DEL # Remplace par l'instruction qui efface l'utilisateur fi fi Edit 1 : en y pensant, en fait, ça ne marchera que s'il y a plus d'un utilisateur dans le groupe (je compte les virgules)... Edit 2 : adapté pour marcher, même s'il n'y a qu'un utilisateur dans le groupe Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 2 juin 2008 Partager Posté(e) le 2 juin 2008 Pourquoi pas groupdel tongoupe # supprime ton groupe et donc toutes la associations avec les utilisateurs groupadd tongroupe Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sandeman Posté(e) le 2 juin 2008 Partager Posté(e) le 2 juin 2008 Juste en passant, l'étape de comptage n'est pas indispensable, sauf si elle t'est imposée par l'énoncé (sinon, ça se comprend que tu la pense utile, en te référant à tes habitudes de dev) GROUP=scanner LIST=`grep $GROUP /etc/group | cut -d":" -f4 | tr "," " "` for USER in $LIST; do echo userdel $USER done Lien vers le commentaire Partager sur d’autres sites More sharing options...
Compte_supprime_74291 Posté(e) le 2 juin 2008 Partager Posté(e) le 2 juin 2008 Sinon, au coup par coup, encore bien plus simple, avec sed : #!/bin/bash GROUP_NAME=floppy # Remplace par le nom du groupe qui t'intéresse USERS_LIST=`cat /etc/group|grep "$GROUP_NAME:"|cut -d: -f4|sed -e 's/,/ /g'` for USER_TO_DEL in $USERS_LIST do echo $USER_TO_DEL # Remplace par l'instruction qui efface l'utilisateur done Edit : Arf, grilled sur le principe... j'ai bêtement fait avec le comptage, vu qu'on parlait de wc (enfin, ça fait une version avec sed)... Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 2 juin 2008 Partager Posté(e) le 2 juin 2008 Heu... Il faut supprimer du système les utilisateurs qui ont la propriété d'appartenir à un groupe ou juste supprimer leur appartenance à un groupe ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
djuke Posté(e) le 2 juin 2008 Partager Posté(e) le 2 juin 2008 Attention, quand il s'agit du groupe principal de l'utilisateur, celui-ci n'apparait pas dans forcément le /etc/group, il faut aussi chercher dans le /etc/passwd!! Et je ne parle pas de NIS je propose (non testé): #!/bin/bash group=groupe_a_vider typeset -i i for user in $(cut -d : -f 1 /etc/passwd) do if groups $user | grep -w $group >&- then echo "Deleting user $user" userdel $user i=$i+1 fi done echo "group $group had $i members on this host" EDIT: gestion du nombre de users locaux du groupe. NB: ce script ne gère pas les utilisateurs NIS, mais détecte bien l'appartenance à un groupe NIS Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mounji Posté(e) le 14 juin 2008 Auteur Partager Posté(e) le 14 juin 2008 Bon, désolé pour l'absence, mais les alertes pci n'ont pas marchées...... Donc, merci a tous pour votre aide, j'en ai appris pas mal grâce a vous. Je constate aussi que le bash présente un mode de réfléxion différent en comparaison au langages que j'ai l'habitude de pratiquer? Merci encore @bientot Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.