45 lines
1.1 KiB
Bash
Executable File
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
|