[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/var/cache/se3_install/ -> install_se3_wheezy.sh (source)

   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"


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1