[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

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

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


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