I heard you liked fixes, so I send a fix to fix fixdir
But no fox here.
This commit is contained in:
		
							parent
							
								
									5f38404124
								
							
						
					
					
						commit
						348a91066f
					
				|  | @ -116,7 +116,6 @@ doone() { | |||
|       mkdir -p "$REP" | ||||
|       chown -R $GID:$GID "$REP" | ||||
|       chmod 2770 -R "$REP" | ||||
|       test -d "$REP/tmp" || mkdir "$REP/tmp" | ||||
| 
 | ||||
| #      # Delete existings ACL | ||||
| #      # Set the defaults acl on all the files | ||||
|  | @ -126,7 +125,7 @@ doone() { | |||
|       setfacl -bknR -m d:u:alterncpanel:rwx -m d:g:alterncpanel:rwx -m u:alterncpanel:rwx -m g:alterncpanel:rwx -m d:o::--- -m o::---\ | ||||
|                     -m d:u:$GID:rwx -m d:g:$GID:rwx -m u:$GID:rwx -m g:$GID:rwx -m d:mask:rwx -m mask:rwx "$REP" | ||||
| 
 | ||||
|       chmod 777 "$REP/tmp" | ||||
|       fixtmp $GID | ||||
|       read GID LOGIN || true | ||||
|     done | ||||
|     echo -e "\nDone"  | ||||
|  | @ -134,8 +133,10 @@ doone() { | |||
| 
 | ||||
| fixdir() { | ||||
|       if [ "$DEBUG" ]; then | ||||
|         echo "Setting rights and ownership for user $LOGIN having gid $GID" | ||||
|         echo "Setting rights with fixdir" | ||||
|       fi | ||||
| 
 | ||||
|       # sub_dir is global | ||||
|       REP="$sub_dir" | ||||
|       # We assume that the owner of the directory should be the one from the html user base directory ( $ALTERNC_HTML/<letter>/<login>)  | ||||
|       REP_ID="$(get_uid_by_path "$REP")" | ||||
|  | @ -146,12 +147,6 @@ fixdir() { | |||
|       # Set the file readable only for the AlternC User | ||||
|       mkdir -p "$REP" | ||||
|       chown -R $REP_ID:$REP_ID "$REP" | ||||
|       test_tmp=$(basename $REP) | ||||
|       if [ "$test_tmp" != "tmp" ]; then  | ||||
|         chmod 2770 -R "$REP" | ||||
|       else | ||||
|         chmod 2777 -R "$REP" | ||||
|       fi | ||||
| 
 | ||||
|       # Delete existings ACL | ||||
|       # Set the defaults acl on all the files | ||||
|  | @ -159,11 +154,26 @@ fixdir() { | |||
| #                    -Rm   g:alterncpanel:rwx -m u:$REP_ID:rwx -m g:$REP_ID:rwx -m mask:rwx\ | ||||
| #               "$REP" | ||||
|       setfacl -bknR -m d:u:alterncpanel:rwx -m d:g:alterncpanel:rwx -m u:alterncpanel:rwx -m g:alterncpanel:rwx -m d:o::--- -m o::---\ | ||||
|                     -m d:u:$GID:rwx -m d:g:$GID:rwx -m u:$GID:rwx -m g:$GID:rwx -m d:mask:rwx -m mask:rwx "$REP" | ||||
|                     -m d:u:$REP_ID:rwx -m d:g:$REP_ID:rwx -m u:$REP_ID:rwx -m g:$REP_ID:rwx -m d:mask:rwx -m mask:rwx "$REP" | ||||
| 
 | ||||
|       fixtmp $REP_ID | ||||
|       echo -e "\nDone"  | ||||
| } | ||||
| 
 | ||||
| fixtmp() { | ||||
|   REP_ID=$1 | ||||
|   local REP=$(get_html_path_by_name $(get_name_by_uid $REP_ID)) | ||||
| 
 | ||||
|   if [ "$REP/tmp" == "/tmp" ] ; then  | ||||
|     echo ERROR  | ||||
|     exit 0 | ||||
|   fi | ||||
|    | ||||
|   test -d "$REP/tmp" || ( mkdir "$REP/tmp" && setfacl -bkn -m d:u:alterncpanel:rwx -m d:g:alterncpanel:rwx -m u:alterncpanel:rwx -m g:alterncpanel:rwx -m d:o::--- -m o::--- -m d:u:$REP_ID:rwx -m d:g:$REP_ID:rwx -m u:$REP_ID:rwx -m g:$REP_ID:rwx -m d:mask:rwx -m mask:rwx "$REP" )   | ||||
| 
 | ||||
|   chmod 777 "$REP/tmp" | ||||
| } | ||||
| 
 | ||||
| fixfile() { | ||||
|       /usr/bin/setfacl -bk "$file" | ||||
|       # We assume that the owner of the file should be the one from the html user base directory ( $ALTERNC_HTML/<letter>/<login>)  | ||||
|  | @ -194,16 +204,16 @@ trap ctrl_c SIGINT | |||
| 
 | ||||
| #Start of the script actions | ||||
| if [[ "$file" != "" ]]; then # if we are dealing with a file | ||||
| 	if [ -e "$file" ]; then | ||||
| 	  fixfile | ||||
| 	else | ||||
|   if [ -e "$file" ]; then | ||||
|     fixfile | ||||
|   else | ||||
| 		echo "file not found" | ||||
| 	fi | ||||
| elif [[ "$sub_dir" != "" ]]; then #if we are dealing with a directory | ||||
| 	if [ -d "$sub_dir" ]; then | ||||
| 	  fixdir | ||||
| 	else | ||||
| 		echo "dir not found" | ||||
| echo "dir not found" | ||||
| 	fi | ||||
| else | ||||
|   #we are fixing the whole html directory | ||||
|  |  | |||
|  | @ -50,19 +50,18 @@ print_domain_letter() { | |||
| } | ||||
| 
 | ||||
| get_uid_by_path() { | ||||
| local path="$1" | ||||
| local sizepath=${#path} | ||||
| local lastcar=${ALTERNC_HTML: -1} | ||||
|   local path="$1" | ||||
|   local sizepath=${#path} | ||||
|   local lastcar=${ALTERNC_HTML: -1} | ||||
| 
 | ||||
| if [ "$lastcar" != "/" ] | ||||
| then | ||||
|   ALTERNC_HTML=$ALTERNC_HTML"/" | ||||
| fi | ||||
|   local sizebasepath=${#ALTERNC_HTML} | ||||
|   if [ "${ALTERNC_HTML:-1}" != "/" ] ; then | ||||
|     sizebasepath=$(( $sizebasepath + 1 )) | ||||
|   fi | ||||
| 
 | ||||
| local sizebasepath=${#ALTERNC_HTML} | ||||
| local basepath=${path:0:($sizebasepath +2)} | ||||
| local uid=`ls -n $basepath | head -n 2|tail -n 1| awk '{print $3}'` | ||||
| echo $uid | ||||
|   local login=$(echo ${path:$sizebasepath} | cut -d '/' -f 2) | ||||
| 
 | ||||
|   get_uid_by_name $login | ||||
| } | ||||
| 
 | ||||
| # Return the html path for a account name | ||||
|  | @ -85,7 +84,23 @@ print_user_letter() { | |||
| 
 | ||||
| # return the uid of an alternc account | ||||
| get_uid_by_name() { | ||||
|   mysql_query 'SELECT uid FROM membres WHERE login="'"$1"'" LIMIT 1;' | ||||
|   local name=$1 | ||||
|   if [[ ! "$name" =~ ^([a-z0-9]+)$ ]] ; then | ||||
|     # Error on error flux | ||||
|     echo "Account name is incorrect." >&2 | ||||
|     exit 2 | ||||
|   fi | ||||
|    mysql_query 'SELECT uid FROM membres WHERE login="'"$name"'" LIMIT 1;' | ||||
| } | ||||
| 
 | ||||
| get_name_by_uid() { | ||||
|   local id=$1 | ||||
|   if [[ ! "$id" =~ ^([0-9]+)$ ]] ; then | ||||
|     # Error on error flux | ||||
|     echo "Account name is incorrect." >&2 | ||||
|     exit 2 | ||||
|   fi | ||||
|   mysql_query 'SELECT login FROM membres WHERE uid="'"$id"'" LIMIT 1;' | ||||
| } | ||||
| 
 | ||||
| get_variable_from_db() { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 alban
						alban