/skrypty/ldap/ldap_change_password.sh
#!/bin/bash

user=`echo $1`
haslo=`echo $2`

if [ -z $1 ] || [ -z $2 ]; then
echo "error!"
echo '$1 - username, $2 - password'
exit
else

ldappasswd -s "$haslo" -w $ldappassroot -D "cn=Manager,dc=example,dc=com" -x "uid=$user,ou=People,dc=example,dc=com"
fi


/skrypty/ldap/ldap_check_if_user_exists.sh
#!/bin/bash

a=`echo $1`
z=`ldapsearch -x -h ldap.example.com -b "dc=example,dc=com" uid=$a | grep 'numEntries: 1' | wc -l`
if [ $z = 0 ]; then
echo "user nie istnieje"
else
echo "user istnieje"
fi


/skrypty/ldap/ldap_get_next_free_uid.sh
#!/bin/bash

z=$((`ldapsearch -x -h ldap.example.com -b "dc=example,dc=com" |grep uidNumber | sort | tail -1 | awk '{print $2}'`)); z=$(($z+1)); echo $z


/skrypty/ldap/ldap_give_ldap_structure.sh
#!/bin/bash

ldapsearch -x -H ldap://ldap.example.com -b "dc=example,dc=com" | grep ", example"


/skrypty/ldap/ldap_group_add.sh
#!/bin/bash

if [ -z $1 ] || [ -z $2 ]; then
echo "error!"
echo '$1 - group, $2 - gid'
exit
else

echo "" > ldapaddgrouptemp.ldif
echo "dn: cn=$1,ou=Group,dc=example,dc=com" >> ldapaddgrouptemp.ldif
echo "objectClass: top" >> ldapaddgrouptemp.ldif
echo "objectClass: posixGroup" >> ldapaddgrouptemp.ldif
echo "gidNumber: $2" >> ldapaddgrouptemp.ldif


ldapadd -x -w $ldappassroot -D "cn=Manager,dc=example,dc=com" -f ldapaddgrouptemp.ldif

rm -f ldapaddgrouptemp.ldif
fi


/skrypty/ldap/ldap_group_attrs.sh
#!/bin/bash

ldapsearch -x -H ldap://ldap.example.com -b "cn=$1,ou=Group,dc=example,dc=com"


/skrypty/ldap/ldap_group_delete.sh
#!/bin/bash

if [ -z $1 ] ; then
echo "error!"
echo '$1 - group'
exit
else


ldapdelete -w $ldappassroot -D "cn=Manager,dc=example,dc=com" "cn=$1,ou=Group,dc=example,dc=com"
fi


/skrypty/ldap/ldap_group_list.sh
#!/bin/bash

ldapsearch -x -H ldap://ldap.example.com -b "ou=Group,dc=example,dc=com" * | grep -v "^#" | grep dn


/skrypty/ldap/ldap_modify_user_attr.sh
#!/bin/bash

if [ -z $1 ]; then
echo '$1 cn; $2 add|modify|delete; $3 attr; $4 value'
exit

else
echo "" > temp_modify_attr.ldif

echo `ldapsearch -x -H ldap://ldap.example.com -b "dc=example,dc=com" cn=$1 | awk -v RS='' "/$1/" | grep -v "^#" | grep example | grep dn` >> temp_modify_attr.ldif
echo changetype: modify >> temp_modify_attr.ldif

case "$2" in
"add") echo "add: $3" >> temp_modify_attr.ldif ;
echo "$3: $4" >> temp_modify_attr.ldif ;;
"modify") echo "replace: $3" >> temp_modify_attr.ldif ;
echo "$3: $4" >> temp_modify_attr.ldif ;;
"delete") echo "delete: $3" >> temp_modify_attr.ldif ;
echo "$3: $4" >> temp_modify_attr.ldif ;;
esac

fi


ldapadd -x -D "cn=Manager,dc=example,dc=com" -w $ldappassroot -f temp_modify_attr.ldif
if [ $2 = "add" ] || [ $2 = "modify" ] ; then
echo "attribute set"
ldapsearch -x -H ldap://ldap.example.com -b "dc=example,dc=com" cn=$1 | egrep "^cn|$3"
else

echo "attribute deleted or not present"
fi


/skrypty/ldap/ldap_user_add.sh
#!/bin/bash

if [ -z $1 ] || [ -z $2 ] || [ -z $3 ]; then
echo "error!"
echo '$1 - username, $2 - uid, $3 - haslo'
exit
else

echo "" > temp_useradd.ldif


echo "dn: uid=$1,ou=People,dc=example,dc=com" >> temp_useradd.ldif
echo "objectClass: inetOrgPerson" >> temp_useradd.ldif
echo "objectClass: posixAccount" >> temp_useradd.ldif
echo "objectClass: shadowAccount" >> temp_useradd.ldif
echo "cn: $1" >> temp_useradd.ldif
echo "sn: $1" >> temp_useradd.ldif
echo "userPassword: `slappasswd -h {SHA} -s $3`" >> temp_useradd.ldif
echo "loginShell: /bin/bash" >> temp_useradd.ldif
echo "uidNumber: $2" >> temp_useradd.ldif
echo "gidNumber: $2" >> temp_useradd.ldif
echo "homeDirectory: /home/$1" >> temp_useradd.ldif
echo "" >> temp_useradd.ldif
echo "dn: cn=$1,ou=Group,dc=example,dc=com" >> temp_useradd.ldif
echo "objectClass: posixGroup" >> temp_useradd.ldif
echo "cn: $1" >> temp_useradd.ldif
echo "gidNumber: $2" >> temp_useradd.ldif
echo "memberUid: $1" >> temp_useradd.ldif

ldapadd -x -D "cn=Manager,dc=example,dc=com" -w $ldappassroot -f temp_useradd.ldif
if [ $? -eq "0" ]; then
echo "hurra"
else
echo "error!"
fi
fi

rm -r temp_useradd.ldif


/skrypty/ldap/ldap_user_attrs.sh
#!/bin/bash

ldapsearch -x -H ldap://ldap.example.com -b "dc=example,dc=com" cn=$1 | awk -v RS='' "/$1/" | grep -v "^#"


/skrypty/ldap/ldap_user_delete.sh
#!/bin/bash

if [ -z $1 ] ; then
echo "error!"
echo '$1 - username'
exit
else


ldapdelete -w $ldappassroot -D "cn=Manager,dc=example,dc=com" "uid=$1,ou=People,dc=example,dc=com"
fi


/skrypty/ldap/ldap_user_list.sh
#!/bin/bash

ldapsearch -x -H ldap://ldap.example.com -b "dc=example,dc=com" uid=* | egrep "uid|gid" | grep -v "^#"


/skrypty/ldap/ldap_user_to_group.sh
#!/bin/bash

if [ -z $1 ] || [ -z $2 ] ; then
echo "error!"
echo '$1 - username, $2 - group'
exit
else


echo "" > tempuseraddtogroup.ldif
echo "dn: cn=$2,ou=Group,dc=example,dc=com" >> tempuseraddtogroup.ldif
echo "changetype: modify" >> tempuseraddtogroup.ldif
echo "add: memberuid" >> tempuseraddtogroup.ldif
echo "memberuid: $1" >> tempuseraddtogroup.ldif

ldapmodify -x -W -D "cn=Manager,dc=example,dc=com" -f tempuseraddtogroup.ldif

rm -f tempuseraddtogroup.ldif