Пример скрипта на BASH. Запрос к серверу LDAP (eDir 8.7 атрибут groupMembership)
Выбирается список групп для первого и второго пользователя, нет проверки на дублирующиеся имена (считаем все имена пользователей уникальны)
Запуск: имя_скрипта имя_1_пользователя имя_2_пользователя
#!/bin/bash
#
# Запросы к LDAP серверу
#
if [ -z $1 ];then
echo
echo $"Usage: $0 имя_пользователя_1 имя_пользователя_2 "
exit 1
fi
if [ -z $2 ];then
echo
echo $"Usage: $0 имя_пользователя_1 имя_пользователя_2 "
exit 1
fi
#ldapsearch -h 192.168.30.5 -x -b o=farm -s sub '(cn=alex)' groupMembership | grep '^groupMembership' | awk '{print($2)}' | sort
ldapsearch -h 192.168.30.5 -x -b o=farm -s sub "(cn=$1)" groupMembership | grep '^groupMembership' | awk '{print($2)}' | sort > user_group_$1
ldapsearch -h 192.168.30.5 -x -b o=farm -s sub "(cn=$2)" groupMembership | grep '^groupMembership' | awk '{print($2)}' | sort > user_group_$2
cat user_group_$1 user_group_$2 | sort | uniq -c | grep '2' | awk '{print($2)}' > tmp_equal
echo "группы членами которых являются $1 и $2 "
cat tmp_equal
echo "Группы членом в которых состоит $2, но не состоит $1"
cat user_group_$2 tmp_equal | sort | uniq -c | grep '1' | awk '{print($2)}'
echo "Группы членом в которых состоит $1, но не состоит $2"
cat user_group_$1 tmp_equal | sort | uniq -c | grep '1' | awk '{print($2)}'
Комментариев нет:
Отправить комментарий