Find all WordPress folders with 777 permissions

How to find all folders with 777 permissions

As the owner of a dedicated server provided shared hosting services, you will find that many of your clients will install applications such as WordPress. So far so good. However, once they start getting stuck with file and folder permissions, they generally go crazy and set everything to 777 in order to fix the problems. Great, they get their site working! Now begin your problems.

With these liberal file and folder permissions together with some not-so-well written plugins, it is only a matter of time before the hackers and crackers target these weak WordPress sites and start injecting all manner of redirects and mail spammers on your server.

Using ‘find’ to locate those weaknesses

So, here is a nifty solution to find all those weak WordPress installations. The following find will list all WordPress installations that contain folders with 777 permissions:

find /var/www/vhosts/*/httpdocs/wp-content -perm 0777 -type d | grep -v "wp-content/"

Give this a whirl on your Plesk server and take a look at the list, navigate to each folder and tighten up the permissions as below:

cd /var/www/vhosts/
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chmod 750 ../httpdocs

These permission changes eliminate all unnecessary 777 permissions.

Ok, let’s automate the whole process

What? You have lots of these? Then here is a nifty script to automate the process for you:

df=`find /var/www/vhosts/*/httpdocs/wp-content -perm 0777 -type d | grep -v "wp-content/" \
| sed "s/wp-content//g"`

for line in $df;
    echo $line
    cd $line
    find $line -type d -exec chmod 755 {} \;
    find $line -type f -exec chmod 644 {} \;
    chmod 750 $line

This makes things a little more difficult for any would-be injection attempts. If your directory structure is different to the standard Plesk structure simply modify the find command as required.

How to test CGI is working with a ‘Hello World’ script

How to get CGI working on Plesk 11

Running CGi and Perl scripts is not as straightforward as PHP, so in order to get your CGI working, ensure to confirm the following steps. Once the file in in the correct location, and the file system permissions are correct you will be good to go.

1) Ensure Perl-CGI is installed on the server. If you host with us, this is already done for you.

# yum install perl-CGI

2) Ensure Perl/CGI is enabled for your domain name in your Plesk panel. Find the domain name in the Plesk panel and look at the ‘Website Sripting and Security’ section.

3) Create a file named ‘hello.cgi’ with the following contents:

print("Content-type: text/plain\n");
print("Hello World!\n");

4) Ensure your file is uploaded to /cgi-bin and not /httpdocs/cgi-bin

5) Ensure your file permissions on the file are 755, you can set this in your FTP application or File Manager

6) You can now execute the file as such:

Hello World!

How to add another domain to your Plesk 11 hosting account

Adding another domain to your Plesk 11 Hosting Account

You can host multiple web sites with your Plesk 11 account. The limit is set to your hosting plan, current we support hosting up to 50 sites per account.

To host another domain name in your Plesk 11 hosting account please do the following:

1) Login to your Client Management Portal
2) Select Services > My Services then View Details of your Hosting Account
3) Click “Login to Plesk Control Panel”
4) Click “Add Domain”
5) Enter your new domain name to host eg.
6) Keep the “Use our DNS Settings” and “Hosting Type” as the defaults suggest
7) A default document root will be provided eg /site1
8) You can now FTP your new website using your FTP username and password with document root set to /site1
9) Ensure your new domain name is set to the same name servers as your primary domain name to connect the domain to your hosting server.

If you have any problems do not hesitate to contact us.

Use httpdmng to reconfigure a single domain

sshHow to use Plesk httpdmng to rebuild a single domain

Rebuilding all site configurations can take a considerable amount of time, especially if you have many domains hosted on your Parallels server – so it’s best to avoid this where possible.

If you have made a change to only a single domain configuration (in vhosts.conf for instance) you will need to rebuild the configuration but for speed and performance there is no need to rebuild the configuration for all domains.

At the command line issue the following:

# /usr/local/psa/admin/sbin/httpdmng --reconfigure-domain

Within 15 to 30 seconds your domain configuration will be updated.