[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Netjes opruimen van LDAP users



Op 22-03-12 10:39, Paul van der Vlis schreef:
> Op 21-03-12 23:24, Heiko Noordhof schreef:
>> On 03/21/2012 08:35 PM, Paul van der Vlis wrote:
>>> Hallo,
>>>
>>> Het blijkt dat als je een LDAP user opruimd, zijn/haar lidmaatschappen
>>> aan groepen gewoon blijven bestaan. Tenminste, zoals ik dat doe.
>>>
>>> Mocht je dan dezelfde username later nogmaals gaan gebruiken, dan is
>>> diegene opeens lid van de groepen van de vorige user.
>>> Niet de bedoeling.
>>>
>>> Weten jullie een handige manier om alle lidmaatschappen van een user op
>>> te ruimen?
>>
>> Hallo,
>>
>> Zoiets kan "met de hand" zo:
>>
>> # Als root uiteraard
>> bash# groups piet
>> piet : piet
>>
>> bash# adduser piet adm
>> bash# adduser piet dialout
>>
>> bash# groups piet
>> piet : piet adm dialout
> 
> Oh, dat is een leuk commando met een nette output.
> Ik gebruik normaal "id".
> 
>> bash# deluser piet adm
>> bash# groups piet
>> piet : piet dialout
>>
>> Om een account uit alle groepen te halen (behalve de primary group):
>>
>> bash# id piet
>> uid=1004(piet) gid=1005(piet)
>> groups=4(adm),20(dialout),24(cdrom),128(openldap),1005(piet)
>>
>> bash# for GRP in $(id -nG piet | sed 's/[^ ]* //') ; do deluser piet
>> $GRP ; done
>> Removing user `piet' from group `adm' ...
>> Done.
>> Removing user `piet' from group `dialout' ...
>> Done.
>> Removing user `piet' from group `cdrom' ...
>> Done.
>> Removing user `piet' from group `openldap' ...
>> Done.
> 
> Ah, toch met "id"...  Bedankt.

Ik gebruik nu onderstaande. Maar ik hoorde dat er ook een plugin (of
zoiets) voor slapd zou zijn die dit ook kan.

Groet,
Paul.


# remove membership of groups:
for GRP in $(id -nG $user | sed 's/[^ ]* //'); do
  TMPLDIF=$(tempfile)
  echo -n "" >$TMPLDIF
  echo "dn: cn=$GRP,ou=groups,$ldaproot" >>$TMPLDIF
  echo "changetype: modify" >>$TMPLDIF
  echo "delete: memberUid" >>$TMPLDIF
  echo "memberUid: $user" >>$TMPLDIF
  ldapmodify -xD "cn=admin,$ldaproot" -w "$ldappw" -f $TMPLDIF
  rm $TMPLDIF
done




-- 
Paul van der Vlis Linux systeembeheer, Groningen
http://www.vandervlis.nl


Reply to: