#! /bin/bash #Shrek ISPConfig2 Permissions script #Variables root=root:root www=www-data no=.no_delete dir=/var/www echo "Restoring Permissions of $dir" #Gets web[0-9]* directories into table ls -alh $dir | grep drwx | grep -e "[0-9][0-9]:[0-9][0-9] web[0-9]" | awk '{print $9}' > .web_dirs n=1 exec < .web_dirs while read line do web_dirs_list[$n]=$line n=$n+1 done #echo ${#web_dirs_list[@]} no_of_dirs=${#web_dirs_list[@]} for ((k=1;k<=no_of_dirs;k++)) do web=${web_dirs_list[$k]} echo $web #Owning a web[0-9] directory to www-data:web[0-9] chown www-data:$web /var/www/$web -R #Owning root permission files chown $root $dir/$web/cgi-bin/$NO chown $root $dir/$web/log/error.log chown $root $dir/$web/log/$NO chown $root $dir/$web/phptmp/$NO chown $root $dir/$web/ssl/$NO chown $root $dir/$web/user/$NO #Owning User files #Getting user namse/dirs ls -alh $dir/$web/user/ | grep drwx | awk '{print $9}' | grep -e ".[a-z]_[a-z]" > .users m=1 exec < .users while read line do user_list[$m]=$line m=$m+1 done #echo ${user_list[@]} no_of_users=${#user_list[@]} echo $no_of_users zero=0 if(($no_of_users>=$zero )) then #Owning files to their owners for((x=1;x<=$no_of_users;x++)) do user=${user_list[$x]} echo "$web/user/$user" chown $user:$web $dir/$web/user/$user -R chown $root $dir/$web/user/$user/.antivirus.rc chown $root $dir/$web/user/$user/.autoresponder.rc chown $root $dir/$web/user/$user/.html-trap.rc chown $root $dir/$web/user/$user/.local-rules.rc chown $root $dir/$web/user/$user/.mailsize.rc #Some users does not have .procmailrc file chown $root $dir/$web/user/$user/.procmailrc chown $root $dir/$web/user/$user/.quota.rc chown $root $dir/$web/user/$user/.spamassassin.rc chown $root $dir/$web/user/$user/.user_prefs chown $root $dir/$web/user/$user/.vacation.msg done no_of_users=0 unset user_list[*] fi #Owning symlinks symlink=`ls -alh /var/www | grep $web | grep lrwx | awk '{print $9}'` echo $symlink chown $www:$web $dir/$symlink rm -f .users rm -f .web_dirs done