Correcte bestandsmachtigingen voor WordPress

Ik heb een kijkje gehad over hier maar niet Alle details over de beste bestandsmachtigingen. Ik heb ook een kijkje genomen naar een aantal van de vragen van WordPress’s Forms over hier ook Maar iedereen die suggereert 777 heeft natuurlijk een beetje les in de beveiliging nodig.

Kortom mijn vraag is dit. Welke machtigingen moet ik voor het volgende hebben:

  1. Rootmap opslaan van alle WordPress-inhoud
  2. wp-admin
  3. WP-inhoud
  4. WP-omvat

en vervolgens alle bestanden in elk van die mappen?


Antwoord 1, Autoriteit 100%

Wanneer u WP-WP instelt (de webserver) heeft mogelijk toegang tot de bestanden nodig. Dus de toegangsrechten moeten mogelijk los zijn.

chown www-data:www-data  -R * # Let Apache be owner
find . -type d -exec chmod 755 {} \;  # Change directory permissions rwxr-xr-x
find . -type f -exec chmod 644 {} \;  # Change file permissions rw-r--r--

Na de opstelling U moet de toegangsrechten draaien, volgens HARDING WORDPRESS Alle bestanden behalve voor WP-inhoud moeten alleen worden beschuldigd door uw gebruikersaccount. WP-inhoud moet worden beschuldigd door www-gegevens ook.

chown <username>:<username>  -R * # Let your useraccount be owner
chown www-data:www-data wp-content # Let apache be owner of wp-content

Misschien wilt u later de inhoud in WP-inhoud wijzigen. In dit geval kunt u

  • verander tijdelijk naar de gebruiker naar www-gegevens met su,
  • Geef WP-Content Group Access 775 en doe mee met de groep WWW-gegevens of
  • Geef uw gebruiker de toegangsrechten op de map met behulp van ACLS .

Wat u ook doet, zorg ervoor dat de bestanden RW-machtigingen hebben voor WWW-gegevens .


Antwoord 2, Autoriteit 12%

Geef de volledige toegang tot alle WP-bestanden op www-datagebruiker (die in dit geval de webservergebruiker) is, kan gevaarlijk zijn.
Dus liever niet doe dit:

chown www-data:www-data -R *

Het kan echter nuttig zijn in het moment dat u WordPress en de plug-ins installeert of verbetert. Maar wanneer u klaar bent, is het niet langer een goed idee om WP-bestanden in eigendom te houden door de webserver.

Het laat de webserver in principe toe of overschrijven een bestand in uw website.
Dit betekent dat er een mogelijkheid is om uw site over te nemen als iemand erin slaagt om de webserver (of een beveiligingsgat in sommige .php-script) te gebruiken om een ​​aantal bestanden op uw website te plaatsen.

Om uw site tegen een dergelijke aanval te beschermen, moet u het volgende:

Alle bestanden moeten eigendom zijn van uw gebruikersaccount en moeten beschrijfbaar zijn
door jou. Elk bestand dat schrijftoegang nodig heeft van WordPress zou moeten zijn
beschrijfbaar door de webserver, als uw hostingopstelling het vereist, dat
kan betekenen dat die bestanden moeten worden gebruikt door het gebruikte gebruikersaccount
door het webserverproces.

/

De root WordPress Directory: Alle bestanden moeten alleen beschrijfbaar zijn door uw gebruikersaccount, behalve .htaccess als u WordPress wilt
Automatisch herschrijfregels voor u genereren.

/wp-admin/

Het WordPress-beheergebied: alle bestanden mogen alleen door uw gebruikersaccount worden geschreven.

/wp-includes/

Het grootste deel van de WordPress-toepassingslogica: alle bestanden mogen alleen door uw gebruikersaccount worden geschreven.

/wp-content/

Door gebruikers geleverde inhoud: bedoeld om te worden geschreven door uw gebruikersaccount en het webserverproces.

Binnen /wp-content/vind je:

/wp-content/themes/

Themabestanden. Als u de ingebouwde thema-editor wilt gebruiken, moeten alle bestanden beschrijfbaar zijn door het webserverproces. Als je niet
de ingebouwde thema-editor wilt gebruiken, kunnen alle bestanden alleen worden geschreven
door uw gebruikersaccount.

/wp-content/plugins/

Pluginbestanden: alle bestanden mogen alleen door uw gebruikersaccount worden geschreven.

Andere mappen die aanwezig kunnen zijn met /wp-content/zouden moeten zijn
gedocumenteerd door welke plug-in of thema ze ook nodig hebben. Machtigingen mogen
variëren.

Bron en aanvullende informatie: http://codex.wordpress.org/Hardening_WordPress


Antwoord 3, autoriteit 5%

Voor degenen die hun WordPress-hoofdmap in hun thuismap hebben:

** Ubuntu/apache

  1. Voeg uw gebruiker toe aan www-data-groep:

CREDIT Schrijfrechten toekennen aan www-data group

U wilt usermodaanroepen op uw gebruiker. Dus dat zou zijn:

sudo usermod -aG www-data yourUserName

** Ervan uitgaande dat de groep www-databestaat

  1. Controleer of uw gebruiker in de groep www-datazit:

    groups yourUserName

Je zou zoiets moeten krijgen als:

youUserName : youUserGroupName www-data

** youUserGroupName is meestal gelijk aan uw gebruikersnaam

  1. Recursief het groepseigendom van de map wp-content wijzigen en je gebruikerseigendom behouden

    chown yourUserName:www-data -R youWebSiteFolder/wp-content/*

  2. Verander de map in youWebSiteFolder/wp-content/

    cd youWebSiteFolder/wp-content

  3. Recursief de groepsrechten van de mappen en submappen wijzigen om schrijfrechten in te schakelen:

    find . -type d -exec chmod -R 775 {} \;

** modus van `/home/yourUserName/youWebSiteFolder/wp-content/’ gewijzigd van 0755 (rwxr-xr-x) in 0775 (rwxrwxr-x)

  1. Recursief de groepsrechten van de bestanden en subbestanden wijzigen om schrijfrechten in te schakelen:

    find . -type f -exec chmod -R 664 {} \;

Het resultaat zou er ongeveer zo uit moeten zien:

WAS:
-rw-r--r--  1 yourUserName www-data  7192 Oct  4 00:03 filename.html
CHANGED TO:
-rw-rw-r--  1 yourUserName www-data  7192 Oct  4 00:03 filename.html

Equivalent aan:

chmod -R ug+rw mapnaam

Machtigingen zijn ongeveer 664 voor bestanden of 775 voor mappen.

P.s. als iemand de fout 'could not create directory'tegenkomt bij het updaten van een plug-in, doe dan:
server@user:~/domainame.com$ sudo chown username:www-data -R wp-content
wanneer u zich in de root van uw domein bevindt.
Ervan uitgaande: wp-config.phpheeft
FTP-inloggegevens op LocalHost
define('FS_METHOD','direct');


Antwoord 4, autoriteit 4%

Het is het beste om de wordpress-documentatie hierover te lezen https://wordpress.org/ support/article/change-file-permissions/

  • Alle bestanden moeten eigendom zijn van het daadwerkelijke gebruikersaccount, niet het gebruikersaccount dat wordt gebruikt voor het httpd-proces
  • Groepseigendom is niet relevant, tenzij er specifieke groepsvereisten zijn voor het controleren van de procesmachtigingen van de webserver. Dit is meestal niet het geval.
  • Alle mappen moeten 755 of 750 zijn.
  • Alle bestanden moeten 644 of 640 zijn. Uitzondering: wp-config.php moet 440 of 400 zijn om te voorkomen dat andere gebruikers op de server het lezen.
  • Geen enkele directory mag 777 worden gegeven, zelfs geen directory’s uploaden. Aangezien het php-proces wordt uitgevoerd als de eigenaar van de bestanden, krijgt het de rechten van de eigenaar en kan het zelfs naar een 755-directory schrijven.

Antwoord 5, autoriteit 3%

Ik heb machtigingen ingesteld voor:

   # Set all files and directories user and group to wp-user
    chown wp-user:wp-user -R *
    # Set uploads folder user and group to www-data
    chown www-data:www-data -R wp-content/uploads/
    # Set all directories permissions to 755
    find . -type d -exec chmod 755 {} \;
    # Set all files permissions to 644
    find . -type f -exec chmod 644 {} \;

In mijn geval heb ik een specifieke gebruiker voor WordPress gemaakt die verschilt van de apache-standaardgebruiker die toegang van internet tot de bestanden die eigendom zijn van die gebruiker, verhindert.

Vervolgens geeft het toestemming aan de apache-gebruiker om de uploadmap af te handelen en tenslotte voldoende veilige bestands- en maprechten in te stellen.

BEWERKT

Als u W3C Total Cache gebruikt, moet u ook het volgende doen:

rm -rf wp-content/cache/config
rm -rf wp-content/cache/object
rm -rf wp-content/cache/db
rm -rf wp-content/cache/minify
rm -rf wp-content/cache/page_enhanced

Dan werkt het!

BEWERKT

Na een tijdje WordPress-sites te hebben ontwikkeld, raad ik verschillende bestandsrechten per omgeving aan:

In productie zou ik gebruikers geen toegang geven om het bestandssysteem aan te passen, ik zal ze alleen toestaan om bronnen te uploaden en toegang te geven tot bepaalde plug-ins specifieke mappen om back-ups te maken, enz. Maar projecten beheren onder Git en het gebruik van deploy sleutels op de server, het zijn geen goede update-plug-ins voor staging of productie. Ik laat hier de setup van het productiebestand:

# Set uploads folder user and group to www-data
chown www-data:www-data -R wp-content/uploads/

www-data:www-data = apache of nginx gebruiker en groep

Staging deelt dezelfde productierechten als een kloon ervan.

Eindelijk heeft de ontwikkelomgeving toegang tot update-plug-ins, vertalingen, alles…

# Set uploads folder user and group to www-data
chown www-data:www-data -R wp-content/
# Set uploads folder user and group to www-data
chown your-user:root-group -R wp-content/themes
# Set uploads folder user and group to www-data
chown your-user:root-group -R wp-content/plugins/your-plugin

www-data:www-data = apache of nginx gebruiker en groep
uw-gebruiker:root-groep = uw huidige gebruiker en de hoofdgroep

Deze machtigingen geven u toegang om te ontwikkelen in de map themesen your-pluginzonder toestemming te vragen. De rest van de inhoud is eigendom van de Apache- of Nginx-gebruiker, zodat WP het bestandssysteem kan beheren.

Voordat je een git repo aanmaakt, voer je eerst deze commando’s uit:

# Set all directories permissions to 755
find . -type d -exec chmod 755 {} \;
# Set all files permissions to 644
find . -type f -exec chmod 644 {} \;

Antwoord 6, autoriteit 2%

Juiste rechten voor het bestand zijn 644
De juiste rechten voor de map zijn 755

Gebruik de terminal en de volgende opdrachten om de machtigingen te wijzigen.

find foldername -type d -exec chmod 755 {} \;
find foldername -type f -exec chmod 644 {} \;

755 voor mappen en 644 voor bestanden.


Antwoord 7, autoriteit 2%

Ik denk dat de onderstaande regels worden aanbevolen voor een standaard WordPress-site:

  • Voor mappen in wp-content, stel 0755 permissies in:

    chmod -R 0755 plug-ins

    chmod -R 0755 uploads

    chmod -R 0755-upgrade

  • Laat de apache-gebruiker de eigenaar zijn van de bovenstaande mappen van wp-content:

    chown apache-uploads

    chown apache-upgrade

    chown apache-plug-ins


Antwoord 8, autoriteit 2%

Het hangt eigenlijk af van de plug-ins die je van plan bent te gebruiken, aangezien sommige plug-ins het hoofddocument van de wordpress wijzigen. maar over het algemeen raad ik zoiets als dit aan voor de wordpress-directory.

Hiermee wordt de “root” (of welke gebruiker u ook gebruikt) toegewezen als de gebruiker in elk afzonderlijk bestand/map, R betekent recursief, dus het stopt niet bij de “html”-map. als je R niet hebt gebruikt, is het alleen van toepassing op de map “html”.

sudo chown -R root:www-data /var/www/html  

Hierdoor wordt de eigenaar/groep van “wp-content” ingesteld op “www-data”, waardoor de webserver de plug-ins kan installeren via het beheerdersdashboard.

chown -R www-data:www-data /var/www/html/wp-content

Hierdoor wordt de toestemming van elk afzonderlijk bestand in de map “html” (inclusief bestanden in submappen) ingesteld op 644, zodat mensen van buitenaf geen enkel bestand kunnen uitvoeren, geen enkel bestand kunnen wijzigen, een groep geen enkel bestand kan uitvoeren, geen enkel bestand kan wijzigen bestand en alleen de gebruiker mag bestanden wijzigen/lezen, maar zelfs de gebruiker kan geen enkel bestand uitvoeren. Dit is belangrijk omdat het elke vorm van uitvoering in de “html”-map verhindert, ook omdat de eigenaar van de html-map en alle andere mappen behalve de wp-content-map “root” zijn (of uw gebruiker), kan de www-data’ Wijzig geen enkel bestand buiten de map wp-content, dus zelfs als er een kwetsbaarheid in de webserver is, en als iemand ongeautoriseerd toegang heeft tot de site, kunnen ze de hoofdsite niet verwijderen, behalve de plug-ins.

sudo find /var/www/html -type f -exec chmod 644 {} +

Dit beperkt de toestemming voor toegang tot “wp-config.php” tot gebruiker/groep met rw-r—– deze toestemmingen.

chmod 640 /var/www/html/wp-config.php

En als een plug-in of update klaagt dat deze niet kan updaten, ga dan naar de SSH en gebruik deze opdracht, en verleen de tijdelijke toestemming aan “www-data” (webserver) om te updaten/installeren via het admin-paneel, en keer dan terug naar de “root” of uw gebruiker zodra het is voltooid.

chown -R www-data /var/www/html

En in Nginx (dezelfde procedure voor de apache) om de map wp-admin te beschermen tegen ongeoorloofde toegang en onderzoek. apache2-utils is vereist voor het coderen van het wachtwoord, zelfs als je nginx hebt geïnstalleerd, laat c weg als je van plan bent meer gebruikers aan hetzelfde bestand toe te voegen.

sudo apt-get install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd userName

Bezoek nu deze locatie

/etc/nginx/sites-available/

Gebruik deze codes om de map “wp-admin” te beveiligen met een wachtwoord, nu zal het wachtwoord/gebruikersnaam vragen als u toegang probeert te krijgen tot de “wp-admin”. let op, hier gebruik je het “.htpasswd”-bestand dat het versleutelde wachtwoord bevat.

location ^~ /wp-admin {
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
    index  index.php index.html index.htm;
}

Herstart nu de nginx.

sudo /etc/init.d/nginx restart

Antwoord 9

Opdrachten:

chown www-data:www-data -R *
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

Waar ftp-gebruiker de gebruiker is die u gebruikt om de bestanden te uploaden

chown -R ftp-user:www-data wp-content
chmod -R 775 wp-content

Antwoord 10

Om er absoluut zeker van te zijn dat uw website veilig is en u de juiste machtigingen voor uw mappen gebruikt, gebruikt u een beveiligingsplug-in zoals deze:

https://en-ca .wordpress.org/plugins/all-in-one-wp-security-and-firewall/

https://en-ca.wordpress.org/plugins/wordfence/

Deze plug-ins zullen uw WordPress-installatie scannen en u informeren over mogelijke problemen. Deze zullen u ook waarschuwen voor onveilige mapmachtigingen. Daarnaast zullen deze plug-ins u aanbevelen welke machtigingen aan de mappen moeten worden toegewezen.


Antwoord 11

chown -Rv www-data:www-data
chmod -Rv 0755 wp-includes
chmod -Rv 0755 wp-admin/js
chmod -Rv 0755 wp-content/themes
chmod -Rv 0755 wp-content/plugins
chmod -Rv 0755 wp-admin
chmod -Rv 0755 wp-content
chmod -v 0644 wp-config.php
chmod -v 0644 wp-admin/index.php
chmod -v 0644 .htaccess

Antwoord 12

Ik kan je niet zeggen of dit juist is, maar ik gebruik een Bitnami-afbeelding via Google Compute App Engine. Ik heb problemen met plug-ins en migratie, en nadat ik de boel verder had verpest door permissies te wijzigen, vond ik deze drie regels die al mijn problemen oplosten. Ik weet niet zeker of het de juiste manier is, maar het werkte voor mij.

sudo chown -R bitnami:daemon /opt/bitnami/apps/wordpress/htdocs/
sudo find /opt/bitnami/apps/wordpress/htdocs/ -type f -exec chmod 664 {} \;
sudo find /opt/bitnami/apps/wordpress/htdocs/ -type d -exec chmod 775 {} \;

Antwoord 13

Gebruik voor OS X dit commando:

sudo chown -R www:www /www/folder_name

Antwoord 14

Definieer in wp_config bestand.

/var/www/html/Your-Project-File/wp-config.php

define( 'FS_METHOD', 'direct' );

chown – verandert het eigendom van bestanden/mappen. D.w.z. eigenaar van het bestand/de map verandert in de opgegeven map, maar wijzigt de rechten niet.

sudo chown -R www-data:www-data /var/www

Antwoord 15

Op basis van al het lezen en de pijn op mijn eigen sites en na te zijn gehackt, ben ik tot de bovenstaande lijst gekomen met machtigingen voor een beveiligingsplug-in voor WordPress genaamd Wordfence. (Niet bij aangesloten)

In ons voorbeeld is de root van het wordpress-document
/var/www/html/example.com/public_html

Open de rechten zodat www-data als volgt naar de document root kan schrijven:

cd /var/www/html/example.com
sudo chown -R www-data:www-data public_html/

Nu kunt u vanaf het dashboard op uw site als beheerder updates uitvoeren.

Beveilig de site nadat de updates zijn voltooid door deze stappen te volgen:

sudo chown -R wp-user:wp-user public_html/

De bovenstaande opdracht verandert de rechten van alles in de wordpress-installatie naar de wordpress FTP-gebruiker.

cd public_html/wp-content
sudo chown -R www-data:wp-user wflogs
sudo chown -R www-data:wp-user uploads

De bovenstaande opdracht zorgt ervoor dat de WordFence Security Plugin toegang heeft tot zijn logs. De uploadgids is ook geschraagd door www-gegevens.

cd plugins
sudo chown -R www-data:wp-user wordfence/

De bovenstaande opdracht zorgt er ook voor dat de beveiligingsplugin heeft gelezen Schrijftoegang voor de juiste functie.

Directory and bestanden Machtigingen

# Set all directories permissions to 755
find . -type d -exec chmod 755 {} \;
# Set all files permissions to 644
find . -type f -exec chmod 644 {} \;

Stel de machtigingen voor wp-config.php in op 640, zodat alleen WP-gebruiker dit bestand en niemand anders kan lezen. Machtigingen van 440 werkten niet voor mij met het bovenstaande eigendom van het bestand.

sudo chmod 640 wp-config.php

WordPress Automatische updates met SSH werkten samen met PHP5, maar brak met PHP7.0 vanwege problemen met PHP7.0-SSH2 Bundeld met Ubuntu 16.04 en ik kon niet vinden hoe u de juiste versie kunt installeren en het kunt laten werken. Gelukkig genaamd een zeer betrouwbare plug-in genaamd ssh-sftp-updater-support (gratis ) Maakt automatische updates met behulp van SFTP mogelijk zonder Libsh2. Dus de bovenstaande machtigingen hoeven nooit zo nodig te worden losgezien behalve in zeldzame gevallen.

Other episodes