109 lines
3.1 KiB
Bash
Executable File
109 lines
3.1 KiB
Bash
Executable File
#!/bin/bash -e
|
||
|
||
#
|
||
# $Id: fixperms.sh,v 1.1 2005/08/29 19:21:31 benjamin Exp $
|
||
# ----------------------------------------------------------------------
|
||
# AlternC - Web Hosting System
|
||
# Copyright (C) 2002 by the AlternC Development Team.
|
||
# http://alternc.org/
|
||
# ----------------------------------------------------------------------
|
||
# Based on:
|
||
# Valentin Lacambre's web hosting softwares: http://altern.org/
|
||
# ----------------------------------------------------------------------
|
||
# LICENSE
|
||
#
|
||
# This program is free software; you can redistribute it and/or
|
||
# modify it under the terms of the GNU General Public License (GPL)
|
||
# as published by the Free Software Foundation; either version 2
|
||
# of the License, or (at your option) any later version.
|
||
#
|
||
# This program is distributed in the hope that it will be useful,
|
||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
# GNU General Public License for more details.
|
||
#
|
||
# To read the license please visit http://www.gnu.org/copyleft/gpl.html
|
||
# ----------------------------------------------------------------------
|
||
# Original Author of file: Benjamin Sonntag for Metaconsult
|
||
# Purpose of file: Fix permission and ownership of html files
|
||
# ----------------------------------------------------------------------
|
||
#
|
||
|
||
#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
|
||
|
||
umask 022
|
||
|
||
if [ ! -r "$CONFIG_FILE" ]; then
|
||
echo "Can't access $CONFIG_FILE."
|
||
exit 1
|
||
fi
|
||
|
||
if [ `id -u` -ne 0 ]; then
|
||
echo "fixperms.sh must be launched as root"
|
||
exit 1
|
||
fi
|
||
|
||
. "$CONFIG_FILE"
|
||
|
||
doone() {
|
||
read GID LOGIN
|
||
while [ "$LOGIN" ] ; do
|
||
if [ "$DEBUG" ]; then
|
||
echo "Setting rights and ownership for user $LOGIN having gid $GID"
|
||
fi
|
||
INITIALE=`echo $LOGIN |cut -c1`
|
||
REP="$ALTERNC_LOC/html/$INITIALE/$LOGIN/$sub_dir"
|
||
|
||
# Set the file readable only for the AlternC User
|
||
chown -R $GID:$GID "$REP"
|
||
chmod 2770 -R "$REP"
|
||
|
||
# Delete existings ACL
|
||
# Set the defaults acl on all the files
|
||
setfacl -b -k -m d:g:alterncpanel:rw- -m d:u:$GID:rw- -m d:g:$GID:rw- \
|
||
-m g:alterncpanel:rw- -m u:$GID:rw- -m g:$GID:rw- \
|
||
-R "$REP"
|
||
|
||
read GID LOGIN
|
||
done
|
||
}
|
||
|
||
mysql --defaults-file=/etc/alternc/my.cnf -B -e "$query" |grep -v ^uid|doone
|