From 363682991efee752d903810b1b878f7464fb91c2 Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Mon, 2 Jan 2012 08:16:55 +0000 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20des=20traitements=20possibl?= =?UTF-8?q?e=20de=20fixperms=20(report=20r3121)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * -l login du compte concerné (/var/alternc/html/l/login) * -u uid (gid unix associé au compte concerné) * -d sous_repertoire (/var/alternc/html/l/login/sous_repertoire) * sous_repertoire est un chemin relatif de profondeur n * Les droits seront corrigés pour l'ensemble des sous repertoires repondant à la contrainte : /var/alternc/html/l/login/sous_repertoire Il n'est pas neccessaire d'utiliser -l ou -u Le comportement initial est conservé * si pas d'arguments alors on fixe les droits de l'ensemble de /var/alternc/html * si on fournit un autre parametre on annule le traitement avec message d'erreur --- src/fixperms.sh | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/src/fixperms.sh b/src/fixperms.sh index 7d0a70bf..ac8bccd3 100755 --- a/src/fixperms.sh +++ b/src/fixperms.sh @@ -29,6 +29,41 @@ # ---------------------------------------------------------------------- # +#Default Query : fixperms for all account +query="SELECT uid,login FROM membres" +sub_dir="" + +#Two optionals argument +# -l string : a specific login to fix +# -u interger : a specifi uid to fix +while getopts "l:u:d:" optname + do + case "$optname" in + "l") + query="SELECT uid,login FROM membres WHERE login LIKE '$OPTARG'" + ;; + "u") + query="SELECT uid,login FROM membres WHERE uid LIKE '$OPTARG'" + ;; + "d") + sub_dir="$OPTARG" + ;; + "?") + echo "Unknown option $OPTARG - stop processing" + exit + ;; + ":") + echo "No argument value for option $OPTARG - stop processing" + exit + ;; + *) + # Should not occur + echo "Unknown error while processing options" + exit + ;; + esac + done + CONFIG_FILE="/etc/alternc/local.sh" PATH=/sbin:/bin:/usr/sbin:/usr/bin @@ -55,7 +90,7 @@ doone() { echo "Setting rights and ownership for user $LOGIN having gid $GID" fi INITIALE=`echo $LOGIN |cut -c1` - REP="$ALTERNC_LOC/html/$INITIALE/$LOGIN" + REP="$ALTERNC_LOC/html/$INITIALE/$LOGIN/$sub_dir" find $REP -type d -exec chmod g+s \{\} \; chown -R 33.$GID $REP @@ -63,5 +98,5 @@ doone() { done } -mysql --defaults-file=/etc/alternc/my.cnf -B -e "select uid,login from membres" |grep -v ^uid|doone +mysql --defaults-file=/etc/alternc/my.cnf -B -e "$query" |grep -v ^uid|doone