Hello, today I have written a simple script to make back default chmods of whole /var/www, I wrote it because of chmod -R done in wrong directory. May be somebody will enjoy it and will find it helpful It is done for [domain] indentifiers. And modyfies all files to "standard" if you have your own directories you will have to modify script. You're using script on your own responsibility!! It works well for me. Any suggestions or misteakes I'll be updating it on my blog page Code: #! /bin/bash #Shrek ISPConfig2 Permissions script #Variables root=root:root www=www-data no=.no_delete dir=/var/www #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 "Restoring Permissions of $dir" 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
hi, If there is no backup then no permissions are backuped ;] Or if we want to restore permissions in a very quick way, script will help a little with it.