If u rsync Data from one Server to a new ispCP-Server, sometimes an error like the following appear in /var/log/apache/suexec.log :
[2010-06-10 15:10:34]: target uid/gid (2036/2036) mismatch with directory (2035/2035) or program (2035/2035)
U can fix it wit a little Script. This script Grab all Domains from the ispCP-Database and set the right uid and gid for the User-Files:
First create a script with your Mysql-Root Password:
[client] user=root password=mysql_password
Then create a file (name it like u want) an insert the following code into it:
#!/bin/bash # # PROCESS DIRECTORY RIGHTS (OWNERSHIP & CHMOD) # # # !!!! Edit path to mysql.cnf file !!!! mycnf=/root/mysql.cnf # sample mysql.cnf looks like this: # Please uncomment it and add your own Data # [client] # user=user_for_ispcp_database_usualy_root # password=password_of_user for domain_id in `echo "SELECT domain_id FROM ispcp.domain" | mysql --defaults-file=$mycnf -s`; do uid=`echo "SELECT domain_uid FROM ispcp.domain WHERE domain_id='$domain_id'" | mysql --defaults-file=$mycnf -s`; gid=`echo "SELECT domain_gid FROM ispcp.domain WHERE domain_id='$domain_id'" | mysql --defaults-file=$mycnf -s`; dmn=`echo "SELECT domain_name FROM ispcp.domain WHERE domain_id='$domain_id'" | mysql --defaults-file=$mycnf -s`; echo "==========================================================="; echo " $dmn"; echo "==========================================================="; # process ftp echo "UPDATE \`ispcp\`.\`ftp_group\` SET \`gid\`='$gid' WHERE \`groupname\`='$dmn'" | mysql --defaults-file=/root/mysql.cnf -s echo "UPDATE \`ispcp\`.\`ftp_users\` SET \`uid\`=$uid, \`gid\`='$gid' WHERE \`userid\` like '%@$dmn'" | mysql --defaults-file=/root/mysql.cnf -s chown -R vu$uid:vu$gid /var/www/virtual/$dmn chmod 770 /var/www/virtual/$dmn chown vu$uid:www-data /var/www/virtual/$dmn chown -R vu$uid:www-data /var/www/virtual/$dmn/backups chmod 770 /var/www/virtual/$dmn/backups chown -R vu$uid:vu$gid /var/www/virtual/$dmn/cgi-bin chmod 755 /var/www/virtual/$dmn/phptmp chown -R vu$uid:vu$gid /var/www/virtual/$dmn/errors chmod 775 /var/www/virtual/$dmn/errors chown -R vu$uid:vu$gid /var/www/virtual/$dmn/htdocs find /var/www/virtual/$dmn/htdocs -type d -exec chmod 775 {} \; chown vu$uid:www-data /var/www/virtual/$dmn/.ht* chown vu$uid:www-data /var/www/virtual/$dmn/.svn* chmod 640 /var/www/virtual/$dmn/.ht* chown -R vu$uid:www-data /var/www/virtual/$dmn/logs chmod 770 /var/www/virtual/$dmn/logs chown -R vu$uid:www-data /var/www/virtual/$dmn/phptmp chmod 770 /var/www/virtual/$dmn/phptmp chown -R vu$uid:vu$gid /var/www/fcgi/$dmn chmod 755 /var/www/fcgi/$dmn chmod 755 /var/www/fcgi/$dmn/php5-fcgi-starter chown -R vmail:mail /var/mail/virtual/* sleep 1 done
Make the script executable <cli>chmod +x ./myWonderfullNewRenamerScript</cli> And run it <cli>./myWonderfullNewRenamerScript</cli>
This Wiki is based on the Thread from <fc #FF0000> fulltilt</fc> and the Blog of <fc #FF0000>BenBe</fc>. Thanks for this workarround.
For me it works like a charm. — Samuel Suther 2010/06/10 17:19