[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

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

   1  #!/bin/bash
   2  #
   3  ##### Script permettant de rejoindre un client edubuntu au serveur SE3#####
   4  #
   5  # Auteur : Mickaël POIRAULT Mickael.Poirault@ac-poitiers.fr
   6  #
   7  ## $Id: rejoint_se3_ubuntu-7.10.sh 3657 2009-04-07 23:02:41Z keyser $ ##
   8  
   9  # Tests effectués avec une Edubuntu 7.10
  10  
  11  SE3_SERVER="###SE3_SERVER###"
  12  SE3_IP="###SE3_IP###"
  13  BASE_DN="###BASE_DN###"
  14  LDAP_SERVER="###LDAP_SERVER###"
  15  NTPSERVERS="###NTPSERVERS###"
  16  NTPOPTIONS="###NTPOPTIONS###"
  17  TLS="###TLS###"
  18  
  19  # valeurs systèmes
  20  DEBIAN_PRIORITY="critical"
  21  DEBIAN_FRONTEND="noninteractive"
  22  export DEBIAN_FRONTEND
  23  export DEBIAN_PRIORITY
  24  
  25  
  26  #Couleurs
  27  COLTITRE="\033[1;35m"
  28  COLPARTIE="\033[1;34m"
  29  
  30  COLTXT="\033[0;37m"
  31  COLCHOIX="\033[1;33m"
  32  COLDEFAUT="\033[0;33m"
  33  COLSAISIE="\033[1;32m"
  34  
  35  COLCMD="\033[1;37m"
  36  
  37  COLERREUR="\033[1;31m"
  38  COLINFO="\033[0;36m"
  39  
  40  if [ "$1" == "--help" -o "$1" == "-h" ]; then
  41      echo -e "$COLINFO"
  42      echo "Permet de faire rejoindre un client edubuntu au serveur SE3."
  43      echo "Les tests ont été effectués avec une ubuntu 7.10"
  44      echo "Ce script est à lancer sur le client en root."
  45      echo "Les données du serveur SE3 sont :"
  46      echo "  $SE3_SERVER : nom du serveur Se3"
  47      echo "  $SE3_IP : ip du serveur Se3"
  48      echo "  $BASE_DN : base dn de l'annuaire"
  49      echo "  $LDAP_SERVER : addresse du serveur ldap"
  50      echo "  $NTPSERVERS : serveur de temps pour ntpdate"
  51      echo "  $NTPOPTIONS : options pour ntpdate"
  52      echo "Usage : ./$0"
  53      echo "Ce script est distribué selon les termes de la licence GPL"
  54      echo "--help cette aide"
  55  
  56      echo -e "$COLTXT"
  57      exit
  58  fi
  59  
  60  # comment rendre le script "cretin-résistant", par Christian Westphal
  61  TEST_CLIENT=`ifconfig | grep ":$SE3_IP "`
  62  if [ ! -z "$TEST_CLIENT" ]; then
  63      echo "Malheureux... Ce script est a executer sur les clients Linux, pas sur le serveur."
  64      exit
  65  fi
  66  
  67  
  68  [ -e /var/www/se3 ] && echo "Malheureux... Ce script est a executer sur les clients Linux, pas sur le serveur." && exit 1
  69  # Récupération de la date et de l'heure pour la sauvegarde des fichiers
  70  
  71  DATE=$(date +%D_%Hh%M | sed -e "s§/§_§g")
  72  
  73  # Modification du fichier /etc/apt/sources.list
  74  echo -e "$COLPARTIE"
  75  echo "Modification du /etc/apt/sources.list"
  76  echo -e "$COLCMD\c"
  77  cp /etc/apt/sources.list /etc/apt/sources_sauve_$DATE.list
  78  perl -pi -e "s&deb cdrom&# deb cdrom&" /etc/apt/sources.list
  79  
  80  # Mise à jour de la machine
  81  echo -e "$COLPARTIE"
  82  echo "Mise à jour de la machine..."
  83  echo -e "$COLCMD\c"
  84  
  85  # Résolution du probleme de lock
  86  if [ -e "/var/lib/dpkg/lock" ]; then
  87      rm -f /var/lib/dpkg/lock
  88  fi
  89  
  90  # On lance une maj
  91  apt-get update
  92  apt-get dist-upgrade
  93  
  94  # On rechange le sources.list
  95  perl -pi -e 's&^#.*deb http://(.*)universe$&deb http://$1 universe&' /etc/apt/sources.list
  96  perl -pi -e 's&^# deb-src http://(.*)universe$&deb-src http://$1 universe&' /etc/apt/sources.list
  97  perl -pi -e 's&^#.*deb http://(.*)restricted$&deb http://$1 restricted&' /etc/apt/sources.list
  98  
  99  apt-get update
 100  
 101  # Installation des paquets nécessaires
 102  echo -e "$COLPARTIE"
 103  echo "Installation des paquets nécessaires:"
 104  echo -e "$COLTXT"
 105  echo "Ne rien remplir, les fichiers sont configurés/modifiés automatiquement après..."
 106  echo -e "$COLCMD\c"
 107  apt-get install --assume-yes libnss-ldap  libpam-ldap lsof libpam-mount smbfs samba-common ntpdate ocsinventory-agent
 108  
 109  # Suppression de gnome-mount pour que le montage des clés usb soit possible
 110  apt-get remove --assume-yes gnome-mount
 111  apt-get install --assume-yes pmount
 112  
 113  # Configuration des fichiers
 114  echo -e "$COLPARTIE"
 115  echo "Configuration des fichiers..."
 116  
 117  # Configuration du fichier /etc/hosts"
 118  echo -e "$COLTXT"
 119  echo "Configuration du fichier /etc/hosts"
 120  echo -e "$COLCMD\c"
 121  cp /etc/hosts /etc/hosts_sauve_$DATE
 122  OK_SE3=`cat /etc/hosts | grep $SE3_SERVER`
 123  if [ -z "$OK_SE3" ]; then
 124      echo "$SE3_IP    $SE3_SERVER" >> /etc/hosts
 125  fi
 126  
 127  TLS_OK="$TLS"
 128  if [ "$TLS_OK" = "1" ]; then
 129      REPONSE=""
 130      while [ "$REPONSE" != "o" -a "$REPONSE" != "n" ]
 131      do
 132          echo -e "$COLTXT"
 133          echo "Souhaitez vous activer TLS sur LDAP?"
 134          echo "(non testé avec la distrib Edubuntu...)"
 135          echo -e "Votre serveur semble le permettre [$COLCHOIX}o/n$COLTXT}]"
 136          read REPONSE
 137      done
 138  fi
 139  
 140  # Configuration du fichier /etc/ldap.conf
 141  echo -e "$COLTXT"
 142  echo "Configuration du fichier /etc/ldap.conf"
 143  echo -e "$COLCMD\c"
 144  cp /etc/ldap.conf /etc/ldap_sauve_$DATE.conf
 145  echo "
 146  # /etc/ldap.conf
 147  # Configuration pour Sambaedu3
 148  
 149  host $LDAP_SERVER
 150  base $BASE_DN
 151  ldap_version 3
 152  port 389
 153  bind_policy soft
 154  pam_password md5" > /etc/ldap.conf
 155  
 156  if [ "$REPONSE" = "o" -o "$REPONSE" = "O" ]
 157  then
 158  echo "
 159  ssl start_tls
 160  tls_checkpeer no" >> /etc/ldap.conf
 161  fi
 162  
 163  # Configuration du fichier /etc/nsswitch.conf
 164  echo -e "$COLTXT"
 165  echo "Configuration du fichier /etc/nsswitch.conf"
 166  echo -e "$COLCMD\c"
 167  cp /etc/nsswitch.conf /etc/nsswitch_sauve_$DATE.conf
 168  echo "
 169  # /etc/nsswitch.conf
 170  # Configuration pour SambaEdu3
 171  
 172  passwd:         files ldap
 173  group:          files ldap
 174  shadow:         files ldap
 175  
 176  hosts:          files dns
 177  networks:       files
 178  
 179  protocols:      db files
 180  services:       db files
 181  ethers:         db files
 182  rpc:            db files
 183  
 184  netgroup:       nis" > /etc/nsswitch.conf
 185  
 186  # Configuration du fichier /etc/pam.d/login
 187  echo -e "$COLTXT"
 188  echo "Configuration du fichier /etc/pam.d/login"
 189  echo -e "$COLCMD\c"
 190  cp /etc/pam.d/login /etc/pam.d/login_sauve_$DATE
 191  echo "
 192  # /etc/pam.d/login
 193  # Configuration pour SambaEdu3
 194  
 195  auth    requisite    pam_securetty.so
 196  auth    requisite    pam_nologin.so
 197  session    required    pam_env.so readenv=1
 198  @include common-auth
 199  @include common-account
 200  @include common-session
 201  session    required    pam_limits.so
 202  #session    optional    am_lastlog.so
 203  session    optional    pam_lastlog.so
 204  session    optional    pam_motd.so
 205  session    optional    pam_mail.so standard
 206  @include common-password" > /etc/pam.d/login
 207  
 208  # Configuration du fichier /etc/pam.d/common-auth
 209  echo -e "$COLTXT"
 210  echo "Configuration du fichier /etc/pam.d/common-auth"
 211  echo -e "$COLCMD\c"
 212  cp /etc/pam.d/common-auth /etc/pam.d/common-auth_sauve_$DATE
 213  echo "
 214  # /etc/pam.d/common-auth
 215  # Configuration pour SambaEdu3
 216  
 217  auth    optional    pam_group.so
 218  auth    optional    pam_mount.so
 219  auth    sufficient    pam_ldap.so    use_first_pass
 220  auth    required    pam_unix.so    use_first_pass" > /etc/pam.d/common-auth
 221  
 222  # Configuration du fichier /etc/pam.d/common-account
 223  echo -e "$COLTXT"
 224  echo "Configuration du fichier /etc/pam.d/common-account"
 225  echo -e "$COLCMD\c"
 226  cp /etc/pam.d/common-account /etc/pam.d/common-account_sauve_$DATE
 227  echo "
 228  # /etc/pam.d/common-account
 229  # Configuration pour SambaEdu3
 230  
 231  account    sufficient    pam_ldap.so    use_first_pass
 232  account    required    pam_unix.so    use_first_pass" > /etc/pam.d/common-account
 233  
 234  # Configuration du fichier /etc/pam.d/common-session
 235  echo -e "$COLTXT"
 236  echo "Configuration du fichier /etc/pam.d/common-session"
 237  echo -e "$COLCMD\c"
 238  cp /etc/pam.d/common-session /etc/pam.d/common-session_sauve_$DATE
 239  echo "
 240  # /etc/pam.d/common-session
 241  # Configuration pour SambaEdu3
 242  
 243  session    optional    pam_mount.so
 244  session    required    pam_unix.so    use_first_pass" > /etc/pam.d/common-session
 245  
 246  # Configuration du fichier /etc/pam.d/common-password
 247  echo -e "$COLTXT"
 248  echo "Configuration du fichier /etc/pam.d/common-password"
 249  echo -e "$COLCMD\c"
 250  cp /etc/pam.d/common-password /etc/pam.d/common-password_sauve_$DATE
 251  echo "
 252  # /etc/pam.d/common-password
 253  # Configuration pour SambaEdu3
 254  
 255  password    required    pam_unix.so    nullok obscure min=8 md5" > /etc/pam.d/common-password
 256  
 257  # Configuration du fichier /etc/pam.d/sudo
 258  echo -e "$COLTXT"
 259  echo "Configuration du fichier /etc/pam.d/sudo"
 260  echo -e "$COLCMD\c"
 261  cp /etc/pam.d/sudo /etc/pam.d/sudo_sauve_$DATE
 262  echo "
 263  # /etc/pam.d/sudo
 264  # Configuration pour SambaEdu3
 265  
 266  auth    required    pam_unix.so    nullok_secure
 267  @include common-account" > /etc/pam.d/sudo
 268  
 269  # Configuration du fichier /etc/security/group.conf
 270  echo -e "$COLTXT"
 271  echo "Configuration du fichier /etc/security/group.conf"
 272  echo -e "$COLCMD\c"
 273  cp /etc/security/group.conf /etc/security/group_sauve_$DATE.conf
 274  echo "
 275  # /etc/security/group.conf
 276  # Configuration pour SambaEdu3
 277  
 278  gdm;*;*;Al0000-2400;floppy,cdrom,audio,video,plugdev
 279  kdm;*;*;Al0000-2400;floppy,cdrom,audio,video,plugdev" > /etc/security/group.conf
 280  
 281  TROUVE_DOSSIER(){
 282      retour=""
 283      for dossier in /bin /sbin /usr/bin /usr/sbin
 284      do
 285          ls $dossier/$1 2> /dev/null 1>&2
 286          if [ "$?" = "0" ]; then
 287              retour=$dossier
 288          fi
 289      done
 290  
 291      echo "$retour"
 292  }
 293  
 294  chemin_lsof=$(TROUVE_DOSSIER lsof)
 295  chemin_losetup=$(TROUVE_DOSSIER losetup)
 296  chemin_mount=$(TROUVE_DOSSIER mount)
 297  chemin_umount=$(TROUVE_DOSSIER umount)
 298  chemin_smbmount=$(TROUVE_DOSSIER smbmount)
 299  chemin_smbumount=$(TROUVE_DOSSIER smbumount)
 300  chemin_fsck=$(TROUVE_DOSSIER fsck)
 301  chemin_mount_cifs=$(TROUVE_DOSSIER mount.cifs)
 302  
 303  # Configuration du fichier /etc/security/pam_mount.conf
 304  echo -e "$COLTXT"
 305  echo "Configuration du fichier /etc/security/pam_mount.conf"
 306  echo -e "$COLCMD\c"
 307  cp /etc/security/pam_mount.conf /etc/security/pam_mount_sauve_$DATE.conf
 308  echo "
 309  # /etc/security/pam_mount.conf
 310  # Configuration pour SambaEdu3
 311  
 312  debug 0
 313  mkmountpoint 1
 314  fsckloop /dev/loop7
 315  options_allow   nosuid,nodev,loop,encryption,fsck
 316  options_require nosuid,nodev
 317  
 318  lsof $chemin_lsof/lsof %(MNTPT)
 319  fsck $chemin_fsck/fsck -p %(FSCKTARGET)
 320  losetup $chemin_losetup/losetup -p0 \"%(before=\\\"-e\\\" CIPHER)\" \"%(before=\\\"-k\\\" KEYBITS)\" %(FSCKLOOP) %(VOLUME)
 321  unlosetup $chemin_losetup/losetup -d %(FSCKLOOP)
 322  #cifsmount /bin/mount -t cifs //%(SERVER)/%(VOLUME) %(MNTPT) -o \"username=%(USER)%(before=\\\",\\\" OPTIONS)\"
 323  cifsmount $chemin_mount_cifs/mount.cifs //%(SERVER)/%(VOLUME) %(MNTPT) -o \"username=%(USER)%(before=\\\",\\\" OPTIONS)\"
 324  #smbmount /usr/bin/smbmount   //%(SERVER)/%(VOLUME) %(MNTPT) -o \"username=%(USER)%(before=\\\",\\\" OPTIONS)\"
 325  #ncpmount /usr/bin/ncpmount   %(SERVER)/%(USER) %(MNTPT) -o \"pass-fd=0,volume=%(VOLUME)%(before=\\\",\\\" OPTIONS)\"
 326  #smbumount /usr/bin/smbumount %(MNTPT)
 327  #ncpumount /usr/bin/ncpumount %(MNTPT)
 328  # Linux supports lazy unmounting (-l).  May be dangerous for encrypted volumes.
 329  # May also break loopback mounts because loopback devices are not freed.
 330  # Need to unmount mount point not volume to support SMB mounts, etc.
 331  umount /usr/sbin/umountH.sh %(MNTPT)
 332  # On OpenBSD try \"/usr/local/bin/mount_ehd\" (included in pam_mount package).
 333  #lclmount /bin/mount -p0 -t %(FSTYPE) %(VOLUME) %(MNTPT) \"%(before=\\\"-o\\\" OPTIONS)\"
 334  #cryptmount /bin/mount -t crypt \"%(before=\\\"-o\\\" OPTIONS)\" %(VOLUME) %(MNTPT)
 335  #nfsmount /bin/mount %(SERVER):%(VOLUME) %(MNTPT) \"%(before=\\\"-o\\\" OPTIONS)\"
 336  # For BSD: mntagain mount_null %(PREVMNTPT) %(MNTPT)
 337  # For Solaris: mntagain mount -F lofs %(PREVMNTPT) %(MNTPT)
 338  #mntcheck /bin/mount # For BSD's (don't have /etc/mtab)
 339  #pmvarrun /usr/sbin/pmvarrun -u %(USER) -d -o %(OPERATION)
 340  
 341  #volume * cifs $SE3_SERVER netlogon /home/netlogon mapchars,serverino,nobrl,iocharset=iso8859-15 - -
 342  volume * cifs $SE3_SERVER & /home/& uid=&,gid=root,mapchars,serverino,nobrl,iocharset=iso8859-15 - -
 343  volume * cifs $SE3_SERVER Classes /home/&/Desktop/Classes uid=&,gid=root,mapchars,serverino,nobrl,noperm,iocharset=iso8859-15 - -
 344  volume * cifs $SE3_SERVER Progs /home/&/Progs uid=&,gid=root,mapchars,serverino,nobrl,noperm,iocharset=iso8859-15 - -
 345  volume * cifs $SE3_SERVER Docs /home/&/Desktop/Partages uid=&,gid=root,mapchars,serverino,nobrl,noperm,iocharset=iso8859-15 - - " > /etc/security/pam_mount.conf
 346  
 347  # Création du script de démontage des lecteurs réseaux : umountH.sh
 348  echo -e "$COLTXT"
 349  echo "Création du script de démontage des lecteurs réseaux : umountH.sh"
 350  echo -e "$COLCMD\c"
 351  touch /usr/sbin/umountH.sh
 352  chmod +x /usr/sbin/umountH.sh
 353  echo "
 354  #!/bin/bash
 355  #
 356  ##### Script permettant de démonter correctement le /home/user#####
 357  #
 358  # Auteur : Mickaël POIRAULT Mickael.Poirault@ac-poitiers.fr
 359  #
 360  
 361  
 362  if [ \"\$1\" == \"--help\" -o \"\$1\" == \"-h\" ]
 363  then
 364          echo \"Permet de démonter correctement le /home/user\"
 365          echo \"Ce script est lancé automatiquement par pam_mount\"
 366          echo \"Usage : /usr/sbin/umountH.sh /home/user\"
 367      echo \"Ce script est distribué selon les termes de la licence GPL\"
 368          echo \"--help cette aide\"
 369  
 370          exit
 371  fi
 372  
 373  killall trackerd 2>/dev/null
 374  killall bluetooth-applet 2>/dev/null
 375  
 376  # Détermination du répertoire à démonter
 377  homeUSER=\$1
 378  
 379  # Attendre la fin des processus qui utilisent le répertoire à démonter
 380  until [ ``\`$chemin_lsof/lsof \$homeUSER | wc -l\``` = \"0\" ]
 381          do
 382                  sleep 1
 383  done
 384  
 385  # Démontage du repertoire
 386  /bin/umount \$homeUSER" > /usr/sbin/umountH.sh
 387  
 388  # Configuration du fichier /etc/default/ntpdate
 389  echo -e "$COLTXT"
 390  echo "Configuration du fichier /etc/default/ntpdate"
 391  echo -e "$COLCMD\c"
 392  cp /etc/default/ntpdate /etc/default/ntpdate_sauve_$DATE
 393  echo "
 394  # /etc/default/ntpdate
 395  # Configuration pour SambaEdu3
 396  # servers to check.   (Separate multiple servers with spaces.)
 397  #NTPSERVERS=\"$NTPSERVERS\"
 398  NTPSERVERS=\"$SE3_SERVER\"
 399  
 400  # additional options for ntpdate
 401  $NTPOPTIONS" > /etc/default/ntpdate
 402  
 403  # conf ocs-inventory
 404  perl -pi -e "s&<OCSFSERVER>.*</OCSFSERVER>&<OCSFSERVER>$SE3_IP:909</OCSFSERVER>&" /etc/ocsinventory-client/ocsinv.conf
 405  
 406  # On remonte l'inventaire
 407  /usr/bin/ocsinventory-client.pl
 408  # On reload crond
 409  /etc/init.d/cron reload
 410  
 411  # Fin de la configuration
 412  echo -e "$COLTITRE"
 413  echo "Fin de l'installation."
 414  echo -e "$COLINFO"
 415  echo "ATTENTION : Seul les comptes ayant un shell peuvent se connecter"
 416  echo ""
 417  echo "Vous devez configurer les locale pour être compatible avec Se3"
 418  echo "pour cela faire un apt-get install locales et lire la doc sur www.sambaedu.org"
 419  echo ""
 420  echo "Les clients LTSP du serveur Edubuntu peuvent aussi se connecter"
 421  echo "sur le domaine SE3"
 422  echo "(voir documentation sur la configuration DHCP si les SE3 fait déjà DHCP)."
 423  echo -e "$COLTXT"
 424  
 425  
 426  DEBIAN_PRIORITY="high"
 427  DEBIAN_FRONTEND="dialog"
 428  export  DEBIAN_PRIORITY
 429  export  DEBIAN_FRONTEND
 430  
 431  exit 0


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