[ 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-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
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 |