Useful script to extract LDAP based user posixGroup memberships information

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

 



Assuming you are using posixGroup objectclass and memberUid attribute to
store your membership information, you may find my shell script useful
and handy.

It works on Solaris LDAP Client with "ldapaddent" and "ldaplist"
commands, and works against FDS, SUN DS or OpenLDAP.

#! /bin/sh
#
# get_ldap_memberUids.sh
#
# Gary Tay, 08-Sep-2005, written
#
if [ $# -le 0 ]
then
   echo ""
   echo "Usage:"
   echo "$0 [SHOW_UID_ONLY||SHOW_DN|SHOW_UIDNUMBER|SHOW__NAME"
   echo ""
   echo "Purpose: get a list of memberships for LDAP posixGroups"
   echo "Examples: "
   echo "1) $0 SHOW_UID_ONLY"
   echo "2) $0 SHOW_DN"
   echo "3) $0 SHOW_UIDNUMBER"
   echo "4) $0 SHOW_NAME"
   echo ""
   exit
fi
OPTION=$1
ldapaddent -d group | cut -d: -f1,3 >groups.txt
for i in `cat groups.txt | cut -d: -f2 | sort -n`
do
   GIDN=$i; GNAME=`grep $GIDN groups.txt | cut -d: -f1`
   echo memberUids for Group $GNAME, gidNumber=$GIDN
   ldapaddent -d passwd | sort -n -t: +3 -4 | cut -d: -f1,3,4 >users.txt
   cat users.txt | grep $GIDN | cut -d: -f1 >uids.txt
   case "$OPTION" in
      "SHOW_UID_ONLY") cat uids.txt;;
      "SHOW_DN") for j in `cat uids.txt`
         do
            ldaplist passwd $j
         done;;
      "SHOW_UIDNUMBER") for j in `cat uids.txt`
         do
            UIDN=`ldaplist -l passwd $j | grep -i 'uidNumber:' | cut -d:
-f2`
            echo $j,$UIDN
         done;;
      "SHOW_NAME") for j in `cat uids.txt`
         do
            NAME=`ldaplist -l passwd $j | grep -i 'cn:' | cut -d: -f2`
            echo $j,$NAME
         done;;
      *) echo "$1 is an invalid option."; exit 1
   esac
   echo ""
done

Hope this helps.

Gary




[Index of Archives]     [Fedora User Discussion]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [Fedora News]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Maintainers]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [Fedora Fonts]     [ATA RAID]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora QA]     [Fedora Triage]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Tux]     [Yosemite News]     [Yosemite Photos]     [Linux Apps]     [Maemo Users]     [Gnome Users]     [KDE Users]     [Fedora Tools]     [Fedora Art]     [Fedora Docs]     [Maemo Users]     [Asterisk PBX]     [Fedora Sparc]     [Fedora Universal Network Connector]     [Fedora ARM]

  Powered by Linux