[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 #!/bin/bash 2 # Auteur: Olivier Lacroix 3 # 4 ## $Id: unattended_generate.sh 3655 2009-04-05 21:39:16Z olikin $ ## 5 # 6 ##### script generant les fichiers et modifications necessaires au fonctionnement automatise d'unattended ##### 7 # 8 # 9 10 # FAIT : 11 # 1. genere unattend.csv 12 # - en partant de os.txt (et non de mysql) 13 # - en utilisant les fichiers computer.txt si presents pour une configuration de windows personnalisee 14 # 2. verifie la configuration du dhcp pour voir si tout est correct (compte unattend ldap <-> dhcp.conf ) et corrige si besoin 15 16 # A FAIRE : 17 # possibilite de personnaliser l'os par type de poste (creer les pages php et aller chercher chercher le productkey dans mysql) 18 19 20 #### A DECOMMENTER PLUS TARD ###### 21 #if [ "$(dpkg -l | grep se3-unattend)" == "" ]; then 22 # on teste la presence du paquet unattend pour se3 23 # echo "Le paquet se3-unattend n est pas installe : dans le menu module, ajouter le." 24 # exit 0 25 #fi 26 27 28 function usage { 29 echo "Configure le compte unattend dans l'annuaire LDAP en fonction des parametres DHCP." 30 echo "Genere un fichier unattend.csv en fonction des données de l'annuaire et des fichiers présents dans site." 31 echo 32 echo "Usage : Aucune option pour une execution complete." 33 echo " -u update unattend.csv uniquement (pour ne pas ralentir l'interface SE3)" 34 exit $1; 35 } 36 37 while getopts "uh-:" cmd 38 do 39 case $cmd in 40 u) UNATTENDCSVUPDATE=1 ;; 41 h) usage 0 ;; 42 ?) echo "Mauvaise option." 43 usage 1 ;; 44 esac 45 done 46 47 48 LOCKFILE=/tmp/unattendgenerate 49 # securite pour eviter plusieurs exec simultanees 50 if [ -e $LOCKFILE ]; 51 then 52 echo "Script deja en cours d execution" 53 exit 1 54 fi 55 ######## A DECOMMENTER PLUS TARD ######## 56 echo "en cours" > $LOCKFILE 57 58 #initialisation des variables # 59 # Recuperation des parametres mysql 60 61 . /usr/share/se3/includes/config.inc.sh -d -m -c -l -s 62 63 # Recuperation des params LDAP 64 BASEDN="$ldap_base_dn" 65 ADMINRDN="$adminRdn" 66 ADMINPW="$adminPw" 67 COMPUTERDN="$computersRdn" 68 PARCDN="$parcsRdn" 69 SMBVERSION="$smbversion" 70 if [ ! "$SMBVERSION" = "samba3" ]; then 71 echo "Version de samba incorrecte." 72 rm -f $LOCKFILE 73 exit 1 74 fi 75 76 DATE="`date +%F`" 77 DOMAINSE3="$se3_domain" 78 NETBIOSSE3="$netbios_name" 79 80 # FAIT PAR se3-domain 81 #echo -e "set SE3IP=$se3ip\r 82 #set urlse3=$urlse3\r" > /home/netlogon/domscripts/se3ip.bat 83 84 ##### valeurs finales ########## 85 #export REPOS=/var/se3/unattended/install/os 86 export REPSITE=/var/se3/unattended/install/site 87 ##### valeurs pour tests ####### 88 export REPOS=/root 89 #REPSITE=/root 90 UNATTENDTXT=unattend.txt 91 92 ##### variables a stocker dans mysql ######## 93 if [ -e /var/se3/unattended/install/os/xp.txt ] ; then 94 PRODUCTKEY="`cat /var/se3/unattended/install/os/xp.txt | grep "^PRODUCTKEY=" | cut -d= -f2 | sed 's/\r//g' | sed 's/ //g' | sed 's/:/-/g'`" 95 NOMOS="`cat /var/se3/unattended/install/os/xp.txt | grep "^OSNAME=" | cut -d= -f2 | sed 's/\r//g' `" 96 else 97 NOMOS="Windows XP Professionnel" 98 PRODUCTKEY="*****-*****-*****-*****-*****" 99 fi 100 ##### A gerer dans l'interface: personnalisation de l'os par type de poste 101 102 UNATTENDCSV=$REPSITE/unattend.csv 103 export REPDRIVERS=/var/se3/unattended/install/drivers 104 mkdir -p $REPSITE 105 mkdir -p /var/se3/unattended/install/os 106 rm -f $UNATTENDCSV 107 cp /home/netlogon/domscripts/unattend.csv $UNATTENDCSV 108 #mkdir -p $REPDRIVERS 109 #chown -R adminse3 $REPDRIVERS 110 111 112 113 ########## verification du compte unattend et de la conf dhcp correspondante ############ 114 115 if [ "$UNATTENDCSVUPDATE" != "1" ]; then 116 # on vérifie si la conf dhcp est correcte pour unattended et si l'utilisateur unattend est correctement parametre dans LDAP 117 UNATTLOGIN="$dhcp_unatt_login" 118 UNATTPASS="$dhcp_unatt_pass" 119 120 echo "Mise en conformite du compte unattend dans l'annuaire et la configuration DHCP" 121 122 if [ ! "$UNATTLOGIN" == "unattend" -o "$UNATTLOGIN" == "" ] ; then 123 MODIFDHCP=1 124 echo "Mise a jour de dhcp_unatt_login en unattend dans la table DHCP" 125 echo "UPDATE params SET value='unattend' WHERE name='dhcp_unatt_login'" | mysql -h $dbhost $dbname -u $dbuser -p$dbpass -N 126 fi 127 128 # si dhcp_unatt_pass absent de la table DHCP, on le cree aleatoirement 129 if [ "$UNATTPASS" == "" ] ; then 130 MODIFDHCP=1 131 UNATTPASS="$(makepasswd --chars=8)" 132 echo "Le dhcp_unatt_pass est vide dans la table params (DHCP) : generation d'un mot de passe aleatoire." 133 echo "UPDATE params SET value='$UNATTPASS' WHERE name='dhcp_unatt_pass'" | mysql -h $dbhost $dbname -u $dbuser -p$dbpass -N 134 fi 135 136 # Verification de la presence d'unattend dans l'annuaire 137 UNATTENDLDAP=`ldapsearch -x -b ou=People,$BASEDN uid | grep "^uid: " | cut -d" " -f2 | grep "^unattend$"` 138 #echo "Retour LDAP : $UNATTENDLDAP" 139 if [ "$UNATTENDLDAP" == "" ]; then 140 #echo "Le compte unattend est absent, on le cree" 141 UIDPOLICY="$uidPolicy" 142 echo "UPDATE params SET value='4' WHERE name='uidPolicy'" | mysql -h $dbhost $dbname -u $dbuser -p$dbpass 143 /usr/share/se3/sbin/userAdd.pl Dom Unatten $UNATTPASS 19790921 M Administratifs 144 echo "UPDATE params SET value=\"$UIDPOLICY\" WHERE name='uidPolicy'" | mysql -h $dbhost $dbname -u $dbuser -p$dbpass 145 [ -e /var/se3/unattended/install/packages ] && ( 146 setfacl -R -m u:unattend:rx /var/se3/unattended/install/packages 147 setfacl -R -m d:u:unattend:rx /var/se3/unattended/install/packages 148 setfacl -R -m u:www-se3:rx /var/se3/unattended/install/packages 149 setfacl -R -m d:u:www-se3:rx /var/se3/unattended/install/packages 150 ) 151 else 152 #echo "Unattend est present dans l'annuaire" 153 # si le mot de passe est present dans l'interface dhcp, on l'impose a unattend 154 # sinon, on impose un mot de passe aleatoire des deux cotes. 155 #echo "On impose à unattend le mdp present dans la table params." 156 /usr/share/se3/sbin/userChangePwd.pl unattend $UNATTPASS 157 fi 158 . /usr/share/se3/includes/config.inc.sh -svmf 159 # on regenere la conf DHCP si il y a eu une modif 160 [ "$MODIFDHCP" == "1" ] && [ -e /usr/share/se3/scripts/makedhcpdconf ] && /usr/share/se3/scripts/makedhcpdconf 161 fi 162 163 ##################### creation de unattend.csv ################################# 164 touch /tmp/csvtodo 165 /usr/share/se3/sbin/update-csv.sh 166 # Envoi de l'e-mail rapport 167 if [ -e /tmp/emailunattended_generate ] ; then 168 cat /tmp/emailunattended_generate 169 mail root -s"[Annuaire du SE3 a nettoyer] ERREUR" < /tmp/emailunattended_generate 170 rm /tmp/emailunattended_generate 171 fi 172 [ -e $LOCKFILE ] && rm $LOCKFILE 173 exit 0 174 175
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |