NiKaro127

Mount CIFS w/ authentication

Jan 29th, 2013
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.80 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Adresse IP du DC
  4. srv=10.92.0.3
  5. # Dossier Commun
  6. commun=$HOME/Documents/Commun
  7. # Dossier Personnel
  8. perso=$HOME/Documents/Personnel
  9. # Dossier Eleves (pour les profs)
  10. eleves=$HOME/Documents/Eleves
  11.  
  12. # Récupération des identifiants
  13. read -p "Saisissez votre nom d'utilisateur : " username
  14. read -s -p "Saisissez votre mot de passe : " password
  15.  
  16. # Création de dossiers si inexistants
  17. if ! [ -d $commun ]; then
  18.     mkdir $commun
  19. fi
  20. if ! [ -d $perso ]; then
  21.     mkdir $perso
  22. fi
  23.  
  24. # Fichier de sortie temporaire
  25. tmp=/tmp/ldapsearch.tmp
  26.  
  27. # Requête LDAP AD sur l'utilisateur
  28. ldapsearch -LLL -H ldap://$svr -b 'dc=stn,dc=lan' -D 'STN\'$username -w $password '(sAMAccountName='$username')' > $tmp
  29.  
  30. # Connexion du dossier Personnel
  31. sudo mount -t cifs //$svr/$username\$ $perso -o user=$username%$password
  32.  
  33. # Parcours du résultat de la requête
  34. while read line; do
  35.     # Si l'utilisateur appartient à un groupe élève
  36.     if [[ $line == 'memberOf: CN='*'_e'* ]]; then
  37.         # Récupération du nom de la classe
  38.         classe=${line#*'CN='}
  39.         classe=${classe%'_'*}
  40.         # Connexion du Commun de la classe
  41.         sudo mount -t cifs //$srv/$classe\$ $commun -o user=$username%$password,uid=$USER
  42.     fi
  43.     # Si l'utilisateur appartient au groupe profs
  44.     if [[ $line == 'memberOf: CN=Profs'* ]]; then
  45.         # Création du Eleves
  46.         if ! [ -d $eleves ]; then
  47.                 mkdir $eleves
  48.         fi
  49.         # Connexion du Commun des profs
  50.         sudo mount -t cifs //$srv/profs\$ $commun -o user=$username%$password,uid=$USER
  51.         # Connexion de dossier des élèves
  52.         sudo mount -t cifs //$srv/Eleves $eleves -o user=$username%$password,uid=$USER
  53.         fi
  54. done < $tmp
  55.  
  56. # Suppression du fichier temporaire
  57. rm $tmp
  58.  
  59. # Ouverture des dossiers montés
  60. nautilus $HOME/Documents
  61.  
  62. # Notification de connexion
  63. notify-send "Dossiers personnels connectés"
Advertisement
Add Comment
Please, Sign In to add comment