[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 #!/bin/bash 2 # 3 ##### Script permettant de rejoindre un client edubuntu au serveur SE3##### 4 # 5 # Auteur : Mickaël POIRAULT Mickael.Poirault@ac-versailles.fr 6 # Adaptation ubuntu 6.10 Philippe Chadefaux 7 # Adaptation edubuntu 6.10 Stephane Boireau 8 # 9 ## $Id: rejoint_se3_ubuntu-6.sh 1385 2006-11-19 19:12:45Z plouf $ ## 10 11 # Tests effectués avec une Edubuntu 6.10 upgradée en 7.04 12 13 # La Edubuntu 7.04 propose une version serveur avec serveur samba, ltsp,... qui pourrait entrer en conflit avec le SE3. 14 # Faire des tests avec Edubuntu 7.04 workstation, puis 15 # apt-get install ltsp-server openssh-server 16 # ltsp-build-client 17 # et renseigner correctement le serveur DHCP du SE3... 18 19 # Testé sur http://fr.releases.ubuntu.com/edubuntu/7.04/edubuntu-7.04-desktop-i386.iso 20 # avec apt-get install ltsp-server-standalone openssh-server, et ltsp-build-client 21 # mais le ltsp-server-standalone n'est pas idéal avec le DHCP du SE3. 22 # Attention: plusieurs DHCP sur le réseau, cela peut amener un échec du boot des clients LTSP. 23 24 25 SE3_SERVER="###SE3_SERVER###" 26 SE3_IP="###SE3_IP###" 27 BASE_DN="###BASE_DN###" 28 LDAP_SERVER="###LDAP_SERVER###" 29 NTPSERVERS="###NTPSERVERS###" 30 NTPOPTIONS="###NTPOPTIONS###" 31 TLS="###TLS###" 32 33 #Couleurs 34 COLTITRE="\033[1;35m" 35 COLPARTIE="\033[1;34m" 36 37 COLTXT="\033[0;37m" 38 COLCHOIX="\033[1;33m" 39 COLDEFAUT="\033[0;33m" 40 COLSAISIE="\033[1;32m" 41 42 COLCMD="\033[1;37m" 43 44 COLERREUR="\033[1;31m" 45 COLINFO="\033[0;36m" 46 47 if [ "$1" == "--help" -o "$1" == "-h" ]; then 48 echo -e "$COLINFO" 49 echo "Permet de faire rejoindre un client edubuntu au serveur SE3." 50 echo "Les tests ont été effectués avec une edubuntu 6.10 upgradée en 7.04" 51 echo "Ce script est à lancer sur le client en root." 52 echo "Les données du serveur SE3 sont :" 53 echo " $SE3_SERVER : nom du serveur Se3" 54 echo " $SE3_IP : ip du serveur Se3" 55 echo " $BASE_DN : base dn de l'annuaire" 56 echo " $LDAP_SERVER : addresse du serveur ldap" 57 echo " $NTPSERVERS : serveur de temps pour ntpdate" 58 echo " $NTPOPTIONS : options pour ntpdate" 59 echo "Usage : ./$0" 60 echo "Ce script est distribué selon les termes de la licence GPL" 61 echo "--help cette aide" 62 63 echo -e "$COLTXT" 64 exit 65 fi 66 67 # comment rendre le script "cretin-résistant", par Christian Westphal 68 TEST_CLIENT=`ifconfig | grep ":$SE3_IP "` 69 if [ ! -z "$TEST_CLIENT" ]; then 70 echo "Malheureux... Ce script est a executer sur les clients Linux, pas sur le serveur." 71 exit 72 fi 73 74 [ -e /var/www/se3 ] && echo "Malheureux... Ce script est a executer sur les clients Linux, pas sur le serveur." && exit 1 75 # On commence par récupérer la date et l'heure pour la sauvegarde des fichiers 76 77 DATE=$(date +%D_%Hh%M | sed -e "s§/§_§g") 78 79 # On modifie le fichier /etc/apt/sources.list 80 echo -e "$COLPARTIE" 81 echo "Modification du /etc/apt/sources.list" 82 echo -e "$COLCMD\c" 83 cp /etc/apt/sources.list /etc/apt/sources_sauve_$DATE.list 84 perl -pi -e "s&deb cdrom&# deb cdrom&" /etc/apt/sources.list 85 perl -pi -e 's&^# deb http://(.*)universe$&deb http://$1 universe&' /etc/apt/sources.list 86 perl -pi -e 's&^# deb-src http://(.*)universe$&deb-src http://$1 universe&' /etc/apt/sources.list 87 88 # On met à jour la machine 89 echo -e "$COLPARTIE" 90 echo "Mise à jour de la machine..." 91 echo -e "$COLCMD\c" 92 echo "Mise à jour de la machine" 93 94 # probleme de lock 95 if [ -e "/var/lib/dpkg/lock" ]; then 96 rm -f /var/lib/dpkg/lock 97 fi 98 99 apt-get update 100 apt-get dist-upgrade 101 102 # Installation des paquets nécessaires 103 echo -e "$COLPARTIE" 104 echo "Installation des paquets nécessaires:" 105 echo -e "$COLTXT" 106 echo "Ne rien remplir, les fichiers sont configurés/modifiés automatiquement après..." 107 echo -e "$COLCMD\c" 108 apt-get install --assume-yes libnss-ldap libpam-ldap lsof libpam-mount smbfs samba-common ntpdate 109 110 # Configuration des fichiers 111 echo -e "$COLPARTIE" 112 echo "Configuration des fichiers..." 113 114 echo -e "$COLTXT" 115 echo "Configuration du fichier /etc/hosts" 116 echo -e "$COLCMD\c" 117 cp /etc/hosts /etc/hosts_sauve_$DATE 118 OK_SE3=`cat /etc/hosts | grep $SE3_SERVER` 119 if [ -z "$OK_SE3" ]; then 120 echo "$SE3_IP $SE3_SERVER" >> /etc/hosts 121 fi 122 123 TLS_OK="$TLS" 124 if [ "$TLS_OK" = "1" ]; then 125 REPONSE="" 126 while [ "$REPONSE" != "o" -a "$REPONSE" != "n" ] 127 do 128 echo -e "$COLTXT" 129 echo "Souhaitez vous activer TLS sur LDAP?" 130 echo "(non testé avec la distrib Edubuntu...)" 131 echo -e "Votre serveur semble le permettre [$COLCHOIX}o/n$COLTXT}]" 132 read REPONSE 133 done 134 fi 135 136 137 # Configuration du fichier /etc/pam_ldap.conf 138 echo -e "$COLTXT" 139 echo "Configuration du fichier /etc/pam_ldap.conf" 140 echo -e "$COLCMD\c" 141 cp /etc/pam_ldap.conf /etc/pam_ldap_sauve_$DATE.conf 142 echo " 143 # /etc/pam_ldap.conf 144 # Configuration pour Sambaedu3 145 146 host $LDAP_SERVER 147 base $BASE_DN 148 ldap_version 3 149 port 389 150 bind_policy soft 151 pam_password md5" > /etc/pam_ldap.conf 152 153 if [ "$REPONSE" = "o" -o "$REPONSE" = "O" ] 154 then 155 echo " 156 ssl start_tls 157 tls_checkpeer no" >> /etc/pam_ldap.conf 158 fi 159 160 # Configuration du fichier /etc/libnss-ldap.conf 161 echo -e "$COLTXT" 162 echo "Configuration du fichier /etc/libnss-ldap.conf" 163 echo -e "$COLCMD\c" 164 cp /etc/libnss-ldap.conf /etc/libnss-ldap_sauve_$DATE.conf 165 echo " 166 # /etc/libnss-ldap.conf 167 # Configuration pour Sambaedu3 168 host $LDAP_SERVER 169 base $BASE_DN 170 ldap_version 3 171 port 389 172 bind_policy soft" > /etc/libnss-ldap.conf 173 174 if [ "$REPONSE" = "O" -o "$REPONSE" = "o" ] 175 then 176 echo " 177 ssl start_tls 178 tls_checkpeer no" >> /etc/libnss-ldap.conf 179 fi 180 181 # Configuration du fichier /etc/nsswitch.conf 182 echo -e "$COLTXT" 183 echo "Configuration du fichier /etc/nsswitch.conf" 184 echo -e "$COLCMD\c" 185 cp /etc/nsswitch.conf /etc/nsswitch_sauve_$DATE.conf 186 echo " 187 # /etc/nsswitch.conf 188 # Configuration pour SambaEdu3 189 190 passwd: files ldap 191 group: files ldap 192 shadow: files ldap 193 194 hosts: files dns 195 networks: files 196 197 protocols: db files 198 services: db files 199 ethers: db files 200 rpc: db files 201 202 netgroup: nis" > /etc/nsswitch.conf 203 204 # Configuration du fichier /etc/pam.d/login 205 echo -e "$COLTXT" 206 echo "Configuration du fichier /etc/pam.d/login" 207 echo -e "$COLCMD\c" 208 cp /etc/pam.d/login /etc/pam.d/login_sauve_$DATE 209 echo " 210 # /etc/pam.d/login 211 # Configuration pour SambaEdu3 212 213 auth requisite pam_securetty.so 214 auth requisite pam_nologin.so 215 session required pam_env.so readenv=1 216 @include common-auth 217 @include common-account 218 @include common-session 219 session required pam_limits.so 220 #session optional am_lastlog.so 221 session optional pam_lastlog.so 222 session optional pam_motd.so 223 session optional pam_mail.so standard 224 @include common-password" > /etc/pam.d/login 225 226 # Configuration du fichier /etc/pam.d/common-auth 227 echo -e "$COLTXT" 228 echo "Configuration du fichier /etc/pam.d/common-auth" 229 echo -e "$COLCMD\c" 230 cp /etc/pam.d/common-auth /etc/pam.d/common-auth_sauve_$DATE 231 echo " 232 # /etc/pam.d/common-auth 233 # Configuration pour SambaEdu3 234 235 auth optional pam_group.so 236 auth optional pam_mount.so 237 auth sufficient pam_ldap.so use_first_pass 238 auth required pam_unix.so use_first_pass" > /etc/pam.d/common-auth 239 240 # Configuration du fichier /etc/pam.d/common-account 241 echo -e "$COLTXT" 242 echo "Configuration du fichier /etc/pam.d/common-account" 243 echo -e "$COLCMD\c" 244 cp /etc/pam.d/common-account /etc/pam.d/common-account_sauve_$DATE 245 echo " 246 # /etc/pam.d/common-account 247 # Configuration pour SambaEdu3 248 249 account sufficient pam_ldap.so use_first_pass 250 account required pam_unix.so use_first_pass" > /etc/pam.d/common-account 251 252 # Configuration du fichier /etc/pam.d/common-session 253 echo -e "$COLTXT" 254 echo "Configuration du fichier /etc/pam.d/common-session" 255 echo -e "$COLCMD\c" 256 cp /etc/pam.d/common-session /etc/pam.d/common-session_sauve_$DATE 257 echo " 258 # /etc/pam.d/common-session 259 # Configuration pour SambaEdu3 260 261 session optional pam_mount.so 262 session required pam_unix.so use_first_pass" > /etc/pam.d/common-session 263 264 # Configuration du fichier /etc/pam.d/common-password 265 echo -e "$COLTXT" 266 echo "Configuration du fichier /etc/pam.d/common-password" 267 echo -e "$COLCMD\c" 268 cp /etc/pam.d/common-password /etc/pam.d/common-password_sauve_$DATE 269 echo " 270 # /etc/pam.d/common-password 271 # Configuration pour SambaEdu3 272 273 password required pam_unix.so nullok obscure min=8 md5" > /etc/pam.d/common-password 274 275 # Configuration du fichier /etc/pam.d/sudo 276 echo -e "$COLTXT" 277 echo "Configuration du fichier /etc/pam.d/sudo" 278 echo -e "$COLCMD\c" 279 cp /etc/pam.d/sudo /etc/pam.d/sudo_sauve_$DATE 280 echo " 281 # /etc/pam.d/sudo 282 # Configuration pour SambaEdu3 283 284 auth required pam_unix.so nullok_secure 285 @include common-account" > /etc/pam.d/sudo 286 287 288 289 290 291 # Configuration du fichier /etc/pam.d/cron 292 echo -e "$COLTXT" 293 echo "Configuration du fichier /etc/pam.d/cron" 294 echo -e "$COLCMD\c" 295 cp /etc/pam.d/cron /etc/pam.d/cron_sauve_$DATE 296 echo " 297 # /etc/pam.d/cron 298 # Configuration pour SambaEdu3 pour ne pas utiliser les common-auth,... modifiés 299 300 #==================== 301 #@include common-auth 302 auth required pam_unix.so nullok_secure 303 #==================== 304 305 auth required pam_env.so 306 307 #==================== 308 #@include common-account 309 account required pam_unix.so 310 #==================== 311 312 #==================== 313 #@include common-session 314 session required pam_unix.so 315 session optional pam_foreground.so 316 #==================== 317 318 # Sets up user limits, please define limits for cron tasks 319 # through /etc/security/limits.conf 320 session required pam_limits.so 321 " > /etc/pam.d/cron 322 323 324 325 326 327 # Configuration du fichier /etc/security/group.conf 328 echo -e "$COLTXT" 329 echo "Configuration du fichier /etc/security/group.conf" 330 echo -e "$COLCMD\c" 331 cp /etc/security/group.conf /etc/security/group_sauve_$DATE.conf 332 echo " 333 # /etc/security/group.conf 334 # Configuration pour SambaEdu3 335 336 gdm;*;*;Al0000-2400;floppy,cdrom,audio,video,plugdev 337 kdm;*;*;Al0000-2400;floppy,cdrom,audio,video,plugdev" > /etc/security/group.conf 338 339 TROUVE_DOSSIER(){ 340 retour="" 341 for dossier in /bin /sbin /usr/bin /usr/sbin 342 do 343 ls $dossier/$1 2> /dev/null 1>&2 344 if [ "$?" = "0" ]; then 345 retour=$dossier 346 fi 347 done 348 349 echo "$retour" 350 } 351 352 chemin_lsof=$(TROUVE_DOSSIER lsof) 353 chemin_losetup=$(TROUVE_DOSSIER losetup) 354 chemin_mount=$(TROUVE_DOSSIER mount) 355 chemin_umount=$(TROUVE_DOSSIER umount) 356 chemin_smbmount=$(TROUVE_DOSSIER smbmount) 357 chemin_smbumount=$(TROUVE_DOSSIER smbumount) 358 chemin_fsck=$(TROUVE_DOSSIER fsck) 359 chemin_mount_cifs=$(TROUVE_DOSSIER mount.cifs) 360 361 # Configuration du fichier /etc/security/pam_mount.conf 362 echo -e "$COLTXT" 363 echo "Configuration du fichier /etc/security/pam_mount.conf" 364 echo -e "$COLCMD\c" 365 cp /etc/security/pam_mount.conf /etc/security/pam_mount_sauve_$DATE.conf 366 echo " 367 # /etc/security/pam_mount.conf 368 # Configuration pour SambaEdu3 369 370 debug 0 371 mkmountpoint 1 372 fsckloop /dev/loop7 373 options_allow nosuid,nodev,loop,encryption,fsck 374 options_require nosuid,nodev 375 376 lsof $chemin_lsof/lsof %(MNTPT) 377 fsck $chemin_fsck/fsck -p %(FSCKTARGET) 378 losetup $chemin_losetup/losetup -p0 \"%(before=\\\"-e\\\" CIPHER)\" \"%(before=\\\"-k\\\" KEYBITS)\" %(FSCKLOOP) %(VOLUME) 379 unlosetup $chemin_losetup/losetup -d %(FSCKLOOP) 380 #cifsmount /bin/mount -t cifs //%(SERVER)/%(VOLUME) %(MNTPT) -o \"username=%(USER)%(before=\\\",\\\" OPTIONS)\" 381 cifsmount $chemin_mount_cifs/mount.cifs //%(SERVER)/%(VOLUME) %(MNTPT) -o \"username=%(USER)%(before=\\\",\\\" OPTIONS)\" 382 #smbmount /usr/bin/smbmount //%(SERVER)/%(VOLUME) %(MNTPT) -o \"username=%(USER)%(before=\\\",\\\" OPTIONS)\" 383 #ncpmount /usr/bin/ncpmount %(SERVER)/%(USER) %(MNTPT) -o \"pass-fd=0,volume=%(VOLUME)%(before=\\\",\\\" OPTIONS)\" 384 #smbumount /usr/bin/smbumount %(MNTPT) 385 #ncpumount /usr/bin/ncpumount %(MNTPT) 386 # Linux supports lazy unmounting (-l). May be dangerous for encrypted volumes. 387 # May also break loopback mounts because loopback devices are not freed. 388 # Need to unmount mount point not volume to support SMB mounts, etc. 389 umount /usr/sbin/umountH.sh %(MNTPT) 390 # On OpenBSD try \"/usr/local/bin/mount_ehd\" (included in pam_mount package). 391 #lclmount /bin/mount -p0 -t %(FSTYPE) %(VOLUME) %(MNTPT) \"%(before=\\\"-o\\\" OPTIONS)\" 392 #cryptmount /bin/mount -t crypt \"%(before=\\\"-o\\\" OPTIONS)\" %(VOLUME) %(MNTPT) 393 #nfsmount /bin/mount %(SERVER):%(VOLUME) %(MNTPT) \"%(before=\\\"-o\\\" OPTIONS)\" 394 # For BSD: mntagain mount_null %(PREVMNTPT) %(MNTPT) 395 # For Solaris: mntagain mount -F lofs %(PREVMNTPT) %(MNTPT) 396 #mntcheck /bin/mount # For BSD's (don't have /etc/mtab) 397 #pmvarrun /usr/sbin/pmvarrun -u %(USER) -d -o %(OPERATION) 398 399 #volume * cifs $SE3_SERVER netlogon /home/netlogon mapchars,serverino,nobrl,iocharset=iso8859-15 - - 400 volume * cifs $SE3_SERVER & /home/& uid=&,gid=root,mapchars,serverino,nobrl,iocharset=iso8859-15 - - 401 volume * cifs $SE3_SERVER Classes /home/&/Desktop/Classes uid=&,gid=root,mapchars,serverino,nobrl,noperm,iocharset=iso8859-15 - - 402 volume * cifs $SE3_SERVER Progs /home/&/Progs uid=&,gid=root,mapchars,serverino,nobrl,noperm,iocharset=iso8859-15 - - 403 volume * cifs $SE3_SERVER Docs /home/&/Desktop/Partages uid=&,gid=root,mapchars,serverino,nobrl,noperm,iocharset=iso8859-15 - - " > /etc/security/pam_mount.conf 404 405 # Création du script de démontage des lecteurs réseaux : umountH.sh 406 echo -e "$COLTXT" 407 echo "Création du script de démontage des lecteurs réseaux : umountH.sh" 408 echo -e "$COLCMD\c" 409 touch /usr/sbin/umountH.sh 410 chmod +x /usr/sbin/umountH.sh 411 echo " 412 #!/bin/bash 413 # 414 ##### Script permettant de démonter correctement le /home/user##### 415 # 416 # Auteur : Mickaël POIRAULT Mickael.Poirault@ac-versailles.fr 417 # 418 419 if [ \"\$1\" == \"--help\" -o \"\$1\" == \"-h\" ] 420 then 421 echo \"Permet de démonter correctement le /home/user\" 422 echo \"Ce script est lancé automatiquement par pam_mount\" 423 echo \"Usage : /usr/sbin/umountH.sh /home/user\" 424 echo \"Ce script est distribué selon les termes de la licence GPL\" 425 echo \"--help cette aide\" 426 427 exit 428 fi 429 430 # Détermination du répertoire à démonter 431 homeUSER=\$1 432 433 # Attendre la fin des processus qui utilisent le répertoire à démonter 434 until [ ``\`$chemin_lsof/lsof \$homeUSER | wc -l\``` = \"0\" ] 435 do 436 sleep 1 437 done 438 439 # Démontage du repertoire 440 /bin/umount \$homeUSER" > /usr/sbin/umountH.sh 441 442 443 # Mise en place d'un script de nettoyage en cron pour les sessions LTSP 444 echo -e "$COLTXT" 445 echo "Création d'un script de démontage des ressources pour les clients LTSP" 446 echo -e "$COLCMD\c" 447 mkdir -p /opt/bin 448 echo '#!/bin/sh 449 450 # Script de démontage des ressources... 451 # 452 # Auteur: Stephane Boireau 453 # Dernière modification: 08/01/2010 454 455 fichlog=/var/log/teste_et_demonte.log 456 debug=0 457 458 /bin/mount | /bin/grep " on /home/" | /usr/bin/cut -d " " -f 1 | /usr/bin/cut -d "/" -f 4 | while read user 459 do 460 if [ "$debug" = "1" ]; then 461 echo "===================" >> $fichlog 462 /bin/date >> $fichlog 463 fi 464 465 # Dans le cas d un login en console, on a seulement un processus "-bash" 466 test=$(/usr/bin/who|grep "^$user ") 467 if [ -z "$test" ]; then 468 # On met quand meme un deuxieme test, mais cela ne devrait pas se produire (who vide x-session-manager tournant quand meme) 469 test=$(/bin/ps aux | /usr/bin/tr "\t" " " | /bin/egrep "^$user " | /bin/grep "x-session-manager$") 470 if [ -z "$test" ]; then 471 /bin/ps aux | /usr/bin/tr "\t" " " | /bin/grep "^$user " | sed -e "s/ \{2,\}/ /" | /usr/bin/cut -d " " -f 2 | while read C 472 do 473 echo -e "On tue le(s) processus \\c" >> $fichlog 474 if [ "$debug" = "1" ]; then 475 echo -e "$C \\c" >> $fichlog 476 fi 477 /bin/kill $C 478 done 479 480 /bin/mount | /bin/grep " on /home/$user/Desktop" | /usr/bin/cut -d " " -f 3 | while read B 481 do 482 if [ "$debug" = "1" ]; then 483 echo "Demontage de $B" >> $fichlog 484 fi 485 /bin/umount $B >> $fichlog 486 done 487 488 if /bin/mount | /bin/grep /home/$user/Progs > /dev/null; then 489 if [ "$debug" = "1" ]; then 490 echo "Demontage de /home/$user/Progs" >> $fichlog 491 fi 492 /bin/umount /home/$user/Progs >> $fichlog 493 fi 494 495 if /bin/mount | /bin/grep /home/$user > /dev/null; then 496 if [ "$debug" = "1" ]; then 497 echo "Demontage de /home/$user" >> $fichlog 498 fi 499 /bin/umount /home/$user >> $fichlog 500 fi 501 else 502 if [ "$debug" = "1" ]; then 503 echo "$user est toujours connecte." >> $fichlog 504 fi 505 fi 506 else 507 if [ "$debug" = "1" ]; then 508 echo "$user est toujours connecte." >> $fichlog 509 fi 510 fi 511 done 512 ' > /opt/bin/teste_et_demonte.sh 513 chmod +x /opt/bin/teste_et_demonte.sh 514 echo "*/5 * * * * root /opt/bin/teste_et_demonte.sh" > /etc/cron.d/teste_et_demonte 515 chmod +x /etc/cron.d/teste_et_demonte 516 517 518 # Configuration du fichier /etc/default/ntpdate 519 echo -e "$COLTXT" 520 echo "Configuration du fichier /etc/default/ntpdate" 521 echo -e "$COLCMD\c" 522 cp /etc/default/ntpdate /etc/default/ntpdate_sauve_$DATE 523 echo " 524 # /etc/default/ntpdate 525 # Configuration pour SambaEdu3 526 # servers to check. (Separate multiple servers with spaces.) 527 #NTPSERVERS=\"$NTPSERVERS\" 528 NTPSERVERS=\"$SE3_SERVER\" 529 530 # additional options for ntpdate 531 $NTPOPTIONS" > /etc/default/ntpdate 532 533 # Fin de la configuration 534 echo -e "$COLTITRE" 535 echo "Fin de l'installation." 536 echo -e "$COLINFO" 537 echo "ATTENTION : Seul les comptes ayant un shell peuvent se connecter" 538 echo "" 539 echo "Vous devez configurer les locale pour être compatible avec Se3" 540 echo "pour cela faire un apt-get install locale et lire la doc sur www.sambaedu.org" 541 echo "" 542 echo "Les clients LTSP du serveur Edubuntu peuvent aussi se connecter" 543 echo "sur le domaine SE3" 544 echo "(voir documentation sur la configuration DHCP si les SE3 fait déjà DHCP)." 545 echo -e "$COLTXT"
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |