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

Re: Netjes opruimen van LDAP users



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.

Maar het lijkt alsof "deluser" problemen heeft met ldap-groepen:
--------
xen6:/usr/local/sbin# id piet55
uid=2031(piet55) gid=2031(piet55) groups=2031(piet55),3001(testje25)
xen6:/usr/local/sbin#  for GRP in $(id -nG piet55 | sed 's/[^ ]* //') ;
do deluser piet55 $GRP ; done
Removing user `piet55' from group `testje25' ...
gpasswd: group 'testje25' does not exist in /etc/group
/usr/sbin/deluser: `/usr/bin/gpasswd -M  testje25' returned error code
3. Exiting.
--------

Maar ik heb wel een alternatief voor deluser, dus ik kan er wel iets van
maken:
--------
TMPLDIF=$(tempfile)
echo -n "" >$TMPLDIF
echo "dn: cn=$group,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
--------

Groet,
Paul.




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


Reply to: