Backporting new way of checking acl activation upon installation from alternc-3.1~alpha1
This commit is contained in:
parent
7834f399ea
commit
93a280cce4
|
@ -27,6 +27,24 @@ function valid_ip()
|
|||
}
|
||||
|
||||
|
||||
function get_first_existing_dir() {
|
||||
# Prend en premier parametre un chemin
|
||||
# Retourne le répertoire parent existant le plus "proche"
|
||||
# Exemple: on lui donne /var/www/alternc/gerard/dupont/ mais
|
||||
# seul /var/www/alternc existe, ca répond /var/www/alternc
|
||||
dir="$1"
|
||||
if [ -z "$dir" ] ; then
|
||||
return 0
|
||||
fi
|
||||
if ! test -d "$dir" ; then
|
||||
get_first_existing_dir "$(dirname "$dir")"
|
||||
else
|
||||
echo "$dir"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
||||
#checking mysql connectivity and updating local.sh variables accordingly
|
||||
check_mysql(){
|
||||
|
||||
|
@ -183,24 +201,28 @@ while [ "$QUEST_STATE" != 0 -a "$QUEST_STATE" != 11 ]; do
|
|||
|
||||
db_get alternc/alternc_location
|
||||
LOCATION="$RET"
|
||||
#checking acl and quota activation, does't work with NFS yet. should now work with lxc
|
||||
MOUNT_POINT=$(df -P ${LOCATION%/*} | tail -n 1 | awk '{print $6}')
|
||||
#checking acl and quota activation.
|
||||
basedir=`get_first_existing_dir "$LOCATION"`;
|
||||
MOUNT_POINT=$(df -P ${basedir} | tail -n 1 | awk '{print $6}')
|
||||
#we get the first existing dir
|
||||
aclcheckfile="$basedir/test-acl"
|
||||
touch "$aclcheckfile"
|
||||
setfacl -m u:root:rwx "$aclcheckfile" 2>/dev/null
|
||||
|
||||
# Get the mount options for the path: (warning, / may have multiple declarations, take the last one only :
|
||||
MOUNT_OPTS=$(awk '$2=="'$MOUNT_POINT'" { print $4 }' /proc/mounts | tail -1)
|
||||
|
||||
# Check to see if acl is one of the mount points:
|
||||
ACL="$(echo "$MOUNT_OPTS" | tr "," "\\n" | egrep '^acl|attr2|user_xattr$')" || true
|
||||
if [ -z "$ACL" ]; then
|
||||
if [ $? -ne 0 ]; then
|
||||
test -e "$aclcheckfile" && rm -f "$aclcheckfile" || true
|
||||
db_input critical alternc/acluninstalled || true
|
||||
db_go
|
||||
db_reset alternc/acluninstalled || true
|
||||
db_fset alternc/acluninstalled "seen" "false" || true
|
||||
exit 2
|
||||
fi
|
||||
quota_activation=$(quotaon -pa 2>/dev/null |grep '^group.*on$' | /usr/bin/awk '$4 ~ /^\'$MOUNT_POINT'$/ {print $4}')
|
||||
|
||||
if [ -z "$quota_activation" -o "$quota_activation" != "$MOUNT_POINT" ]; then
|
||||
test -e "$aclcheckfile" && rm -f "$aclcheckfile" || true
|
||||
|
||||
quota -gA -f $MOUNT_POINT 2>/dev/null
|
||||
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
db_get alternc/quotauninstalled
|
||||
if [ -z "$RET" ]; then
|
||||
db_input critical alternc/quotauninstalled || true
|
||||
|
|
Loading…
Reference in New Issue