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: