1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #!/bin/sh
- # $Header: /var/cvs/uClibc/extra/scripts/getent,v 1.2 2005/02/02 14:18:01 solar Exp $
- search_entry() {
- if [ -e "$1" ] ; then
- /bin/egrep -v "^#" $1 | /bin/sed 's/#.*$//' | /bin/egrep "${string}" | /bin/sed -n 1p
- retval=$?
- [ "$retval" = 0 ] || retval=2
- else
- retval=2
- fi
- }
- file="/etc/$1"
- string="dummy"
- #aliases|ethers|group|hosts|netgroup|networks|passwd|protocols|rpc|services|shadow)
- # dns based search is not supported for hosts|networks
- # ethers|netgroup (not done, needed)?
- # it returns only the first match
- case $1 in
- passwd)
- string="(^\<$2\>:|^.*:.*:\<$2\>:.*:.*:.*:.*)"
- ;;
- group)
- string="(^|:)\<$2\>:"
- ;;
- shadow)
- string="^\<$2\>:"
- ;;
- aliases)
- if [ -f /etc/postfix/aliases ] ; then
- file="/etc/postfix/aliases"
- elif [ -f /etc/mail/aliases ] ; then
- file="/etc/mail/aliases"
- fi
- string="^\<$2\>:"
- ;;
- networks)
- string="^\<$2\>"
- ;;
- hosts|protocols|rpc|services)
- string="\<$2\>"
- ;;
- *)
- echo "Unknown database: $1"
- exit 1
- ;;
- esac
- search_entry $file $2
- exit $retval
|