[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/usr/share/se3/scripts/ -> echange_classes.sh (source)

   1  #!/bin/bash
   2  
   3  #Nom du dossier d'échange:
   4  echange="_echange"
   5  statut=""
   6  
   7  ladate=$(date +"%Y.%m.%d-%H.%M.%S")
   8  
   9  chemin_levee="/tmp"
  10  
  11  if [ ! -z "$1" -a -e "/var/se3/Classes/$1" ]; then
  12  
  13      if echo "$1" | grep "Classe_grp" > /dev/null ; then
  14          GRP_CLASSE=$(echo "$1" | sed -e "s/^Classe_grp_//")
  15      else
  16          GRP_CLASSE="$1"
  17      fi
  18      
  19      if [ "$2" = "etat" ]; then
  20          if [ ! -e "/var/se3/Classes/$1/$echange" ]; then
  21              statut="Non encore initialisé"
  22          else
  23              if getfacl /var/se3/Classes/$1/$echange 2> /dev/null | grep "^group:$GRP_CLASSE:rwx$" > /dev/null; then
  24                  statut="actif"
  25              else
  26                  statut="verrouille"
  27              fi
  28          fi
  29      else
  30          case "$2" in
  31              "verrouille")
  32  
  33                  if [ ! -e "/var/se3/Classes/$1/$echange" ]; then
  34                      mkdir -p /var/se3/Classes/$1/$echange
  35                      chown admin:nogroup /var/se3/Classes/$1/$echange
  36                      chmod 770 /var/se3/Classes/$1/$echange
  37                  fi
  38  
  39                  #Tous les droits pour tous les Profs
  40                  #(certains ne voient pas nécessairement le dossier var/se3/Classes/$1)
  41                  #c'est pourquoi je ne me suis pas embêté à trier quels profs...
  42  
  43                  #setfacl -R -m g:Profs:rwx /var/se3/Classes/$1/$echange
  44                  #setfacl -R -m d:g:Profs:rwx /var/se3/Classes/$1/$echange
  45                  #Cela serait inutile... droits hérités de /var/se3/Classes/$1
  46                  #Quoique... ça ne passe pas par Samba.
  47  
  48                  #Levée des droits pour tous les membres de la classe $1
  49                  setfacl -R -x g:$GRP_CLASSE /var/se3/Classes/$1/$echange
  50                  setfacl -R -x d:g:$GRP_CLASSE /var/se3/Classes/$1/$echange
  51  
  52                  if [ -e /var/www/se3/includes/config.inc.php ]; then
  53                      dbhost=`cat /var/www/se3/includes/config.inc.php | grep "dbhost=" | cut -d = -f 2 |cut -d \" -f 2`
  54                      dbname=`cat /var/www/se3/includes/config.inc.php | grep "dbname=" | cut -d = -f 2 |cut -d \" -f 2`
  55                      dbuser=`cat /var/www/se3/includes/config.inc.php | grep "dbuser=" | cut -d = -f 2 |cut -d \" -f 2`
  56                      dbpass=`cat /var/www/se3/includes/config.inc.php | grep "dbpass=" | cut -d = -f 2 |cut -d \" -f 2`
  57                  else
  58                      echo "Fichier de conf inaccessible"
  59                      exit 1
  60                  fi
  61  
  62                  acces_partage_public=$(echo "SELECT value FROM params WHERE name='autoriser_partage_public';"|mysql -N -h $dbhost -u $dbuser -p$dbpass $dbname)
  63                  if [ "$acces_partage_public" != "n" ]; then
  64                      #Interdiction d'accès à public:
  65                      setfacl -m g:$GRP_CLASSE:r /var/se3/Docs/public
  66                  fi
  67              ;;
  68              "actif")
  69                                                                  
  70                  if [ ! -e "/var/se3/Classes/$1/$echange" ]; then
  71                      mkdir -p /var/se3/Classes/$1/$echange
  72                      chown admin:nogroup /var/se3/Classes/$1/$echange
  73                      chmod 770 /var/se3/Classes/$1/$echange
  74                  fi
  75  
  76                  #echo "getfacl /var/se3/Classes/$1/$echange"
  77                  getfacl /var/se3/Classes/$1/$echange
  78  
  79                  #Tous les droits pour tous les membres de la classe $1
  80                  #echo "setfacl -R -m g:$GRP_CLASSE:rwx /var/se3/Classes/$1/$echange"
  81                  setfacl -R -m g:$GRP_CLASSE:rwx /var/se3/Classes/$1/$echange
  82                  #echo "setfacl -R -m d:g:$GRP_CLASSE:rwx /var/se3/Classes/$1/$echange"
  83                  setfacl -R -m d:g:$GRP_CLASSE:rwx /var/se3/Classes/$1/$echange
  84  
  85                  if [ -e /var/www/se3/includes/config.inc.php ]; then
  86                      dbhost=`cat /var/www/se3/includes/config.inc.php | grep "dbhost=" | cut -d = -f 2 |cut -d \" -f 2`
  87                      dbname=`cat /var/www/se3/includes/config.inc.php | grep "dbname=" | cut -d = -f 2 |cut -d \" -f 2`
  88                      dbuser=`cat /var/www/se3/includes/config.inc.php | grep "dbuser=" | cut -d = -f 2 |cut -d \" -f 2`
  89                      dbpass=`cat /var/www/se3/includes/config.inc.php | grep "dbpass=" | cut -d = -f 2 |cut -d \" -f 2`
  90                  else
  91                      echo "Fichier de conf inaccessible"
  92                      exit 1
  93                  fi
  94  
  95                  acces_partage_public=$(echo "SELECT value FROM params WHERE name='autoriser_partage_public';"|mysql -N -h $dbhost -u $dbuser -p$dbpass $dbname)
  96                  if [ "$acces_partage_public" != "n" ]; then
  97                      #Levée de l'interdiction d'accès à public:
  98                      #setfacl -m g:$1:rwx /var/se3/Docs/public
  99                      #echo "setfacl -x g:$GRP_CLASSE /var/se3/Docs/public"
 100                      setfacl -x g:$GRP_CLASSE /var/se3/Docs/public
 101                  fi
 102              ;;
 103          esac
 104      fi
 105  else
 106      #ERREUR: Pour le moment, je ne fais qu'une et une seule classe.
 107      echo "USAGE: Passer en paramètre \$1 le nom du dossier de classe"
 108      echo "       (correctement orthographié;o)."
 109      echo "       Et en paramètre \$2 'actif' pour autoriser l'accès à $echange"
 110      echo "       et n'importe quoi d'autre pour désactiver."
 111  fi
 112  
 113  echo $statut
 114  


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