#!/bin/bash # Copyright (C) 2018 Tetras Libre <Contact@Tetras-Libre.fr> # Author: Beniamine, David <David.Beniamine@Tetras-Libre.fr> # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. DIR=`dirname $0` usage(){ echo "Usage $0 users.txt" echo "Reads a list of users and create them" echo "then run $DIR/create_primtux_user.sh on each of them with the apropriate level" } if [ -z "$1" ] then usage exit 1 fi if [ ! -f "$1" ] then echo "$1 is not a file" usage exit 1 fi rm -f uids.txt scriptbinpath="/usr/share/lcs/sbin" . /etc/slis/slis.conf if [ ! -x $scriptbinpath/userAdd.pl ] then echo "Critical error : $scriptbinpath/userAdd.pl does not exist or is not executable" exit 1 fi while read first last level gender categorie do echo "Creating user for $first $last" uid=`ldapsearch -x cn="$first $last" | grep "^uid:" | cut -d ' ' -f 2` if [ -z "$uid" ] then $scriptbinpath/userAdd.pl $first $last "xxx" "" $gender $categorie else echo "Not recreating user $uid" fi uid=`ldapsearch -x cn="$first $last" | grep "^uid:" | cut -d ' ' -f 2` echo "found uid '$uid'" if [ -z "$uid" ] then KO="$KO $uid" echo "Failed to create user for $first $last" continue fi $DIR/create_primtux_user.sh $uid $level # set initial password echo "dn: uid=$uid,ou=People,$LDAP_BASE_DN" > $$.ldiff echo "changetype: modify" >> $$.ldiff echo "replace: userPassword" >> $$.ldiff echo "userPassword: $uid" >> $$.ldiff ldapmodify -x -D "cn=$LDAP_ADMIN_RDN,$LDAP_BASE_DN" -w $LDAP_ADMIN_PW -f $$.ldiff rm $$.ldiff echo -e "$uid\n$uid" | smbpasswd -s -U $uid echo $uid >> uids.txt echo "Done creating $uid" OK="$OK $uid" done < $1 echo "The following users where correctly created" echo -e "\t$OK" if [ ! -z $KO ] then echo "Some errors where encountered while creating the following users :" echo -e "\t$KO" fi