[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 #!/bin/bash 2 3 # ********************************************************** 4 # Installation de SambaEdu3 5 # Auteur: Olivier LECLUSE 6 # Ce script est diftribué selon les termes de la licence GPL 7 # ********************************************************** 8 9 # Adaptation pour lenny keyser - Mars 2010 10 # Activation mode debug 11 # Ajout test carte rezo != eth0 12 # modif PHPINI="/etc/php5/apache2/php.ini" 13 # modif conf ldap pour utiliser script mkSlapdCfonf.sh 14 # LDAPGRP="root" averifier 15 # modif mrtg 16 # modif $INITDAPACHE 17 18 #$Id: install_se3_.sh 3911 2009-05-15 07:28:41Z gnumdk $ 19 20 # todo 21 # déplacer la section clamav dans le postinst se3-clamav 22 23 #mode debug 24 #touch /root/debug 25 if [ -e /root/debug ]; then 26 set -x 27 fi 28 # cp -f /etc/sudoers.se3 /etc/sudoers 29 30 31 #Init annuaire et mise en place DB_CONFIG de se3 32 /etc/init.d/slapd stop 33 cp -a /var/lib/ldap/DB_CONFIG /root/DB_CONFIG_squeeze.ori 34 rm -rf /var/lib/ldap/* 35 cp /var/cache/se3_install/conf/DB_CONFIG /var/lib/ldap/ 36 chown openldap:openldap /var/lib/ldap/* 37 38 #Couleurs 39 COLTITRE="\033[1;35m" # Rose 40 COLPARTIE="\033[1;34m" # Bleu 41 42 COLTXT="\033[0;37m" # Gris 43 COLCHOIX="\033[1;33m" # Jaune 44 COLDEFAUT="\033[0;33m" # Brun-jaune 45 COLSAISIE="\033[1;32m" # Vert 46 47 COLCMD="\033[1;37m" # Blanc 48 49 COLERREUR="\033[1;31m" # Rouge 50 COLINFO="\033[0;36m" # Cyan 51 52 clear 53 echo -e "$COLTITRE" 54 echo "*************************" 55 echo "* SCRIPT D'INSTALLATION *" 56 echo "* DE SAMBAEDU3 *" 57 echo "*************************" 58 59 # Il ne faut pas poursuivre l'installation si aucune carte réseau n'a été détectée: 60 # Dans ce cas, un "ifconfig eth0" renvoie: 61 # eth0: error fetching interface information: Device not found 62 # Détection de la configuration ip sur la 1ere carte réseau 63 64 echo -e "$COLCMD\c " 65 ECARD=$(/sbin/ifconfig | grep eth | sort | head -n 1 | cut -d " " -f 1) 66 if [ -z "$ECARD" ]; then 67 ECARD=$(/sbin/ifconfig -a | grep eth | sort | head -n 1 | cut -d " " -f 1) 68 69 if [ -z "$ECARD" ]; then 70 echo -e "$COLERREUR" 71 echo "Aucune carte réseau n'a été détectée." 72 echo "Il n'est pas souhaitable de poursuivre l'installation." 73 echo -e "$COLTXT" 74 echo -e "Voulez-vous ne pas tenir compte de cet avertissement (${COLCHOIX}1${COLTXT})," 75 echo -e "ou préférez-vous interrompre le script d'installation (${COLCHOIX}2${COLTXT})" 76 echo -e "et corriger le problème avant de relancer ce script?" 77 REPONSE="" 78 while [ "$REPONSE" != "1" -a "$REPONSE" != "2" ] 79 do 80 echo -e "${COLTXT}Votre choix: [${COLDEFAUT}2${COLTXT}] ${COLSAISIE}\c " 81 read REPONSE 82 83 if [ -z "$REPONSE" ]; then 84 REPONSE=2 85 fi 86 done 87 if [ "$REPONSE" = "2" ]; then 88 echo -e "$COLINFO" 89 echo "Pour résoudre ce problème, chargez le pilote approprié." 90 echo "ou alors complétez le fichier /etc/modules.conf avec une ligne du type:" 91 echo " alias eth0 <nom_du_module>" 92 echo -e "Il conviendra ensuite de rebooter pour prendre en compte le changement\nou de charger le module pour cette 'session' par 'modprobe <nom_du_module>" 93 echo -e "Vous pourrez relancer ce script via la commande:\n /var/cache/se3_install/install_se3.sh" 94 echo -e "$COLTXT" 95 exit 1 96 fi 97 else 98 cp /etc/network/interfaces /etc/network/interfaces.orig 99 sed -i "s/eth[0-9]/$ECARD/" /etc/network/interfaces 100 ifup $ECARD 101 fi 102 103 fi 104 IPADDR=$(/sbin/ifconfig $ECARD | grep inet |cut -d : -f 2 |cut -d \ -f 1| head -n 1) 105 # 106 # Détection de la distribution 107 # 108 109 #clear 110 echo -e "$COLTXT" 111 echo "Détection de la distribution:" 112 113 if [ -e /etc/debian_version ]; then 114 echo -e "$COLINFO\c " 115 echo "Debian détectée, félicitation ;-)" 116 echo -e "$COLCMD\c " 117 DISTRIB="DEB" 118 WWWPATH="/var/www" 119 if [ ! -d /usr/lib/cgi-binse ]; then 120 mkdir /usr/lib/cgi-binse 121 fi 122 CGIPATH="/usr/lib/cgi-binse" 123 APACHE="www-se3" 124 LDAPGRP="root" 125 SMBCONF="/etc/samba/smb.conf" 126 APACHECONF="/etc/apache/httpdse.conf" 127 SLAPDIR="ldap" 128 SCHEMADIR="\/etc\/ldap\/schema" 129 SLAPDCONF="/etc/$SLAPDIR/slapd.conf" 130 PAMLDAPCONF="/etc/pam_ldap.conf" 131 NSSLDAPCONF="/etc/libnss-ldap.conf" 132 LDAPSECRET="/etc/ldap.secret" 133 NSSWITCH="/etc/nsswitch.conf" 134 INITDSAMBA="/etc/init.d/samba" 135 SMBCONFIN="smb_3.conf.in" 136 INITDAPACHE="/etc/init.d/apache2se" 137 INITDSLAPD="/etc/init.d/slapd" 138 INITDNSCD="" 139 PHPINI="/etc/php5/apache2/php.ini" 140 MRTGCFG="/etc/mrtg.cfg" 141 else 142 echo -e "$COLERREUR" 143 echo "Distribution non supportée." 144 echo -e "$COLTXT" 145 exit 1 146 fi 147 148 DEBVER=`cat /etc/debian_version` 149 echo -e "$COLINFO\c " 150 case $DEBVER in 151 5.0*) 152 echo "Debian lenny detectee." 153 ;; 154 6.0*) 155 echo "Debian squeeze detectee." 156 ;; 157 7.*) 158 echo "Debian wheezy detectee." 159 ;; 160 *) 161 echo "Version Debian inconnue" 162 ;; 163 esac 164 #if [ "$DEBVER" = "5.0.4" ]; then 165 # echo "Debian lenny détectée." 166 #fi 167 168 169 ################# Detection de la disquette de conf auto ############ 170 171 if [ -e /etc/se3/setup_se3.data ]; then 172 echo -e "${COLTXT}Un script de configuration automatique a été détecté .... ;) " 173 chmod 700 /etc/se3/setup_se3.data 174 . /etc/se3/setup_se3.data # le "." permet d'inclure le script et ses variables 175 # correction pass mysql 176 MYSQLPW=$(echo "$MYSQLPW" | sed -e 's/\-//g' | sed -e s'/\$//g' | sed -e 's/\#//g'| sed -e 's/\~//g'| sed -e 's/\&//g') 177 else 178 [ ! -d /etc/se3 ] && mkdir /etc/se3 179 fi 180 181 # // il n'y a pas de depots volatile sous squeeze // 182 ## correction sources.list si besoin pour se3-clamav 183 #[ -z "$(cat /etc/apt/sources.list| grep "clamav derniere version")" ] && echo "# entree pour clamav derniere version 184 #deb http://ftp2.de.debian.org/debian-volatile lenny/volatile main" >> /etc/apt/sources.list 185 186 # 187 # Mise en place de l'interface web 188 # 189 if [ "$IFACEWEB_AUTOCONF" = "yes" ]; then 190 rep="y" 191 echo -e "$COLPARTIE" 192 echo "Section 1: " 193 echo "---------- " 194 echo -e "$COLTXT" 195 echo "Installation Automatique de l'interface web ....." 196 else 197 echo -e "$COLPARTIE" 198 echo "Section 1: " 199 echo "---------- " 200 201 echo -e "${COLTXT}Voulez-vous installer l'interface web ? (${COLDEFAUT}O/n${COLTXT}) $COLSAISIE\c " 202 read rep 203 fi 204 if [ ! "$rep" = "n" ]; then 205 echo -e "$COLTXT" 206 echo "Installation de l'interface" 207 echo -e "$COLCMD\c " 208 useradd -u 599 www-se3 -d /var/remote_adm -s /bin/bash 209 adduser www-se3 lpadmin 210 211 # Effacement de la config nut 212 /bin/rm -Rf /etc/nut 213 214 # modif de /etc/profile afin que la machine passe par un proxy 215 if [ ! -z "$PROXY_AUTOCONF" ]; then 216 if [ "$PROXY_AUTOCONF" = "yes" ]; then 217 echo "#se3_proxy" >> /etc/profile 218 echo "http_proxy=\"http://$IPPROXY:$PROXYPORT\"" >> /etc/profile 219 echo "ftp_proxy=\"http://$IPPROXY:$PROXYPORT\"" >> /etc/profile 220 echo "export http_proxy ftp_proxy" >> /etc/profile 221 fi 222 else 223 if [ ! `cat /etc/profile | grep se3_proxy` ]; then 224 225 REPONSE="" 226 while [ "$REPONSE" != "o" -a "$REPONSE" != "n" ] 227 do 228 echo -e "$COLTXT" 229 echo "Passez-vous par un SLIS ou un autre proxy" 230 echo -e "pour vous connecter à internet ? (${COLCHOIX}o/n${COLTXT}) ${COLSAISIE}\c " 231 read REPONSE 232 done 233 234 ### on ne touche à rien si il n'y a pas de proxy #### 235 if [ "$REPONSE" = "o" ]; then 236 while [ "$IPOK" != "o" ] 237 do 238 GW=$(route -n | grep UG | head -n 1 | awk -F' ' '{ print $2 }') 239 echo -e "${COLTXT}Quelle est l'adresse ip de votre proxy ? [${COLDEFAUT}${GW}${COLTXT}] ${COLSAISIE}\c " 240 read IPPROXY 241 [ -z "$IPPROXY" ] && IPPROXY="$GW" 242 echo -e "$COLTXT\c " 243 echo -e "Quel est le port de votre proxy? [${COLDEFAUT}3128${COLTXT}] ${COLSAISIE}\c " 244 read PROXYPORT 245 if [ -z "$PROXYPORT" ]; then 246 PROXYPORT=3128 247 fi 248 echo -e "$COLTXT\c " 249 echo -e "Votre proxy est accessible à ${COLINFO}${IPPROXY}:${PROXYPORT}${COLTXT}" 250 IPOK="" 251 while [ "$IPOK" != "o" -a "$IPOK" != "n" ] 252 do 253 echo -e "$COLTXT\c " 254 echo -e "Est-ce correct ? (${COLCHOIX}o/n${COLTXT}) ${COLSAISIE}\c " 255 read IPOK 256 done 257 done 258 259 ### on part du principe où le port est PROXYPORT 260 261 echo -e "$COLTXT\c " 262 echo "Je mets à jour le fichier /etc/profile ..." 263 echo -e "$COLCMD\c " 264 echo "#se3_proxy" >> /etc/profile 265 echo "http_proxy=\"http://$IPPROXY:$PROXYPORT\"" >> /etc/profile 266 echo "ftp_proxy=\"http://$IPPROXY:$PROXYPORT\"" >> /etc/profile 267 echo "export http_proxy ftp_proxy" >> /etc/profile 268 echo 269 fi 270 else 271 echo -e "$COLINFO\c " 272 echo "Un proxy est déjà déclaré dans /etc/profile" 273 fi 274 fi 275 fi 276 # 277 # Configuration de SambaEdu 278 # 279 280 echo -e "$COLPARTIE" 281 echo "Section 2: " 282 echo "---------- " 283 echo -e "$COLTXT\c " 284 if [ "$CONFSE3" = "yes" ]; then 285 rep="y" 286 else 287 echo -e "Voulez-vous configurer SambaEdu3 ? (${COLCHOIX}O/n${COLTXT}) $COLSAISIE\c " 288 read rep 289 fi 290 if [ ! "$rep" = "n" ]; then 291 292 if [ "$CONFSE3" != "yes" ]; then 293 echo -e "$COLTXT" 294 echo -e "Entrez l'adresse IP du serveur SE3 [${COLDEFAUT}$IPADDR${COLTXT}] $COLSAISIE\c " 295 read SE3IP 296 if [ "$SE3IP" = "" ]; then 297 SE3IP=$IPADDR 298 fi 299 300 echo -e "$COLTXT" 301 echo -e "Entrez le nom DNS complet du serveur SE3 [${COLDEFAUT}`hostname -f`${COLTXT}]" 302 echo -e "$COLSAISIE\c " 303 read FQHN 304 if [ "$FQHN" = "" ]; then 305 FQHN=`hostname -f` 306 fi 307 SERVNAME=`echo $FQHN |cut -d . -f 1` 308 DOMNAME=`echo $FQHN |cut -d . -f 2-` 309 310 echo -e "$COLTXT" 311 echo -e "Entrez l'adresse de la base MySQL [${COLDEFAUT}localhost${COLTXT}] $COLSAISIE\c " 312 read MYSQLIP 313 if [ "$MYSQLIP" = "" ]; then 314 MYSQLIP="localhost" 315 fi 316 317 echo -e "$COLTXT" 318 echo -e "Entrez le mot de passe root MySQL ou appuyez simplement sur entrée pour en générer un aléatoirement" 319 echo -e 'Attention les caractères "#", "~", "-", "&" et "$" sont interdits et seront supprimés le cas échéant.' 320 echo -e "$COLSAISIE\c " 321 read MYSQLPW 322 MYSQLPW=$(echo "$MYSQLPW" | sed -e 's/\-//g' | sed -e s'/\$//g' | sed -e 's/\#//g'| sed -e 's/\~//g'| sed -e 's/\&//g') 323 324 SE3PW="" 325 while [ -z "$SE3PW" ] 326 do 327 echo -e "$COLTXT" 328 echo -e "Entrez le mot de passe Administrateur SambaEdu3 (Non trivial SVP)" 329 echo -e 'Attention les caractères "#", "~", "-", "&" et "$" sont interdits et seront supprimés le cas échéant' 330 echo -e "$COLSAISIE\c " 331 read SE3PW 332 SE3PW=$(echo "$SE3PW" | sed -e 's/\-//g' | sed -e s'/\$//g' | sed -e 's/\#//g'| sed -e 's/\~//g'| sed -e 's/\&//g') 333 done 334 fi 335 if [ -z "$MYSQLPW" ]; then 336 echo -e "vous n'avez pas saisi de mot de passe root MySQL, celui-ci va être généré aléatoirement" 337 MYSQLPW=`date | md5sum | cut -c 1-6 | sed -e s'/\-//g' | sed -e s'/\$//g' | sed -e 's/\#//g'| sed -e 's/\~//g'| sed -e 's/\&//g'` 338 fi 339 echo -e "$COLCMD\c " 340 mysqladmin password $MYSQLPW 2>/dev/null && echo -e "${COLINFO}Le mot de passe root MySQL a été initialisé à $MYSQLPW" 341 echo "[client]">/root/.my.cnf 342 echo "password=$MYSQLPW">>/root/.my.cnf 343 echo "user=root">>/root/.my.cnf 344 chmod 600 /root/.my.cnf 345 346 # Configuration de l'interface 347 echo -e "$COLCMD\c " 348 sed -e "s/#MYSQLIP#/$MYSQLIP/g;s/#SE3DBPASS#/$SE3PW/g" /var/www/se3/includes/config.inc.php.in > /var/www/se3/includes/config.inc.php 349 chmod 660 /var/www/se3/includes/config.inc.php 350 chown $APACHE /var/www/se3/includes/config.inc.php 351 sed -e "s/#MYSQLIP#/$MYSQLIP/g;s/#SE3DBPASS#/$SE3PW/g" /var/cache/se3_install/conf/SeConfig.ph.in > /etc/SeConfig.ph 352 chmod 660 /etc/SeConfig.ph 353 chown $APACHE /etc/SeConfig.ph 354 355 356 357 # Configuration des droits sur se3/setup 358 echo "AuthUserFile $WWWPATH/se3/setup/.htpasswd" >> $WWWPATH/se3/setup/.htaccess 359 htpasswd -bc $WWWPATH/se3/setup/.htpasswd admin $SE3PW 360 chmod 750 $WWWPATH/se3/setup -R 361 chown $APACHE.root $WWWPATH/se3/setup -R 362 363 if [ "$CONFSE3" = "yes" ]; then 364 rep="y" 365 else 366 echo -e "$COLTXT" 367 echo -e "Voulez-vous initialiser la Base de Données ? (${COLCHOIX}O/n${COLTXT}) $COLSAISIE\c " 368 read rep 369 fi 370 if [ ! "$rep" = "n" ]; then 371 # Initialisation de la Base de Données 372 echo -e "$COLCMD\c " 373 echo "DROP DATABASE se3db" | mysql -h $MYSQLIP se3db -u root -p$MYSQLPW 2>/dev/null 374 mysqladmin create se3db -u root -p$MYSQLPW 375 mysql -h $MYSQLIP se3db -u root -p$MYSQLPW <se3db.sql 376 echo "DELETE FROM user WHERE User = 'se3db_admin'"|mysql mysql -u root -p$MYSQLPW 377 echo "DELETE FROM db WHERE User = 'se3db_admin'"|mysql mysql -u root -p$MYSQLPW 378 echo "INSERT INTO user ( \`Host\` , \`User\` , \`Password\` , \`Select_priv\` , \`Insert_priv\` , \`Update_priv\` , \`Delete_priv\` , \`Create_priv\` , \`Drop_priv\` , \`Reload_priv\` , \`Shutdown_priv\` , \`Process_priv\`, \`File_priv\` , \`Grant_priv\` , \`References_priv\` , \`Index_priv\` , \`Alter_priv\` ) VALUES (\"$SE3IP\",'se3db_admin',PASSWORD(\"$SE3PW\"),'Y','Y','Y','Y','Y','Y','N','N','N','N','N','N','N','N')"|mysql mysql -u root -p$MYSQLPW 379 echo "INSERT INTO user ( \`Host\` , \`User\` , \`Password\` , \`Select_priv\` , \`Insert_priv\` , \`Update_priv\` , \`Delete_priv\` , \`Create_priv\` , \`Drop_priv\` , \`Reload_priv\` , \`Shutdown_priv\` , \`Process_priv\`, \`File_priv\` , \`Grant_priv\` , \`References_priv\` , \`Index_priv\` , \`Alter_priv\` ) VALUES (\"localhost\",'se3db_admin',PASSWORD(\"$SE3PW\"),'Y','Y','Y','Y','Y','Y','N','N','N','N','N','N','N','N')"|mysql mysql -u root -p$MYSQLPW 380 echo "INSERT INTO db ( \`Host\` , \`Db\` , \`User\` , \`Select_priv\` , \`Insert_priv\` , \`Update_priv\` , \`Delete_priv\` , \`Create_priv\` , \`Drop_priv\` , \`Grant_priv\` , \`References_priv\` , \`Index_priv\` , \`Alter_priv\` ) VALUES (\"$SE3IP\",'se3db','se3db_admin','Y','Y','Y','Y','Y','Y','N','N','N','Y')"|mysql mysql -u root -p$MYSQLPW 381 echo "INSERT INTO db ( \`Host\` , \`Db\` , \`User\` , \`Select_priv\` , \`Insert_priv\` , \`Update_priv\` , \`Delete_priv\` , \`Create_priv\` , \`Drop_priv\` , \`Grant_priv\` , \`References_priv\` , \`Index_priv\` , \`Alter_priv\` ) VALUES (\"localhost\",'se3db','se3db_admin','Y','Y','Y','Y','Y','Y','N','N','N','Y')"|mysql mysql -u root -p$MYSQLPW 382 mysqladmin reload -u root -p$MYSQLPW 383 # Mise a jours de paramètres en fonction de la distrib 384 echo "UPDATE params SET value=\"$WWWPATH/se3\" WHERE name=\"path_to_wwwse3\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 385 echo "UPDATE params SET value=\"$SMBCONF\" WHERE name=\"path2smbconf\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 386 echo "UPDATE params SET value=\"/etc/$SLAPDIR/ldap.conf\" WHERE name=\"path2ldapconf\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 387 echo "UPDATE params SET value=\"$PAMLDAPCONF\" WHERE name=\"path2pamldapconf\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 388 echo "UPDATE params SET value=\"$NSSLDAPCONF\" WHERE name=\"path2nssldapconf\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 389 echo "UPDATE params SET value=\"$LDAPSECRET\" WHERE name=\"path2ldapsecret\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 390 echo "UPDATE params SET value=\"$INITDSAMBA\" WHERE name=\"serv_samba\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 391 echo "UPDATE params SET value=\"$INITDAPACHE\" WHERE name=\"serv_apache\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 392 echo "UPDATE params SET value=\"$INITDSLAPD\" WHERE name=\"serv_slapd\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 393 echo "UPDATE params SET value=\"$INITDNSCD\" WHERE name=\"serv_nscd\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 394 # Paramètres divers renseignés par l'utilisateur 395 echo "UPDATE params SET value=\"$DOMNAME\" WHERE name=\"domain\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 396 397 if [ "$MYSQL_AUTOCONF" = "yes" ]; then 398 echo "UPDATE params SET value=\"$URL_IFACEWEB\" WHERE name=\"urlse3\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 399 echo "UPDATE params SET value=\"$DEFAULTGID\" WHERE name=\"defaultgid\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 400 echo "UPDATE params SET value=\"$UIDPOLICY\" WHERE name=\"uidPolicy\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 401 echo "UPDATE params SET value=\"$DEFAULTSHELL\" WHERE name=\"defaultshell\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 402 echo "UPDATE params SET value=\"$URL_MAJSE3\" WHERE name=\"urlmaj\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 403 echo "UPDATE params SET value=\"$FTP_MAJSE3\" WHERE name=\"ftpmaj\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 404 405 else 406 echo "UPDATE params SET value=\"http://$FQHN:909\" WHERE name=\"urlse3\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 407 fi 408 409 fi 410 411 if [ "$rep" = "n" ]; then 412 echo -e "$COLTXT" 413 echo -e "Voulez-vous configurer l'annuaire LDAP ? (${COLCHOIX}O/n${COLTXT}) ${COLSAISIE}\c " 414 read rep 415 fi 416 if [ ! "$rep" = "n" ]; then 417 if [ "$CONFSE3" != "yes" ]; then 418 # Configuration de l'annuaire LDAP 419 420 rep="o" 421 while [ "$rep" = "o" ] 422 do 423 echo -e "$COLTXT" 424 echo -e "Entrez l'adresse IP de l'annuaire LDAP [${COLDEFAUT}$SE3IP${COLTXT}] ${COLSAISIE}\c " 425 read LDAPIP 426 if [ "$LDAPIP" == "" ]; then 427 LDAPIP="$SE3IP" 428 fi 429 430 if [ "$LDAPIP" != "$SE3IP" ]; then 431 while [ "$REP_CONFIRM" != "o" -a "$REP_CONFIRM" != "n" ] 432 do 433 echo -e "$COLINFO\c " 434 echo -e "Vous avez demandé à installer le serveur ldap sur une machine distante." 435 echo -e "IL EST INDISPENSABLE QUE LA MACHINE DISTANTE SOIT SOUS DEBIAN LENNY OU QUE L'ANNUAIRE" 436 echo -e "DISTANT SOIT AU FORMAT SCHEMA CHECK ON POUR QUE L'INSTALLATION ABOUTISSE !" 437 echo -e "par exemple LCS LENNY répond à ce prérequis" 438 echo -e "Dans le doute, il est vivement recommandé de laisser l'annuaire en local" 439 echo -e "Etes vous certain de vouloir conserver votre choix ? (${COLCHOIX}o/n${COLTXT}) $COLSAISIE\c " 440 read REP_CONFIRM 441 done 442 if [ "$REP_CONFIRM" != "o" ]; then 443 echo "L'annuaire sera installé en local" 444 LDAPIP="$SE3IP" 445 fi 446 447 fi 448 #Vérification de la présence de $LDAPIP 449 if ! ping -c1 -t1 $LDAPIP > /dev/null; then 450 echo -e "${COLERREUR}" 451 echo "ERREUR:" 452 echo -e "${COLTXT} Il semble que l'adresse ${COLINFO}$LDAPIP${COLTXT} ne réponde pas au ping." 453 echo " Est-ce que:" 454 echo " - C'est normal ? Les pings sont-ils bloqués ?" 455 echo " - Il y a un problème de connectique?" 456 echo " - Vous vous êtes trompé sur l'adresse?" 457 echo " Si les pings ne sont pas filtrés, il est recommandé de refaire un tour" 458 echo " dans la boucle de saisie de l'adresse pour contrôler qu'après correction" 459 echo " le ping passe bien." 460 echo -e "Voulez-vous corriger l'adresse? (${COLCHOIX}O/n${COLTXT}) $COLSAISIE\c " 461 read rep 462 463 if [ -z "$rep" ]; then 464 rep="o" 465 fi 466 else 467 rep="n" 468 fi 469 done 470 471 #Choix du DN de base: 472 BDN="dc=`echo $DOMNAME |sed -e "s/\./,dc=/g"`" 473 474 echo -e "$COLINFO" 475 echo "Plusieurs formes de DN de BASE sont proposés:" 476 477 echo -e " ${COLTXT}(${COLCHOIX}1${COLTXT}) Dans l'Académie de Caen, le DN de base serait:\n $BDN" 478 479 ETABBDN=$(echo $DOMNAME | cut -d"." -f1) 480 ACADBDN=$(echo $DOMNAME | cut -d"." -f2) 481 ALTBDN2="ou=$ETABBDN,ou=$ACADBDN,ou=education,o=gouv,c=fr" 482 echo -e " ${COLTXT}(${COLCHOIX}2${COLTXT}) Dans l'Académie de Rouen, le DN de base serait:\n $ALTBDN2" 483 484 echo -e " ${COLTXT}(${COLCHOIX}3${COLTXT}) Autre format." 485 REPONSE="" 486 while [ "$REPONSE" != "1" -a "$REPONSE" != "2" -a "$REPONSE" != "3" ] 487 do 488 echo -e "$COLTXT\c " 489 echo -e "Votre choix: $COLSAISIE\c " 490 read REPONSE 491 done 492 493 case $REPONSE in 494 1) 495 BDN="$BDN" 496 ;; 497 2) 498 BDN="$ALTBDN2" 499 ;; 500 *) 501 BDN="$BDN" 502 ;; 503 esac 504 505 rep="o" 506 while [ "$rep" = "o" ] 507 do 508 echo -e "$COLTXT" 509 echo -e "Entrez le DN de base [${COLDEFAUT}$BDN${COLTXT}]" 510 echo -e "BASEDN: $COLSAISIE\c " 511 read BASEDN 512 if [ "$BASEDN" = "" ]; then 513 BASEDN=$BDN 514 fi 515 516 echo -e "$COLTXT" 517 echo -e "Entrez le RDN de l'administrateur de l'annuaire [${COLDEFAUT}cn=admin${COLTXT}] $COLSAISIE\c " 518 read ADMINRDN 519 if [ "$ADMINRDN" = "" ]; then 520 ADMINRDN="cn=admin" 521 fi 522 523 echo -e "$COLTXT" 524 echo -e "Entrez le mot de passe de l'administrateur de l'annuaire [${COLDEFAUT}$SE3PW${COLTXT}] $COLSAISIE\c " 525 read ADMINPW 526 if [ "$ADMINPW" = "" ]; then 527 ADMINPW="$SE3PW" 528 fi 529 530 # Test de contact de l'annuaire sous l'identité saisie: 531 if [ "$LDAPIP" != "$SE3IP" ]; then 532 echo -e "$COLCMD" 533 #if ! ldapsearch -xLLL -h $LDAPIP $ADMINRDN > /dev/null; then 534 if ! ldapsearch -xLLL -h $LDAPIP -b $BASEDN > /dev/null; then 535 echo -e "${COLERREUR}" 536 echo "ERREUR:" 537 echo -e "$COLTXT\c " 538 echo -e " Il semble que l'annuaire sur ${COLINFO}${LDAPIP}${COLTXT} n'ait pas pu être consulté" 539 echo -e " en anonyme." 540 echo -e " L'adresse IP du LDAP et le BASEDN sont-ils corrects?" 541 REPONSE="" 542 while [ "$REPONSE" != "o" -a "$REPONSE" != "n" ] 543 do 544 echo -e "$COLTXT" 545 echo -e "Voulez-vous corriger votre saisie? (${COLCHOIX}o/n${COLTXT}) $COLSAISIE\c " 546 read REPONSE 547 done 548 else 549 # Pas d'erreur en anonyme 550 REPONSE="n" 551 fi 552 if [ "$REPONSE" = "n" ]; then 553 echo -e "$COLCMD\c " 554 #if ! ldapsearch -xLLL -h $LDAPIP -D "$ADMINRDN,$BASEDN" -w $ADMINPW $ADMINRDN > /dev/null; then 555 if ! ldapsearch -xLLL -h $LDAPIP -D "$ADMINRDN,$BASEDN" -w $ADMINPW -b $BASEDN > /dev/null; then 556 echo -e "${COLERREUR}" 557 echo "ERREUR:" 558 echo -e "$COLTXT\c " 559 echo -e " Il semble que l'annuaire sur ${COLINFO}${LDAPIP}${COLTXT} n'ait pas pu être consulté" 560 echo -e " en se présentant comme administrateur du LDAP" 561 echo -e " (problème de compte/mot de passe?)." 562 echo "" 563 rep="" 564 while [ "$rep" != "o" -a "$rep" != "n" ] 565 do 566 echo -e "$COLTXT" 567 echo -e "Voulez-vous corriger votre saisie? (${COLCHOIX}o/n${COLTXT}) $COLSAISIE\c " 568 read rep 569 done 570 else 571 rep="n" 572 fi 573 else 574 # Correction à faire. 575 # Un tour de plus dans la boucle. 576 rep="o" 577 fi 578 else 579 # L'annuaire est encore vide. 580 # Il va être mis en place sur le SE3 lui-même: 581 rep="n" 582 fi 583 done 584 PEOPLERDN="People" 585 GROUPSRDN="Groups" 586 COMPUTERSRDN="Computers" 587 PARCSRDN="Parcs" 588 RIGHTSRDN="Rights" 589 PRINTERSRDN="Printers" 590 TRASHRDN="Trash" 591 592 fi 593 594 595 echo -e "$COLCMD\c " 596 # Renseignement de la base de données à partir des entrées fournies 597 echo "UPDATE params SET value=\"$LDAPIP\" WHERE name=\"ldap_server\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 598 echo "UPDATE params SET value=\"$BASEDN\" WHERE name=\"ldap_base_dn\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 599 echo "UPDATE params SET value=\"$ADMINRDN\" WHERE name=\"adminRdn\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 600 echo "UPDATE params SET value=\"$ADMINPW\" WHERE name=\"adminPw\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 601 echo "UPDATE params SET value=\"ou=$PEOPLERDN\" WHERE name=\"peopleRdn\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 602 echo "UPDATE params SET value=\"ou=$GROUPSRDN\" WHERE name=\"groupsRdn\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 603 echo "UPDATE params SET value=\"ou=$COMPUTERSRDN\" WHERE name=\"computersRdn\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 604 echo "UPDATE params SET value=\"ou=$PARCSRDN\" WHERE name=\"parcsRdn\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 605 echo "UPDATE params SET value=\"ou=$RIGHTSRDN\" WHERE name=\"rightsRdn\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 606 echo "UPDATE params SET value=\"ou=$PRINTERSRDN\" WHERE name=\"printersRdn\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 607 echo "UPDATE params SET value=\"ou=$TRASHRDN\" WHERE name=\"trashRdn\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 608 fi 609 fi 610 611 # Lecture des paramètres LDAP depuis la base de données 612 # au cas où la section 2 aurait été zappée 613 614 if [ "$MYSQLIP" = "" ]; then 615 echo -e "$COLTXT" 616 echo -e "Entrez l'adresse de la base MySQL [${COLDEFAUT}localhost${COLTXT}] $COLSAISIE\c " 617 read MYSQLIP 618 if [ "$MYSQLIP" = "" ]; then 619 MYSQLIP="localhost" 620 fi 621 622 echo -e "$COLTXT" 623 echo -e "Entrez le mot de passe Administrateur SambaEdu3 (Non trivial SVP)" 624 echo -e "SE3PW: $COLSAISIE\c " 625 read SE3PW 626 fi 627 echo -e "$COLCMD" 628 LDAPIP=`echo "SELECT value FROM params WHERE name='ldap_server'" | mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW -N` 629 BASEDN=`echo "SELECT value FROM params WHERE name='ldap_base_dn'" | mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW -N` 630 631 DN_BASEDN=`echo "SELECT value FROM params WHERE name='ldap_base_dn'" | mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW -N | cut -d',' -f1` 632 ADMINRDN=`echo "SELECT value FROM params WHERE name='adminRdn'" | mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW -N` 633 ADMINPW=`echo "SELECT value FROM params WHERE name='adminPw'" | mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW -N` 634 PEOPLERDN=`echo "SELECT value FROM params WHERE name='peopleRdn'" | mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW -N` 635 GROUPSRDN=`echo "SELECT value FROM params WHERE name='groupsRdn'" | mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW -N` 636 RIGHTSRDN=`echo "SELECT value FROM params WHERE name='rightsRdn'" | mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW -N` 637 COMPUTERSRDN=`echo "SELECT value FROM params WHERE name='computersRdn'" | mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW -N` 638 PARCSRDN=`echo "SELECT value FROM params WHERE name='parcsRdn'" | mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW -N` 639 PRINTERSRDN=`echo "SELECT value FROM params WHERE name='printersRdn'" | mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW -N` 640 TRASHRDN=`echo "SELECT value FROM params WHERE name='trashRdn'" | mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW -N` 641 642 echo $ADMINPW >$LDAPSECRET 643 644 # Mise en place de la versionSE3 645 646 VERSION=`cat version` 647 #echo "INSERT INTO params VALUES ('', 'version', '$VERSION', 0, 'No version SambaEdu', 4)" | mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 648 REJ=`echo "SELECT value FROM params WHERE name='registred'" | mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW -N` 649 if [ -z "$REJ" ]; then 650 echo "INSERT INTO params VALUES ('', 'registred', '0', 0, 'Enregistrement du serveur', 4)" | mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 651 fi 652 if [ "$SMBCONFIN" = "smb_3.conf.in" ]; then 653 echo "INSERT INTO params VALUES ('', 'smbversion', 'samba3', 0, 'version de Samba', 6)" | mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 654 fi 655 656 if [ "$SLAPD_AUTOCONF" = "yes" ]; then 657 echo -e "$COLPARTIE" 658 echo "Section 3: " 659 echo "---------- " 660 echo -e "$COLTXT\c " 661 echo -e "Configuration automatique de SLAPD sur le serveur SE3...." 662 rep="y" 663 else 664 echo -e "$COLTITRE\c " 665 echo "Récapitulatif de la configuration LDAP" 666 echo "--------------------------------------" 667 echo -e "$COLINFO\c " 668 echo "Adresse de l'annuaire: $LDAPIP" 669 echo "DN de l'administrateur: $ADMINRDN,$BASEDN ($ADMINPW)" 670 echo "Branche People: $PEOPLERDN,$BASEDN" 671 echo "Branche Groups: $GROUPSRDN,$BASEDN" 672 echo "Branche Computers: $COMPUTERSRDN,$BASEDN" 673 echo "Branche Parcs: $PARCSRDN,$BASEDN" 674 echo "Branche Rights: $RIGHTSRDN,$BASEDN" 675 echo "Branche Printers: $PRINTERSRDN,$BASEDN" 676 echo "Branche Trash: $TRASHRDN,$BASEDN" 677 echo -e "$COLTXT\c " 678 echo -e "Ces renseignements sont-ils corrects ? (${COLCHOIX}O/n${COLTXT}) $COLSAISIE\c " 679 read rep 680 if [ "$rep" = "n" ]; then 681 echo -e "$COLTXT" 682 exit 1 683 fi 684 685 # 686 # Paramétrage du serveur LDAP sur le serveur SE3 687 # 688 689 echo -e "$COLPARTIE" 690 echo "Section 3: " 691 echo "---------- " 692 echo -e "$COLTXT\c " 693 echo -e "Voulez-vous configurer le service SLAPD sur le serveur SE3 ? (${COLCHOIX}O/n${COLTXT}) $COLSAISIE\c " 694 read rep 695 fi 696 697 if [ ! "$rep" = "n" ]; then 698 # Configuration du slapd 699 echo -e "$COLCMD\c " 700 $INITDSLAPD stop 701 if [ ! -d /var/lib/ldap ]; then 702 mkdir /var/lib/ldap 703 chown openldap:openldap /var/lib/ldap 704 else 705 cp -a /var/lib/ldap /var/lib/ldap.se3sav 706 fi 707 /usr/share/se3/scripts/mkSlapdConf.sh installinit 708 # cat conf/$SLAPDCONFIN | sed -e "s/#SCHEMADIR#/$SCHEMADIR/g" | sed -e "s/#BASEDN#/$BASEDN/g" | sed -e "s/#ADMINRDN#/$ADMINRDN/g" | sed -e "s/#ADMINPW#/$ADMINPW/g" > $SLAPDCONF 709 710 # Prise en compte des lignes spécifiques à la version 2.1.x backportée 711 712 # chmod 640 $SLAPDCONF 713 # chown root.$LDAPGRP $SLAPDCONF 714 # pour bypasser le nouveau mode de conf slapd 715 mv /etc/ldap/slapd.d /etc/ldap/slapd.d.se3 716 /usr/sbin/slapindex 2>/dev/null 717 chown openldap.openldap /var/lib/ldap/* 718 $INITDSLAPD start 719 if [ "$?" != "0" ]; then 720 echo -e "$COLERREUR Erreur lors du lancement de ldap - impossible de poursuivre" 721 echo -e "$COLTXT\c " 722 exit 1 723 fi 724 sleep 2 725 echo "UPDATE params SET value=\"/etc/$SLAPDIR/slapd.conf\" WHERE name=\"path2slapdconf\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 726 fi 727 728 # 729 # Ecriture dans l'annuaire des branches et entrées nécessaires à SambaEdu3 730 # 731 if [ "$SLAPD_AUTOCONF" = "yes" ]; then 732 rep="y" 733 echo -e "$COLPARTIE" 734 echo "Section 4: " 735 echo "---------- " 736 echo -e "$COLTXT\c " 737 echo -e "Intégration des données dans l'annuaire...." 738 else 739 echo -e "$COLPARTIE" 740 echo "Section 4: " 741 echo "---------- " 742 echo -e "$COLTXT\c " 743 echo -e "Voulez-vous intégrer les entrées SambaEdu3 à l'annuaire ? (${COLCHOIX}O/n${COLTXT}) $COLSAISIE\c " 744 read rep_1T 745 fi 746 747 748 if [ ! "$rep_1T" = "n" ]; then 749 echo -e "$COLCMD\c " 750 # Suppression des ou= dans les noms des branches 751 ADMINR=`echo $ADMINRDN |cut -d , -f 1 |cut -d = -f 2` 752 PEOPLER=`echo $PEOPLERDN |cut -d = -f 2` 753 GROUPSR=`echo $GROUPSRDN |cut -d = -f 2` 754 COMPUTERSR=`echo $COMPUTERSRDN |cut -d = -f 2` 755 PARCSR=`echo $PARCSRDN |cut -d = -f 2` 756 RIGHTSR=`echo $RIGHTSRDN |cut -d = -f 2` 757 PRINTERSR=`echo $PRINTERSRDN |cut -d = -f 2` 758 759 # Lecture de defaultgid pour attribution a admin 760 761 defaultgid=`echo "SELECT value FROM params WHERE name='defaultgid'" | mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW -N` 762 763 # test le type de BASEDN 764 cp ldif/top.ldif /tmp/ 765 TYPE_DN=`echo $DN_BASEDN | cut -d = -f 1` 766 if [ "$TYPE_DN" = "ou" ] 767 then 768 echo "ObjectClass: organizationalUnit" >> /tmp/top.ldif 769 fi 770 if [ "$TYPE_DN" = "dc" ] 771 then 772 echo "ObjectClass: Domain" >> /tmp/top.ldif 773 fi 774 775 DN_DC=`echo $DN_BASEDN | cut -d = -f 2` 776 echo "$TYPE_DN: $DN_DC" >> /tmp/top.ldif 777 778 # Mise en place des entrées dans l'annuaire 779 cat /tmp/top.ldif | sed -e "s/#BASEDN#/$BASEDN/g" | ldapadd -x -D "$ADMINRDN,$BASEDN" -w $ADMINPW 780 cat ldif/People.ldif | sed -e "s/#BASEDN#/$BASEDN/g" | sed -e "s/#PEOPLE#/$PEOPLER/g" | ldapadd -x -D "$ADMINRDN,$BASEDN" -w $ADMINPW 781 cat ldif/cnadmin.ldif | sed -e "s/#BASEDN#/$BASEDN/g" | sed -e "s/#ADMINRDN#/$ADMINRDN/g" | sed -e "s/#ADMINR#/$ADMINR/g" | ldapadd -x -D "$ADMINRDN,$BASEDN" -w $ADMINPW 782 cat ldif/Groups.ldif | sed -e "s/#BASEDN#/$BASEDN/g" | sed -e "s/#GROUPS#/$GROUPSR/g" | ldapadd -x -D "$ADMINRDN,$BASEDN" -w $ADMINPW 783 cat ldif/admins.ldif | sed -e "s/#BASEDN#/$BASEDN/g" | sed -e "s/#GROUPS#/$GROUPSR/g" | ldapadd -x -D "$ADMINRDN,$BASEDN" -w $ADMINPW 784 cat ldif/lcs-users.ldif | sed -e "s/#BASEDN#/$BASEDN/g" | sed -e "s/#GROUPS#/$GROUPSR/g" | ldapadd -x -D "$ADMINRDN,$BASEDN" -w $ADMINPW 785 cat ldif/Eleves.ldif | sed -e "s/#BASEDN#/$BASEDN/g" | sed -e "s/#GROUPS#/$GROUPSR/g" | ldapadd -x -D "$ADMINRDN,$BASEDN" -w $ADMINPW 786 cat ldif/Profs.ldif | sed -e "s/#BASEDN#/$BASEDN/g" | sed -e "s/#GROUPS#/$GROUPSR/g" | ldapadd -x -D "$ADMINRDN,$BASEDN" -w $ADMINPW 787 cat ldif/Administration.ldif | sed -e "s/#BASEDN#/$BASEDN/g" | sed -e "s/#GROUPS#/$GROUPSR/g" | ldapadd -x -D "$ADMINRDN,$BASEDN" -w $ADMINPW 788 cat ldif/machines.ldif | sed -e "s/#BASEDN#/$BASEDN/g" | sed -e "s/#GROUPS#/$GROUPSR/g" | ldapadd -x -D "$ADMINRDN,$BASEDN" -w $ADMINPW 789 cat ldif/Computers.ldif | sed -e "s/#BASEDN#/$BASEDN/g" | sed -e "s/#COMPUTERS#/$COMPUTERSR/g" | ldapadd -x -D "$ADMINRDN,$BASEDN" -w $ADMINPW 790 cat ldif/Parcs.ldif | sed -e "s/#BASEDN#/$BASEDN/g" | sed -e "s/#PARCS#/$PARCSR/g" | ldapadd -x -D "$ADMINRDN,$BASEDN" -w $ADMINPW 791 cat ldif/RightsRoot.ldif | sed -e "s/#BASEDN#/$BASEDN/g" | sed -e "s/#RIGHTS#/$RIGHTSR/g" | ldapadd -x -D "$ADMINRDN,$BASEDN" -w $ADMINPW 792 cat ldif/rights.ldif | sed -e "s/#BASEDN#/$BASEDN/g" | sed -e "s/#RIGHTS#/$RIGHTSR/g" | sed -e "s/#GROUPS#/$GROUPSR/g"| sed -e "s/#PEOPLE#/$PEOPLER/g" | ldapadd -x -c -D "$ADMINRDN,$BASEDN" -w $ADMINPW 793 cat ldif/printers.ldif | sed -e "s/#BASEDN#/$BASEDN/g" | sed -e "s/#PRINTERS#/$PRINTERSR/g" | ldapadd -x -c -D "$ADMINRDN,$BASEDN" -w $ADMINPW 794 fi 795 796 # 797 # Mise en place de Samba, enfin... 798 # 799 if [ ! -z "$(ldapsearch -xLLL sambaDomainName=* sambaDomainName | 800 grep '^sambaDomainName: ' | sed -e 's/^sambaDomainName: //')" ]; then 801 echo "AVERTISSEMENT: ..." 802 echo "Un Domaine déjà existant dans l'annuaire a été trouvé:" 803 ldapsearch -xLLL sambaDomainName=* sambaDomainName | 804 grep '^sambaDomainName: ' | sed -e 's/^sambaDomainName: //' 805 TAB_DEFAULT_DOMAIN=($(ldapsearch -xLLL sambaDomainName=* sambaDomainName | 806 grep '^sambaDomainName: ' | sed -e 's/^sambaDomainName: //')) 807 DEFAULT_DOMAIN=${TAB_DEFAULT_DOMAIN[0]} 808 else 809 DEFAULT_DOMAIN="SAMBAEDU3" 810 fi 811 812 813 if [ "$SMB_AUTOCONF" = "yes" ]; then 814 rep="y" 815 echo -e "$COLPARTIE" 816 echo "Section 5: " 817 echo "---------- " 818 echo -e "$COLTXT\c " 819 echo -e "Configuration automatique de Samba ...." 820 else 821 822 echo -e "$COLPARTIE" 823 echo "Section 5: " 824 echo "---------- " 825 echo -e "$COLTXT\c " 826 echo -e "Voulez-vous configurer Samba ? (${COLCHOIX}O/n${COLTXT}) $COLSAISIE\c " 827 read rep 828 fi 829 830 831 if [ ! "$rep" = "n" ]; then 832 if [ "$SMB_AUTOCONF" != "yes" ]; then 833 834 # Configuration du samba 835 echo -e "$COLTXT" 836 echo -e "Entrez le nom du domaine NT [${COLDEFAUT}${DEFAULT_DOMAIN}${COLTXT}] $COLSAISIE\c " 837 read NTDOM 838 if [ "$NTDOM" = "" ]; then 839 NTDOM="$DEFAULT_DOMAIN" 840 fi 841 842 echo -e "$COLTXT" 843 echo -e "Entrez le nom netbios du serveur SE3 [${COLDEFAUT}se3${COLTXT}] $COLSAISIE\c " 844 read NETBIOS 845 if [ "$NETBIOS" = "" ]; then 846 NETBIOS="se3" 847 fi 848 849 if [ "$SE3IP" = "" ]; then 850 echo -e "$COLTXT" 851 echo -e "Entrez l'adresse IP du serveur SE3 [${COLDEFAUT}$IPADDR${COLTXT}] $COLSAISIE\c " 852 read SE3IP 853 if [ "$SE3IP" = "" ]; then 854 SE3IP=$IPADDR 855 fi 856 fi 857 858 859 echo -e "$COLTXT" 860 echo -e "Entrez le nom de votre interface reseau [${COLDEFAUT}${ECARD}${COLTXT}] $COLSAISIE\c " 861 read SE3ECARD 862 863 NETMASK=`/sbin/ifconfig $ECARD |grep inet |cut -d \ -f 16 | cut -d : -f 2` 864 echo -e "$COLTXT" 865 echo -e "Entrez le masque de sous-réseau [${COLDEFAUT}$NETMASK${COLTXT}] $COLSAISIE\c " 866 read SE3MASK 867 if [ "$SE3MASK" = "" ]; then 868 SE3MASK=$NETMASK 869 fi 870 fi 871 872 if [ "$SE3ECARD" = "" ]; then 873 SE3ECARD="$ECARD" 874 fi 875 876 if [ "$NTDOM" != "$DEFAULT_DOMAIN" -a "$DEFAULT_DOMAIN" != "SAMBAEDU3" ]; then 877 ldapdelete -x -D $ROOTDN -w $PASSDN sambaDomainName=$sambaDomainName,$BASEDN 878 fi 879 880 echo -e "$COLTXT" 881 echo "Mise en place de la configuration Samba..." 882 echo -e "$COLCMD\c " 883 $INITDSAMBA stop 884 CHARSET="UTF-8" 885 sed -e "s/#IPSERVEUR#/$SE3IP/g;s/#MASK#/$SE3MASK/g;s/#NETBIOSNAME#/$NETBIOS/g;s/#DOMAIN#/$NTDOM/g;s/#SLAPDIP#/$LDAPIP/g;s/#BASEDN#/$BASEDN/g;s/#ADMINRDN#/$ADMINRDN/g;s/#ADMINPW#/$ADMINPW/g;s/#PEOPLE#/$PEOPLERDN/g;s/#GROUPS#/$GROUPSRDN/g;s/#COMPUTERS#/$COMPUTERSRDN/g;s/#CHARSET#/$CHARSET/g" conf/$SMBCONFIN > $SMBCONF 886 smbpasswd -w $ADMINPW 887 888 echo -e "$COLTXT" 889 echo "Démarrage du serveur Samba..." 890 echo -e "$COLCMD\c " 891 $INITDSAMBA start 892 # Renseignement du SID du domaine 893 # Et Renseignement des comptes root et admin samba 894 echo -e "$COLTXT" 895 echo "Renseignement du SID du domaine, des comptes root et admin Samba..." 896 echo -e "$COLCMD\c " 897 let gid1=2*$defaultgid+1001 898 DOMAINSID=`net getlocalsid 2>/dev/null | cut -d: -f2 | sed -e "s/ //g"` 899 if [ ! "$rep_1T" = "n" ]; then 900 cat ldif/root.ldif | sed -e "s/#BASEDN#/$BASEDN/g" > ldif/root.ldif.2 901 cat ldif/admin.ldif | sed -e "s/#BASEDN#/$BASEDN/g" | sed -e "s/#PEOPLE#/$PEOPLER/g" | sed -e "s/#DOMAIN#/$DOMNAME/g" | sed -e "s/#DEFAULTGID#/$defaultgid/g" | sed -e "s/#GID1#/$gid1/g" >>ldif/root.ldif.2 902 /usr/share/se3/sbin/convertSambaAccount --sid $DOMAINSID --input ldif/root.ldif.2 --output /root/root.ldif.3 903 ldapadd -x -c -D "$ADMINRDN,$BASEDN" -w $ADMINPW -f /root/root.ldif.3 904 sed -e "s/#BASEDN#/$BASEDN/g;s/#DOMAINSID#/$DOMAINSID/g;s/#GROUPS#/$GROUPSR/g;s/#PEOPLE#/$PEOPLERDN/g" ldif/Samba.ldif > /root/Samba.ldif 905 ldapadd -x -c -D "$ADMINRDN,$BASEDN" -w $ADMINPW -f /root/Samba.ldif 906 907 echo -e "$COLTXT" 908 echo "Mappage des groupes..." 909 echo -e "$COLCMD\c " 910 # ajout dbo pour mappage des groupes de bases 911 net groupmap add sid=$DOMAINSID-512 ntgroup=Admins unixgroup=admins type=domain comment="Administrateurs du domaine" 912 net groupmap add ntgroup=Eleves unixgroup=Eleves type=domain comment="Eleves du domaine" 913 net groupmap add ntgroup=Profs unixgroup=Profs type=domain comment="Profs du domaine" 914 net groupmap add ntgroup="Utilisateurs du domaine" rid="513" unixgroup="lcs-users" type="domain" 915 net groupmap add ntgroup="machines" rid="515" unixgroup="machines" type="domain" 916 917 echo "UPDATE params SET value=\"$NTDOM\" WHERE name=\"se3_domain\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 918 echo "UPDATE params SET value=\"$NETBIOS\" WHERE name=\"netbios_name\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 919 echo "UPDATE params SET value=\"$SE3IP\" WHERE name=\"se3ip\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 920 echo "UPDATE params SET value=\"$SE3MASK\" WHERE name=\"se3mask\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 921 echo "UPDATE params SET value=\"$SE3ECARD\" WHERE name=\"ecard\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 922 923 fi 924 /usr/share/se3/sbin/userChangePwd.pl admin $SE3PW 925 DS=`echo "SELECT value FROM params WHERE name='domainsid'" | mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW -N` 926 if [ -z "$DS" ]; then 927 echo "INSERT INTO params VALUES ('', 'domainsid', \"$DOMAINSID\", 0, 'SID du domaine Samba', 4)" | mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 928 else 929 echo "UPDATE params SET value=\"$DOMAINSID\" WHERE name=\"domainsid\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 930 fi 931 932 # Saisie de l'entrée du PDC dans Computers 933 echo -e "$COLTXT" 934 echo "Ajout de l'entrée du PDC dans la branche Computers..." 935 echo -e "$COLCMD\c " 936 COMPUTERSR=`echo $COMPUTERSRDN |cut -d = -f 2` 937 LDAP_MASTER=`ldapsearch -xLLL -b $COMPUTERSRDN,$BASEDN "(&(l=maitre)("'!'"(ipHostnumber=$SE3IP)))"` 938 939 if [ -z "$LDAP_MASTER" ]; then 940 cat ldif/se3pdc.ldif | sed -e "s/#BASEDN#/$BASEDN/g" | sed -e "s/#COMPUTERS#/$COMPUTERSR/g" | sed -e "s/#NETBIOSNAME#/$NETBIOS/g" | sed -e "s/#IPSERVEUR#/$SE3IP/g" | ldapadd -x -D "$ADMINRDN,$BASEDN" -w $ADMINPW 941 else 942 cat ldif/se3pdc.ldif | sed -e "s/#BASEDN#/$BASEDN/g" | sed -e "s/#COMPUTERS#/$COMPUTERSR/g" | sed -e "s/#NETBIOSNAME#/$NETBIOS/g" | sed -e "s/#IPSERVEUR#/$SE3IP/g" | sed -e "s/maitre/secondaire/" | sed -e "s/Maitre/Secondaire/" | ldapadd -x -D "$ADMINRDN,$BASEDN" -w $ADMINPW 943 echo "${COLINFO}Attention, il y a déjà un serveur déclaré maitre dans l'annuaire. Se3 sera enregistré comme serveur secondaire dans le ldap" 944 echo "$COLTXT" 945 fi 946 947 #relancer le serveur cups 948 echo -e "$COLTXT" 949 echo "Redémarrage de CUPS..." 950 echo -e "$COLCMD\c " 951 [ -f /etc/init.d/cupsys ] && /etc/init.d/cupsys restart 952 [ -f /etc/init.d/cups ] && /etc/init.d/cups restart 953 954 # install trombine 955 956 # 957 958 # Génération clé rsa root 959 if [ ! -e /root/.ssh/id_rsa.pub ]; then 960 ssh-keygen -t rsa -N "" -f /root/.ssh/id_rsa -q 961 fi 962 cp /root/.ssh/id_rsa.pub /var/se3/Progs/install/installdll 963 964 965 fi 966 967 # keyser ajout demandé par le ploufon - pour la sauvegarde de secret.tdb 968 cp -a /var/lib/samba/secrets.tdb /etc/save/ 969 970 # keyser modif du 4/4/05 - Config en fonction des serveur LCS / SLIS 971 972 if [ "$LCS_OU_SLIS" = "yes" ]; then 973 974 echo -e "$COLPARTIE" 975 echo "Section 6: " 976 echo "---------- " 977 echo -e "$COLTXT\c " 978 echo -e "Configuration automatique du positionnement de l'IP du SLIS ou LCS dans MySQL...\c " 979 if [ ! -z "$SLIS_IP" ]; then 980 echo "UPDATE params SET value=\"$SLIS_IP\" WHERE name=\"slisip\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 981 echo "UPDATE params SET value=\"$SLIS_IP\" WHERE name=\"ntpserv\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 982 echo "UPDATE params SET value=\"http://${SLIS_IP}:2000\" WHERE name=\"slis_url\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 983 else 984 if [ ! -z "$SLIS_LCS" ]; then 985 echo "UPDATE params SET value=\"$LCS_IP\" WHERE name=\"lcsip\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 986 fi 987 fi 988 989 else 990 991 echo -e "$COLPARTIE" 992 echo "Section 6: " 993 echo "---------- " 994 echo -e "$COLTXT\c " 995 echo -e "Présence éventuelle de SLIS ou LCS ...\n" 996 IPOK="NO" 997 REPONSE="" 998 while [ "$REPONSE" != "1" -a "$REPONSE" != "2" -a "$REPONSE" != "3" ] 999 do 1000 echo -e "$COLTXT\c " 1001 echo -e "Quel type de serveur de communication avez-vous sur votre réseau ?\n" 1002 echo -e "$COLTXT\c " 1003 echo -e " ${COLTXT}(${COLCHOIX}1${COLTXT}) Un SLIS\n " 1004 echo -e " ${COLTXT}(${COLCHOIX}2${COLTXT}) Un LCS\n " 1005 echo -e " ${COLTXT}(${COLCHOIX}3${COLTXT}) Vous n'avez pas de tel serveur de communication\n " 1006 echo -e "$COLTXT\c " 1007 echo -e "Votre choix: $COLSAISIE\c " 1008 read REPONSE 1009 1010 case $REPONSE in 1011 1) 1012 while [ "$IPOK" != "o" ] 1013 do 1014 echo -e "${COLTXT}Quelle est l'adresse IP de votre SLIS ? ${COLSAISIE}\c " 1015 read SLIS_IP 1016 echo -e "$COLTXT\c " 1017 echo -e "Votre SLIS a comme IP ${COLINFO}${SLIS_IP}${COLTXT}" 1018 IPOK="" 1019 while [ "$IPOK" != "o" -a "$IPOK" != "n" ] 1020 do 1021 echo -e "$COLTXT\c " 1022 echo -e "Est-ce correct ? (${COLCHOIX}o/n${COLTXT}) ${COLSAISIE}\c " 1023 read IPOK 1024 done 1025 done 1026 echo -e "$COLTXT\c " 1027 echo "Ecriture des informations relatives au SLIS dans MySQL..." 1028 echo -e "$COLCMD\c " 1029 echo "UPDATE params SET value=\"$SLIS_IP\" WHERE name=\"slisip\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 1030 echo "UPDATE params SET value=\"$SLIS_IP\" WHERE name=\"ntpserv\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 1031 echo "UPDATE params SET value=\"http://${SLIS_IP}:2000\" WHERE name=\"slis_url\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 1032 DEFAULTGID="600" 1033 DEFAULTSHELL="/dev/null" 1034 echo "UPDATE params SET value=\"$DEFAULTGID\" WHERE name=\"defaultgid\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 1035 echo "UPDATE params SET value=\"$DEFAULTSHELL\" WHERE name=\"defaultshell\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 1036 ;; 1037 1038 2) 1039 while [ "$IPOK" != "o" ] 1040 do 1041 echo -e "${COLTXT}Quelle est l'adresse IP de votre LCS ? ${COLSAISIE}\c " 1042 read LCS_IP 1043 echo -e "$COLTXT\c " 1044 echo -e "Votre LCS a comme IP ${COLINFO}${LCS_IP}${COLTXT}" 1045 IPOK="" 1046 while [ "$IPOK" != "o" -a "$IPOK" != "n" ] 1047 do 1048 echo -e "$COLTXT\c " 1049 echo -e "Est-ce correct ? (${COLCHOIX}o/n${COLTXT}) ${COLSAISIE}\c " 1050 read IPOK 1051 done 1052 done 1053 echo -e "$COLTXT\c " 1054 echo "Ecriture de l'IP de LCS dans MySQL..." 1055 echo -e "$COLCMD\c " 1056 echo "UPDATE params SET value=\"$LCS_IP\" WHERE name=\"lcsip\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 1057 ;; 1058 1059 3) 1060 echo -e "$COLTXT\c " 1061 echo "Ecriture de l'information dans MySQL..." 1062 echo -e "$COLCMD\c " 1063 echo "UPDATE params SET value=\"http://${SE3IP}:909\" WHERE name=\"urlse3\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 1064 ;; 1065 1066 *) 1067 echo -e "${COLERREUR}\n" 1068 echo "Choix erroné. Veuillez recommencer svp." 1069 echo -e "$COLTXT\c " 1070 ;; 1071 1072 esac 1073 done 1074 1075 fi 1076 1077 [ ! -z `getent group | grep "lcs-users:x:108"` ] && /usr/share/se3/sbin/se3_modif_gidNumber.sh 1078 1079 if [ ! -e ${MIGFOLDER} ]; then 1080 /usr/share/se3/sbin/install_quotas.sh 1081 fi 1082 ### ajout keyser version 1.0 ### 1083 1084 # ajout des chemins de se3 ds le path de root 1085 echo 'PATH="${PATH}:/usr/share/se3/sbin:/usr/share/se3/scripts"' >> /root/.profile 1086 1087 #Fermeture de ssh sauf pour root 1088 touch /etc/nologin 1089 1090 #Passage aux mots de pass cryptés 1091 /usr/sbin/pwconv 1092 1093 # Droit sur public, certains etab desactivent public, donc on le fait la et pas dans permse3 1094 setfacl -m u::rwx /var/se3/Docs/public 1095 setfacl -m g::rwx /var/se3/Docs/public 1096 setfacl -m o::rwx /var/se3/Docs/public 1097 setfacl -m d:u::rwx /var/se3/Docs/public 1098 setfacl -m d:g::rwx /var/se3/Docs/public 1099 setfacl -m d:o::rwx /var/se3/Docs/public 1100 setfacl -m d:o::rwx /var/se3/Progs/rw 1101 1102 # au cas ou il existerait un ancien fichier pref.js, on le vire.... 1103 rm -f /etc/skel/user/profil/appdata/Mozilla/Firefox/Profiles/default/prefs.js 1104 1105 # Instanciation 1106 echo "Instanciation en cours..." 1107 /usr/share/se3/sbin/instance_se3.sh 1108 1109 # Relance apache2se 1110 echo -e "$COLCMD" 1111 /etc/init.d/apache2se restart 1112 /etc/init.d/apache2 restart 1113 echo -e "$COLTXT" 1114 1115 1116 # installation script intégration clients linux - deplace ds se3-domain 1117 1118 1119 # installation des zorn tools 1120 echo -e "$COLTITRE" 1121 echo "Configuration du compte adminse3" 1122 echo -e "$COLTXT" 1123 XPPASS=`echo "SELECT value FROM params WHERE name='xppass'" | mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW -N` 1124 #saisir pass si necessaire 1125 # a Faire 1126 if [ -z "$XPPASS" ]; then 1127 XPPASS_RDM="$(makepasswd)" 1128 echo -e "${COLTXT}Lors de la jonction au domaine des machines Win 2000/XP, un compte local adminse3 sera créé.\nVeuillez saisir un mot de passe pour ce compte [${COLDEFAUT}${XPPASS_RDM}${COLTXT}] ${COLSAISIE}" 1129 read XPPASS 1130 echo -e "${COLTXT}" 1131 [ -z "$XPPASS" ] && XPPASS="$XPPASS_RDM" 1132 echo "UPDATE params SET value=\"$XPPASS\" WHERE name=\"xppass\""|mysql -h $MYSQLIP se3db -u se3db_admin -p$SE3PW 1133 fi 1134 1135 ### Creation adminse3 dans annuaire et mise en place privileges admin-adminse3 pour mise au domaine 1136 /usr/share/se3/sbin/create_adminse3.sh 1137 1138 ### remise en place des droits par défaut 1139 /usr/share/se3/scripts/permse3 1140 1141 1142 # actualisation du cache des parametres : 1143 /usr/share/se3/includes/config.inc.sh -clpbmsdf 1144 1145 # Lance postinst de nos dependances, ces dernieres ayant besoin de l'execution du script d'install 1146 [ -f /var/lib/dpkg/info/se3-logonpy.postinst ] && /var/lib/dpkg/info/se3-logonpy.postinst configure 1147 [ -f /var/lib/dpkg/info/se3-domain.postinst ] && /var/lib/dpkg/info/se3-domain.postinst configure 1148 1149 #Lancement maj intermediaires si necessaire 1150 cd /var/cache/se3_install/ 1151 ./maj_se.sh 1152 1153 1154 echo -e "$COLTITRE" 1155 echo "Terminé!" 1156 echo -e "$COLTXT"
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 |