ldap-users/sbin/new_user

45 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
LDAP_DIR=/center/etc/ldap
HOME_DIR=/home/$1
CHOME_DIR=/center$HOME_DIR
SECRET_DIR=/center/etc/secrets
SECRET=$SECRET_DIR/ldap.secret
LDIF=$LDAP_DIR/$1.ldif
PASSWD=$LDAP_DIR/$1.passwd
if [ -f $LDIF ]; then
rm $LDIF
fi
if [ -f $PASSWD ]; then
rm $PASSWD
fi
cp $LDAP_DIR/new_user.ldif $LDIF
touch $PASSWD
chmod 700 $PASSWD
slappasswd -g >> $PASSWD
DN="dc=tilde,dc=center"
SLAP=$(slappasswd -T $PASSWD)
TCID=$(($(cat $LDAP_DIR/new_user.ldif | grep uidNumber| cut -d" " -f2) + 1))
SHELL=$(which $2)
sed -i "s#__DN__#$DN#" $LDIF
sed -i "s#__USER__#$1#" $LDIF
sed -i "s#__GROUP__#$1#" $LDIF
sed -i "s#__UID__#$TCID#" $LDIF
sed -i "s#__GID__#$TCID#" $LDIF
sed -i "s#__SHELL__#$SHELL#" $LDIF
sed -i "s#__GECOS__#$1#" $LDIF
sed -i "s#__SLAP__#$SLAP#" $LDIF
ldapadd -x -w $(cat $SECRET) -D "cn=Manager,$DN" -f $LDIF
if [ -d $HOME_DIR ]; then
rm -rf $HOME_DIR
fi
cp -rf /etc/skel $CHOME_DIR
chmod 711 $CHOME_DIR
chown -R $1:$1 $CHOME_DIR
ln -s $CHOME_DIR $HOME_DIR
sed -i "s/uidNumber.*/uidNumber: $TCID/" $LDAP_DIR/new_user.ldif
sed -i "s/gidNumber.*/gidNumber: $TCID/" $LDAP_DIR/new_user.ldif