[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
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
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 |