[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-domain/root/ -> rejoint_se3_ubuntu-9.10.sh (source)

   1  #!/bin/bash
   2  #
   3  # 
   4  ########################################################################
   5  ##### Script permettant de joindre un client ubuntu au serveur SE3 #####
   6  ##### version du 17 mars 2010
   7  #
   8  # Auteur : Mickael POIRAULT Mickael.Poirault@ac-poitiers.fr
   9  # Modifie par JC Mousseron pour la version Ubuntu 9.10
  10  # Modifie par Philippe Peter pour:
  11  # -integration Kubuntu 9.10
  12  # -choix du nom de la machine 
  13  # -rendre Administrateur SE3 sudo root
  14  # -désactiver l'affichage des utilisateurs antérieurs pour Ubuntu, Xubuntu et Ubuntu-netbook-remix
  15  # -remontée éventuelle dans l'inventaire OCS du SE3
  16  # -ajout de nscd
  17  # -ajout de cron.apt pour que l'installation des maj de securite se fasse automatiquement
  18  # -test renseignement variables
  19  # -passage d'arguments au script
  20  # -rapport d'integration horodaté nommé SE3_rapport_integration_UXuKubuntu-9.10 dans le /root de la machine Buntu
  21  
  22  # Tests effectues avec Ubuntu 9.10, Kubuntu 9.10, Xubuntu 9.10, Ubuntu-netbook-remix9.10 et version alpha3 Ubuntu 10.04
  23  # sur des serveurs SE3 Sarge 1.15.12 ou Etch 1.18.2 ou 1.5
  24  #   
  25  ########################################################################
  26  
  27  DATERAPPORT=$(date +%F+%0kh%0Mmin)
  28  
  29  {
  30  
  31  # Section a completer avec vos parametres ! 
  32  SE3_SERVER="###SE3_SERVER###"
  33  SE3_IP="###SE3_IP###"
  34  BASE_DN="###BASE_DN###"
  35  LDAP_SERVER="###LDAP_SERVER###"
  36  NTPSERVERS="###NTPSERVER###"
  37  NTPOPTIONS="###NTPOPTIONS###"
  38  TLS="###TLS###"
  39  IOCHARSET="###IOCHARSET###"
  40  ##########################################
  41  
  42  # aide obtenue avec passage des arguments --help ou -h à l'appel du script
  43  
  44  if [ "$1" == "--help" -o "$1" == "-h" ]; then
  45      echo ""
  46      echo "-----------------------------------------------"
  47      echo "AIDE concernant l'utilisation du script d'integration des clients Buntu sur le serveur SAMBA EDU 3"
  48      echo "Ce script permet de faire rejoindre un client ubuntu au serveur SE3."
  49      echo "Les tests ont ete effectues avec Ubuntu 9.10, Xubuntu9.10, Ubuntu-netbook-remix9.10, Kubuntu 9.10 et Ubuntu10.04 version alpha3 avec des serveurs Samba Edu3 Sarge ou Etch.  "
  50      echo "Ce script est a lancer sur le client en root via la commande sudo:"
  51      echo "Exemple: sudo $0" 
  52      echo "Des arguments peuvent être passés à l'appel du script, lire la suite..."
  53      echo ""
  54      echo "-----------------------------------------------"
  55      echo ""
  56      echo "Les donnees indiquées dans le script sont :"
  57      echo "  $SE3_SERVER : nom du serveur Se3"
  58      echo "  $SE3_IP : ip du serveur Se3"
  59      echo "  $BASE_DN : base dn de l'annuaire"
  60      echo "  $LDAP_SERVER : addresse du serveur ldap"
  61      echo "  $NTPSERVERS : serveur de temps pour ntpdate"
  62      echo "  $NTPOPTIONS : options pour ntpdate"
  63      echo "  $TLS : options TLS pour le serveur ldap"
  64      echo "  $IOCHARSET : locale pour pam_mount.conf.xml"
  65      echo ""
  66      echo "A la suite de l'execution du script un rapport nommé SE3_rapport_integration_UXuKubuntu-9.10_date sera disponible dans le dossier /root du client Buntu."
  67      echo ""
  68      echo "-----------------------------------------------"
  69      echo ""
  70      echo "Usage n°1: Appel du script sans argument"
  71      echo "Commande à saisir: $0"
  72      echo "Exemple: $0" 
  73      echo "Le script demandera:"
  74      echo "-le nom de la machine"
  75      echo "-la possibilité d installer automatiquement les mises à jour de sécurité"
  76      echo "-la possibilité de remonter les informations de la machine dans l inventaire du SE3"
  77      echo "-la possibilité de redémarrer la machine à la fin de son intégration."
  78      echo ""
  79      echo "Dans les possibilités suivantes de passage d'arguments au lancement du script la logique est la suivante:"
  80      echo "-si le script a un premier argument en appel c'est le nom_de_la_machine"
  81      echo "-et par défaut pas d installation des maj de sécurité sauf si l'on positionne le second argument à o"
  82      echo "-et par défaut remontée des infos de la machine dans l'inventaire sauf si l'on positionne le troisième argument à n"
  83      echo "-et par défaut redémarrage de la machine à la fin de l intégration sauf si l'on positionne le quatrième argument à n."
  84      echo ""
  85      echo "Usage n°2: Appel du script avec un seul argument"
  86      echo "Commande à saisir: $0 nomdelamachine"
  87      echo "Exemple: $0 superbuntu" 
  88      echo "installera la machine avec le nom superbuntu SANS automatisation de l installation des màj de sécurité, AVEC remontée des infos dans l'inventaire et AVEC redemarrage automatique."
  89      echo ""
  90      echo "Usage n°3: Appel du script avec deux arguments"
  91      echo "Commande à saisir: $0 nomdelamachine o"
  92      echo "Exemple: $0 superbuntu o" 
  93      echo "installera la machine avec le nom superbuntu AVEC automatisation de l installation des màj de sécurité, et AVEC remontée des infos dans l'inventaire et AVEC redemarrage automatique."
  94      echo ""
  95      echo "Usage n°4: Appel du script avec trois arguments"
  96      echo "Commande à saisir: $0 nomdelamachine o n"
  97      echo "Exemple: $0 superbuntu o n" 
  98      echo "installera la machine avec le nom superbuntu AVEC automatisation de l installation des màj de sécurité, et SANS remontée des infos dans l'inventaire et AVEC redemarrage automatique."
  99      echo ""
 100      echo "Usage n°5: Appel du script avec quatre arguments"
 101      echo "Commande à saisir: $0 nomdelamachine o n n"
 102      echo "Exemple: $0 superbuntu o n n"
 103      echo "installera la machine avec le nom superbuntu AVEC automatisation de l installation des màj de sécurité, et SANS remontée des infos dans l'inventaire et SANS redemarrage automatique."
 104      echo ""
 105      echo "-----------------------------------------------"
 106      echo ""
 107      echo "Différences entre Ubuntu9.10, Xubuntu9.10, Kubuntu9.10 et Ubuntu-netbook-remix9.10:"
 108      echo ""
 109      echo "Pour Ubuntu9.10:"
 110      echo "tous les partages réseaux apparaissent sur le bureau."
 111      echo "Par souci de clarification les partages réseaux ou dossiers se trouvant sur le serveur SE3 sont nommés avec le suffixe _SE3."
 112      echo ""
 113      echo "Pour Xubuntu9.10:"
 114      echo "le répertoire personnel apparaît sur le bureau"
 115      echo "pour les autres partages réseau cliquer sur l'icone « système de fichiers » puis media et le dossier au nom de l'utilisateur"
 116      echo "Par souci de clarification les partages réseaux ou dossiers se trouvant sur le serveur SE3 sont nommés avec le suffixe _SE3."
 117      echo ""
 118      echo "Pour Kubuntu9.10:"
 119      echo "le répertoire personnel apparaît dans « Poste de travail », il se nomme « Dossier personnel »"
 120      echo "pour les autres partages réseau cliquer sur l'icone « Poste de travail » puis racine puis media et le dossier au nom de l'utilisateur"
 121      echo "Par souci de clarification les partages réseaux ou dossiers se trouvant sur le serveur SE3 sont nommés avec le suffixe _SE3."
 122      echo ""
 123      echo "Ubuntu-netbook-remix9.10:"
 124      echo "cliquer sur « Fichiers et Dossiers » dans la barre latérale de gauche. Puis cliquer sur n'importe quel dossier et utiliser le menu « Aller à » ou bien « Affichage/panneau latéral » et vous accéderez aux partages réseaux."
 125      echo "Par souci de clarification les partages réseaux ou dossiers se trouvant sur le serveur SE3 sont nommés avec le suffixe _SE3."
 126      echo ""
 127      echo "-----------------------------------------------"
 128      echo ""
 129      echo "Des arguments peuvent être passés à l'appel du script, lire plus haut les exmples d'usage."
 130      echo ""
 131      echo "-----------------------------------------------"
 132      exit 0
 133  fi
 134  
 135  # test renseignement variables fondamentales
 136  
 137  #if [ $SE3_SERVER = "###SE3_SERVER###" ]; then
 138  if [ -z "$SE3_SERVER}" -o "$SE3_SERVER:0:1}" = "#" ]; then
 139  echo " Erreur: la variable SE3_SERVER n'est pas renseignée."
 140  exit
 141  fi
 142  
 143  #if [ $SE3_IP = "###SE3_IP###" ]; then
 144  if [ -z "$SE3_IP}" -o "$SE3_IP:0:1}" = "#" ]; then
 145  echo " Erreur: la variable SE3_IP n'est pas renseignée."
 146  exit
 147  fi
 148  
 149  #if [ $BASE_DN = "###BASE_DN###" ]; then
 150  if [ -z "$BASE_DN" -o "$BASE_DN" = "#" ]; then
 151  echo " Erreur: la variable BASE_DN n'est pas renseignée."
 152  exit
 153  fi
 154  
 155  #if [ $LDAP_SERVER = "###LDAP_SERVER###" ]; then
 156  if [ -z "$LDAP_SERVER}" -o "$LDAP_SERVER:0:1}" = "#" ]; then
 157  echo " Erreur: la variable LDAP_SERVER n'est pas renseignée."
 158  exit
 159  fi
 160  
 161  # attribution des arguments eventuels passés en ligne de commande 
 162  # par défaut:
 163  # - pas d'automatisation de l'installation des mises à jour de sécurité
 164  # - remontée des infos machine Buntu dans l'inventaire (que le module inventaire OCS soit activé ou non sur le SE3)
 165  # - redémarrage automatique en fin d'intégration de la machine Buntu
 166  
 167  CRONAPT=n 
 168  OCS=o
 169  REBOOT=o
 170  
 171  # affichage date version script
 172  
 173  echo "La version du script utilisé est datée du 17 mars 2010."
 174  
 175  # test des arguments passés à l'appel du script
 176  
 177  case "$#" in
 178    0)
 179          echo "Aucun paramètre passé en appel du script."
 180          echo "Quel nom choisissez-vous pour cette machine?"
 181          read NOMMACH
 182          echo "Le nom choisi pour la machine est $NOMMACH."
 183          echo "Voulez-vous configurer la machine pour que les mises à jour de securite soient effectuees automatiquement?"
 184          PS3='Répondre par o ou n:'   # le prompt
 185          LISTE=("[o] oui" "[n]  non")  # liste de choix disponibles
 186          select CHOIX in "$LISTE[@]}" ; do
 187              case $REPLY in
 188                  1|o)
 189                  echo "Vous avez choisi l installation automatique des mises à jour de securite."
 190                  CRONAPT=o
 191                  break
 192                  ;;
 193                  2|n)
 194                  echo "Vous avez refuse l installation automatique des mises à jour de securite."
 195                  CRONAPT=n
 196                  break
 197                  ;;
 198              esac
 199          done
 200  
 201          echo "A la fin de l'installation, voulez-vous une remontée des informations dans l'inventaire du serveur SE3?"
 202          PS3='Répondre par o ou n:'   # le prompt
 203          LISTE=("[o] oui" "[n]  non")  # liste de choix disponibles
 204          select CHOIX in "$LISTE[@]}" ; do
 205              case $REPLY in
 206                  1|o)
 207                  echo "Vous avez choisi la remontee des infos de la machine dans l'inventaire."
 208                  OCS=o
 209                  break
 210                  ;;
 211                  2|n)
 212                  echo "Vous avez refuse la remontee des infos de la machine dans l'inventaire."
 213                  OCS=n
 214                  break
 215                  ;;
 216              esac
 217          done
 218  
 219          echo "A la suite de l'integration de la machine, voulez-vous qu'elle redémarre automatiquement?"
 220          PS3='Répondre par o ou n:'   # le prompt
 221          LISTE=("[o] oui" "[n]  non")  # liste de choix disponibles
 222          select CHOIX in "$LISTE[@]}" ; do
 223              case $REPLY in
 224                  1|o)
 225                  echo "Vous avez choisi le redémarrage automatique de la machine."
 226                  REBOOT=o
 227                  break
 228                  ;;
 229                  2|n)
 230                  echo "Vous avez refuse le redémarrage automatique de la machine."
 231                  REBOOT=n
 232                  break
 233                  ;;
 234              esac
 235          done
 236        ;;
 237      1)
 238          echo "Le nom de la machine choisi est $1"
 239          echo "En l'absence d'autres arguments:"
 240          echo "-l'automatisation de l'installation des mises à jour de sécurité n'aura pas lieu"
 241          echo "-une tentative de remontée des infos du client dans l'inventaire OCS du SE3 aura lieu"
 242          echo "-le redémarrage automatique du client Buntu aura lieu après son intégration." 
 243          NOMMACH=$1
 244      ;;
 245      2)
 246          echo "Le nom de la machine  choisi est $1 et vous avez répondu: "
 247          echo "$2 pour l'automatisation de l'installation des mises à jour de sécurité CRONAPT"
 248          echo "-une tentative de remontée des infos du client dans l'inventaire OCS du SE3 aura lieu"
 249          echo "-le redémarrage automatique du client Buntu aura lieu après son intégration."
 250          NOMMACH=$1
 251          if [ $2 = "o" ] || [ $2 = "n" ];then
 252          CRONAPT=$2
 253          else
 254          echo "Le second argument n'est pas valable. Il ne peut être que o ou n."
 255          exit
 256          fi
 257      ;;
 258      3)
 259          echo "Le nom de la machine  choisi est $1 et vous avez répondu: "
 260          echo "$2 pour l'automatisation de l'installation des mises à jour de sécurité CRONAPT"
 261          echo "$3 pour la remontée des infos du client dans l'inventaire OCS du SE3"
 262          echo "-le redémarrage automatique du client Buntu aura lieu après son intégration."
 263          NOMMACH=$1
 264          if [ $2 = "o" ] || [ $2 = "n" ];then
 265          CRONAPT=$2
 266          else
 267          echo "Le second argument n'est pas valable. Il ne peut être que o ou n."
 268          exit
 269          fi
 270          if [ $3 = "o" ] || [ $3 = "n" ];then
 271          OCS=$3
 272          else
 273          echo "Le troisième argument n'est pas valable. Il ne peut être que o ou n."
 274          exit
 275          fi
 276      ;;
 277      4)
 278          echo "Le nom de la machine  choisi est $1 et vous avez répondu: "
 279          echo "$2 pour l'automatisation de l'installation des mises à jour de sécurité CRONAPT"
 280          echo "$3 pour la remontée des infos du client dans l'inventaire OCS du SE3"
 281          echo "$4 pour le redémarrage automatique du client Buntu après son intégration."
 282          NOMMACH=$1
 283          if [ $2 = "o" ] || [ $2 = "n" ];then
 284          CRONAPT=$2
 285          else
 286          echo "Le second argument n'est pas valable. Il ne peut être que o ou n."
 287          exit
 288          fi
 289          if [ $3 = "o" ] || [ $3 = "n" ];then
 290          OCS=$3
 291          else
 292          echo "Le troisième argument n'est pas valable. Il ne peut être que o ou n."
 293          exit
 294          fi
 295          if [ $4 = "o" ] || [ $4 = "n" ];then
 296          REBOOT=$4
 297          else
 298          echo "Le quatrième argument n'est pas valable. Il ne peut être que o ou n."
 299          exit
 300          fi
 301      
 302  esac
 303  
 304  # test presence caractere interdit dans le nom de la machine
 305  
 306  test="$(echo $NOMMACH | sed -e 's/[^[:alnum:]]//g')"
 307  if [ "$test" != "$NOMMACH" ] ; then
 308  echo "Erreur: le nom choisi pour la machine $NOMMACH contient un caractère non alphanumérique."
 309  exit
 310  else
 311  echo "C'est bon: le nom choisi de la machine $NOMMACH ne contient que des caractères alphanumériques."
 312  fi
 313  
 314  
 315  # comment rendre le script "cretin-resistant", par Christian Westphal
 316  
 317  TEST_CLIENT=`ifconfig | grep ":$SE3_IP "`
 318  if [ ! -z "$TEST_CLIENT" ]; then
 319      echo "Malheureux... Ce script est a executer sur les clients Linux, pas sur le serveur."
 320      exit
 321  fi
 322  
 323  [ -e /var/www/se3 ] && echo "Malheureux... Ce script est a executer sur les clients Linux, pas sur le serveur." && exit 1
 324  
 325  
 326  # Recuperation de la date et de l'heure pour la sauvegarde des fichiers
 327  
 328  DATE=$(date +%F+%0kh%0Mmin)
 329  
 330  # Modification du fichier /etc/apt/sources.list
 331  
 332  echo "Modification du /etc/apt/sources.list"
 333  
 334  cp /etc/apt/sources.list /etc/apt/sources.list_sauve_$DATE
 335  perl -pi -e "s&deb cdrom&# deb cdrom&" /etc/apt/sources.list
 336  
 337  # Mise a jour de la machine
 338  
 339  export DEBIAN_FRONTEND=noninteractive
 340  export DEBIAN_PRIORITY=high
 341  
 342  echo "Mise a jour de la machine..."
 343  
 344  # Resolution du probleme de lock
 345  
 346  if [ -e "/var/lib/dpkg/lock" ]; then
 347      rm -f /var/lib/dpkg/lock
 348  fi
 349  
 350  # On lance une maj
 351  
 352  apt-get update
 353  apt-get dist-upgrade -y
 354  
 355  # On rechange le sources.list
 356  
 357  perl -pi -e 's&^#.*deb http://(.*)universe$&deb http://$1 universe&' /etc/apt/sources.list
 358  perl -pi -e 's&^# deb-src http://(.*)universe$&deb-src http://$1 universe&' /etc/apt/sources.list
 359  perl -pi -e 's&^#.*deb http://(.*)restricted$&deb http://$1 restricted&' /etc/apt/sources.list
 360  
 361  apt-get update
 362  
 363  # Installation des paquets necessaires
 364  
 365  echo "Installation des paquets necessaires:"
 366  
 367  echo "Ne rien remplir, les fichiers sont configures/modifies automatiquement apres..."
 368  
 369  apt-get install --assume-yes libnss-ldap  libpam-ldap lsof libpam-mount smbfs samba-common ntpdate ssh ocsinventory-agent ldap-utils nscd cron-apt
 370  
 371  # Configuration des fichiers
 372  
 373  echo "Configuration des fichiers pour Samba Edu 3..."
 374  
 375  # Configuration du fichier /etc/hosts
 376  
 377  
 378  echo "Configuration du fichier /etc/hosts"
 379  
 380  cp /etc/hosts /etc/hosts_sauve_$DATE
 381  OK_SE3=`cat /etc/hosts | grep $SE3_SERVER`
 382  if [ -z "$OK_SE3" ]; then
 383      echo "$SE3_IP    $SE3_SERVER" >> /etc/hosts
 384  fi
 385  
 386  # Configuration du fichier /etc/ldap.conf
 387  
 388  echo "Configuration du fichier /etc/ldap.conf"
 389  
 390  cp /etc/ldap.conf /etc/ldap.conf_sauve_$DATE
 391  echo "
 392  # /etc/ldap.conf
 393  # Configuration pour Sambaedu3
 394  
 395  host $LDAP_SERVER
 396  base $BASE_DN
 397  ldap_version 3
 398  port 389
 399  bind_policy soft
 400  pam_password md5" > /etc/ldap.conf
 401  
 402  # Verification présence du nom machine choisi dans le LDAP
 403  
 404  ldapsearch -h $SE3_SERVER -b "ou=Computers,$BASE_DN" -xL cn=$NOMMACH > resultat_recherche_nom_machine_annuaire && echo "La recherche de la présence du nom dans l annuaire a eu lieu:" &
 405  wait
 406  grep -wq numEntries resultat_recherche_nom_machine_annuaire
 407  if [ $? -eq 0 ]
 408  then 
 409  echo "Ce nom est déjà utilisé."
 410  echo "----------------------"
 411  cat resultat_recherche_nom_machine_annuaire
 412  echo "----------------------"
 413  echo ""
 414  echo "Relancez le script, en choisissant un nom de machine non présent dans l'annuaire :-)"
 415  exit 0
 416  else
 417  echo "Ce nom n'est pas utilisé, donc le script continue."    
 418  ANCIENNOM=$(hostname)
 419  cp /etc/hosts /etc/hosts_sauve_$DATE
 420  sed "s/$ANCIENNOM/$NOMMACH/g" /etc/hosts
 421  cp /etc/hostname /etc/hostname_sauve_$DATE
 422  echo "$NOMMACH" > /etc/hostname
 423  fi
 424  
 425  # Configuration du fichier /etc/nsswitch.conf
 426  
 427  echo "Configuration du fichier /etc/nsswitch.conf"
 428  
 429  cp /etc/nsswitch.conf /etc/nsswitch.conf_sauve_$DATE
 430  echo "
 431  # /etc/nsswitch.conf
 432  # Configuration pour SambaEdu3
 433  
 434  passwd:         files ldap
 435  group:          files ldap
 436  shadow:         files ldap
 437  
 438  hosts:          files dns
 439  networks:       files
 440  
 441  protocols:      db files
 442  services:       db files
 443  ethers:         db files
 444  rpc:            db files
 445  
 446  netgroup:       nis" > /etc/nsswitch.conf
 447  
 448  # Configuration du fichier /etc/pam.d/login
 449  
 450  echo "Configuration du fichier /etc/pam.d/login"
 451  
 452  cp /etc/pam.d/login /etc/pam.d/login_sauve_$DATE
 453  echo "
 454  # /etc/pam.d/login
 455  # Configuration pour SambaEdu3
 456  
 457  auth    requisite    pam_securetty.so
 458  auth    requisite    pam_nologin.so
 459  session    required    pam_env.so readenv=1
 460  @include common-auth
 461  @include common-account
 462  @include common-session
 463  session    required    pam_limits.so
 464  #session    optional    am_lastlog.so
 465  session    optional    pam_lastlog.so
 466  session    optional    pam_motd.so
 467  session    optional    pam_mail.so standard
 468  @include common-password" > /etc/pam.d/login
 469  
 470  # Configuration du fichier /etc/pam.d/common-auth
 471  
 472  echo "Configuration du fichier /etc/pam.d/common-auth"
 473  
 474  cp /etc/pam.d/common-auth /etc/pam.d/common-auth_sauve_$DATE
 475  echo "
 476  # /etc/pam.d/common-auth
 477  # Configuration pour SambaEdu3
 478  
 479  auth    optional    pam_group.so
 480  auth    optional    pam_mount.so
 481  auth    sufficient    pam_ldap.so    use_first_pass
 482  auth    required    pam_unix.so    use_first_pass" > /etc/pam.d/common-auth
 483  
 484  # Configuration du fichier /etc/pam.d/common-account
 485  
 486  echo "Configuration du fichier /etc/pam.d/common-account"
 487  
 488  cp /etc/pam.d/common-account /etc/pam.d/common-account_sauve_$DATE
 489  echo "
 490  # /etc/pam.d/common-account
 491  # Configuration pour SambaEdu3
 492  
 493  session required    pam_mkhomedir.so    skel=/etc/skel/
 494  account    sufficient    pam_ldap.so    use_first_pass
 495  account    required    pam_unix.so    use_first_pass" > /etc/pam.d/common-account
 496  
 497  # Configuration du fichier /etc/pam.d/common-session
 498  
 499  echo "Configuration du fichier /etc/pam.d/common-session"
 500  
 501  cp /etc/pam.d/common-session /etc/pam.d/common-session_sauve_$DATE
 502  echo "
 503  # /etc/pam.d/common-session
 504  # Configuration pour SambaEdu3
 505  
 506  session    optional    pam_mount.so
 507  session    required    pam_unix.so    use_first_pass" > /etc/pam.d/common-session
 508  
 509  # Configuration du fichier /etc/pam.d/common-password
 510  
 511  echo "Configuration du fichier /etc/pam.d/common-password"
 512  
 513  cp /etc/pam.d/common-password /etc/pam.d/common-password_sauve_$DATE
 514  echo "
 515  # /etc/pam.d/common-password
 516  # Configuration pour SambaEdu3
 517  
 518  password    required    pam_unix.so    nullok obscure min=8 md5" > /etc/pam.d/common-password
 519  
 520  # Configuration du fichier /etc/pam.d/sudo
 521  
 522  echo "Configuration du fichier /etc/pam.d/sudo"
 523  
 524  cp /etc/pam.d/sudo /etc/pam.d/sudo_sauve_$DATE
 525  echo "
 526  # /etc/pam.d/sudo
 527  # Configuration pour SambaEdu3
 528  # Modifie par P.Peter pour permettre a admin (Administrateur SE3) de sudoifier
 529  
 530  @include common-auth
 531  @include common-account" > /etc/pam.d/sudo
 532  
 533  #ajout de admin a la liste des suoders avec pouvoir de root
 534  
 535  cp -a /etc/sudoers /etc/sudoers_sauve_$DATE
 536  sed -i '/root /a\admin    ALL=(ALL) ALL' /etc/sudoers
 537  
 538  # Configuration du fichier /etc/security/group.conf
 539  
 540  echo "Configuration du fichier /etc/security/group.conf"
 541  
 542  cp /etc/security/group.conf /etc/security/group.conf_sauve_$DATE
 543  echo "
 544  # /etc/security/group.conf
 545  # Configuration pour SambaEdu3
 546  
 547  gdm;*;*;Al0000-2400;floppy,cdrom,audio,video,plugdev
 548  kdm;*;*;Al0000-2400;floppy,cdrom,audio,video,plugdev" > /etc/security/group.conf
 549  
 550  # Configuration du fichier /etc/pam.d/common-pammount
 551  # indispensable pour Kubuntu et fonctionnant avec Ubuntu et Xubuntu
 552  
 553  echo "Configuration du fichier /etc/pam.d/common-pammount"
 554  
 555  touch /etc/pam.d/common-pammount
 556  echo "
 557  # /etc/pam.d/common-pammount
 558  # Configuration pour SambaEdu3 et Kubuntu et Ubuntu et Xubuntu et Ubuntu-netbook-remix
 559  
 560  auth    optional    pam_mount.so use_first_pass
 561  session    optional    pam_mount_so" > /etc/pam.d/common-pammount
 562  
 563  if [ -f /etc/pam.d/kdm ];then
 564  echo "
 565  @include common-pammount">> /etc/pam.d/kdm
 566  fi
 567  if [ -f /etc/pam.d/gdm ];then
 568  echo "
 569  @include common-pammount">> /etc/pam.d/gdm
 570  fi
 571  
 572  # Correction du bug eventuel KDE Intel de retour en tty à la deconnexion de session
 573  
 574  if [ -f /etc/kde4/kdm/kdmrc ];then
 575  cp /etc/kde4/kdm/kdmrc /etc/kde4/kdm/kdmrc_sauve_$DATE
 576  sed -i '/ServerCmd/a\TerminateServer=true' /etc/kde4/kdm/kdmrc
 577  fi
 578  # Desactivation de l affichage de la liste des utilisateurs antérieurs
 579  
 580  if [ -f /usr/bin/gconftool-2 ];then
 581  sudo -u gdm gconftool-2 -t bool -s /apps/gdm/simple-greeter/disable_user_list true
 582  fi
 583  
 584  # Configuration du fichier /etc/security/pam_mount.conf.xml
 585  
 586  echo "Configuration du fichier /etc/security/pam_mount.conf.xml"
 587  
 588  cp /etc/security/pam_mount.conf.xml /etc/security/pam_mount.conf.xml_sauve_$DATE
 589  echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 590  
 591  <!--
 592  /etc/security/pam_mount.conf.xml
 593  Configuration pour SambaEdu3
 594  -->
 595  
 596  <pam_mount>
 597  <debug enable=\"1\" />
 598  <mkmountpoint enable=\"1\" remove=\"true\" />
 599  <fsckloop device=\"/dev/loop7\" />
 600  <mntoptions allow=\"nosuid,nodev,loop,encryption,fsck\" />
 601  <mntoptions require=\"nosuid,nodev\" />
 602  
 603  <path>/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin</path>
 604  
 605  <lsof>lsof %(MNTPT)</lsof>
 606  <fsck>fsck -p %(FSCKTARGET)</fsck>
 607  <losetup>losetup -p0 \"%(before=\\\"-e\\\" CIPHER)\" \"%(before=\\\"-k\\\" KEYBITS)\" %(FSCKLOOP) %(VOLUME)</losetup>
 608  <unlosetup>losetup -d %(FSCKLOOP)</unlosetup>
 609  <!--
 610  <cifsmount>mount -t cifs //%(SERVER)/%(VOLUME) %(MNTPT) -o \"username=%(USER)%(before=\\\",\\\" OPTIONS)\"</cifsmount>
 611  -->
 612  <cifsmount>mount.cifs //%(SERVER)/%(VOLUME) %(MNTPT) -o \"username=%(USER)%(before=\\\",\\\" OPTIONS)\"</cifsmount>
 613  <umount>umount.cifs %(MNTPT)</umount>
 614  
 615  
 616  <volume fstype=\"cifs\" server=\"$SE3_SERVER\" path=\"netlogon\" mountpoint=\"/home/netlogon\" user=\"*\" options=\"mapchars,serverino,nobrl,iocharset=$IOCHARSET\" />
 617  <volume fstype=\"cifs\" server=\"$SE3_SERVER\" path=\"%(USER)/Docs\" mountpoint=\"/home/%(USER)/Documents_SE3\" user=\"*\" options=\"uid=%(USER),gid=admins,mapchars,serverino,nobrl,noperm,iocharset=$IOCHARSET\" />
 618  
 619  
 620  #<volume fstype=\"cifs\" server=\"$SE3_SERVER\" path=\"%(USER)/profil\" mountpoint=\"/home/%(USER)/profil\" user=\"*\" options=\"uid=%(USER),gid=admins,mapchars,serverino,nobrl,noperm,iocharset=$IOCHARSET\" />
 621  #<volume fstype=\"cifs\" server=\"$SE3_SERVER\" path=\"Classes\" mountpoint=\"/media/%(USER)/Classes\" user=\"*\" options=\"uid=%(USER),gid=admins,setuids,mapchars,serverino,nobrl,noperm,iocharset=$IOCHARSET\" />
 622  <volume fstype=\"cifs\" server=\"$SE3_SERVER\" path=\"Classes\" mountpoint=\"/home/%(USER)/Classes_SE3\" user=\"*\" options=\"uid=%(USER),gid=admins,setuids,mapchars,serverino,nobrl,noperm,iocharset=$IOCHARSET\" />
 623  
 624  #<volume fstype=\"cifs\" server=\"$SE3_SERVER\" path=\"Docs\" mountpoint=\"/media/%(USER)/Partages\" user=\"*\" options=\"uid=%(USER),gid=admins,setuids,mapchars,serverino,nobrl,noperm,iocharset=$IOCHARSET\" />
 625  <volume fstype=\"cifs\" server=\"$SE3_SERVER\" path=\"Docs\" mountpoint=\"/home/%(USER)/Partage_Docs_SE3\" user=\"*\" options=\"uid=%(USER),gid=admins,setuids,mapchars,serverino,nobrl,noperm,iocharset=$IOCHARSET\" />
 626  #<volume fstype=\"cifs\" server=\"$SE3_SERVER\" path=\"%(USER)/profil/Bureau\" mountpoint=\"/home/%(USER)/Bureau\" user=\"*\" options=\"uid=%(USER),gid=admins,setuids,mapchars,serverino,nobrl,noperm,iocharset=$IOCHARSET\" />
 627  
 628  # ajout Philippe Peter car Progs peut etre utile à tous (avec wine) et admse3 et admhomes utiles a l'administrateur du se3
 629  #<volume fstype=\"cifs\" server=\"$SE3_SERVER\" path=\"Progs\" mountpoint=\"/media/%(USER)/Progs\" user=\"*\" options=\"uid=%(USER),gid=admins,setuids,mapchars,serverino,nobrl,noperm,iocharset=$IOCHARSET\" />
 630  #<volume fstype=\"cifs\" server=\"$SE3_SERVER\" path=\"admse3\" mountpoint=\"/media/%(USER)/admse3\" user=\"*\" options=\"uid=%(USER),gid=admins,setuids,mapchars,serverino,nobrl,noperm,iocharset=$IOCHARSET\" />
 631  #<volume fstype=\"cifs\" server=\"$SE3_SERVER\" path=\"admhomes\" mountpoint=\"/media/%(USER)/admhomes\" user=\"*\" options=\"uid=%(USER),gid=admins,setuids,mapchars,serverino,nobrl,noperm,iocharset=$IOCHARSET\" />
 632  
 633  <volume fstype=\"cifs\" server=\"$SE3_SERVER\" path=\"Progs\" mountpoint=\"/home/%(USER)/Progs_SE3\" user=\"*\" options=\"uid=%(USER),gid=admins,setuids,mapchars,serverino,nobrl,noperm,iocharset=$IOCHARSET\" />
 634  <volume fstype=\"cifs\" server=\"$SE3_SERVER\" path=\"admse3\" mountpoint=\"/home/%(USER)/admse3_SE3\" user=\"*\" options=\"uid=%(USER),gid=admins,setuids,mapchars,serverino,nobrl,noperm,iocharset=$IOCHARSET\" />
 635  <volume fstype=\"cifs\" server=\"$SE3_SERVER\" path=\"admhomes\" mountpoint=\"/home/%(USER)/admhomes_SE3\" user=\"*\" options=\"uid=%(USER),gid=admins,setuids,mapchars,serverino,nobrl,noperm,iocharset=$IOCHARSET\" />
 636  
 637  # fin ajout
 638  
 639  <msg-authpw>Mot de passe :</msg-authpw>
 640  <msg-sessionpw>Mot de passe :</msg-sessionpw>
 641  
 642  </pam_mount>" > /etc/security/pam_mount.conf.xml
 643  
 644  killall trackerd 2>/dev/null
 645  killall bluetooth-applet 2>/dev/null
 646  
 647  # Configuration du fichier /etc/default/ntpdate
 648  
 649  echo "Configuration du fichier /etc/default/ntpdate"
 650  
 651  cp /etc/default/ntpdate /etc/default/ntpdate_sauve_$DATE
 652  echo "
 653  # /etc/default/ntpdate
 654  # Configuration pour SambaEdu3
 655  # servers to check.   (Separate multiple servers with spaces.)
 656  NTPSERVERS=\"$NTPSERVERS\"
 657  #NTPSERVERS=\"$SE3_SERVER\"
 658  
 659  # additional options for ntpdate
 660  
 661  $NTPOPTIONS" > /etc/default/ntpdate
 662  
 663  # On recupere la cle publique du serveur
 664  
 665  mkdir -p /root/.ssh
 666  chmod 700 /root/.ssh
 667  cd /root/.ssh
 668  if [ -f "authorized_keys" ];then
 669  wget -o log_recuperation_cle_pub_se3_$DATE -O authorized_keys_se3 $SE3_IP:909/authorized_keys
 670  cat authorized_keys_se3 >> authorized_keys
 671  else
 672  wget -o log_recuperation_cle_pub_se3_$DATE -O authorized_keys $SE3_IP:909/authorized_keys
 673  fi
 674  chmod 400 /root/.ssh/authorized_keys
 675  cd /
 676  
 677  # Configuration du fichier /etc/nscd.conf
 678  
 679  echo "Configuration du fichier /etc/nscd.conf"
 680  
 681  cp /etc/nscd.conf /etc/nscd.conf_sauve_$DATE
 682  echo "
 683  #  Fichier de conf pour le Samba Edu 3
 684  # /etc/nscd.conf
 685  
 686      logfile            /var/log/nscd.log
 687      debug-level        0
 688  #    reload-count        5
 689      paranoia        no
 690  #    restart-interval    3600
 691  
 692      enable-cache        passwd        yes
 693      positive-time-to-live    passwd        1200
 694      negative-time-to-live    passwd        20
 695      suggested-size        passwd        211
 696      check-files        passwd        yes
 697      persistent        passwd        yes
 698      shared            passwd        yes
 699      max-db-size        passwd        33554432
 700      auto-propagate        passwd        yes
 701  
 702      enable-cache        group        yes
 703      positive-time-to-live    group        3600
 704      negative-time-to-live    group        60
 705      suggested-size        group        211
 706      check-files        group        yes
 707      persistent        group        yes
 708      shared            group        yes
 709      max-db-size        group        33554432
 710      auto-propagate        group        yes
 711  
 712  # hosts caching is broken with gethostby* calls, hence is now disabled
 713  # per default.  See /usr/share/doc/nscd/NEWS.Debian.
 714      enable-cache        hosts        no
 715      positive-time-to-live    hosts        3600
 716      negative-time-to-live    hosts        20
 717      suggested-size        hosts        211
 718      check-files        hosts        yes
 719      persistent        hosts        yes
 720      shared            hosts        yes
 721      max-db-size        hosts        33554432
 722  
 723      enable-cache        services    yes
 724      positive-time-to-live    services    28800
 725      negative-time-to-live    services    20
 726      suggested-size        services    211
 727      check-files        services    yes
 728      persistent        services    yes
 729      shared            services    yes
 730      max-db-size        services    33554432
 731  " > /etc/nscd.conf
 732  
 733  # Configuration de /etc/cron-apt pour n'installer que les maj de securite
 734  
 735  if [ $CRONAPT = "o" ] ; then
 736  echo "Configuration de /etc/cron-apt"
 737  
 738  less /etc/apt/sources.list|grep security > /etc/apt/security.sources.list
 739  
 740  cp /etc/cron-apt/config /etc/cron-apt/config_sauve_$DATE
 741  echo "
 742  # /etc/cron-apt/config
 743  # Configuration pour SambaEdu3
 744  
 745  OPTIONS=\"-o quiet=1 -o Dir::Etc::SourceList=/etc/apt/security.sources.list\"
 746  " > /etc/cron-apt/config
 747  
 748  echo "
 749  # Configuration pour Samba Edu3
 750  
 751  dist-upgrade -y -o APT::Get::Show-Upgraded=true
 752  " > /etc/cron-apt/action.d/5-install
 753  
 754  ln -s /usr/sbin/cron-apt /etc/cron.daily/cron-apt
 755  fi
 756  
 757  # On remonte un rapport ocsinventory si admin d'accord
 758  
 759  if [ $OCS = "o" ] ; then
 760  echo "Debut de la tentative de remontée dans l'inventaire du SE3."    
 761  ocsinventory-agent --server http://$SE3_IP:909/ocsinventory/ 2>&1
 762  echo "La tentative de remontée dans l inventaire du SE3 a eu lieu."
 763  fi
 764  
 765  # Fin de la configuration
 766  
 767  echo "Fin de l'installation."
 768  
 769  echo "ATTENTION : Seul les comptes ayant un shell peuvent se connecter"
 770  echo ""
 771  echo "Vous devez configurer les locale pour etre compatible avec Se3"
 772  echo "Il faut redémarrer la machine." 
 773  
 774  
 775  export DEBIAN_FRONTEND=dialog
 776  if [ $REBOOT = "n" ];then
 777  exit 
 778  fi
 779  reboot
 780  
 781  } | tee /root/SE3_rapport_integration_UXuKubuntu-9.10_$DATERAPPORT
 782  
 783  # si argument d'appel du script est --help ou -h effacement du rapport inutile de l'aide
 784  
 785  if [ "$1" == "--help" -o "$1" == "-h" ]; then
 786  rm /root/SE3_rapport_integration_UXuKubuntu-9.10_$DATERAPPORT
 787  fi
 788  exit 0


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