He echado un vistazo aquí, pero no encontré ningún detalle sobre los mejores permisos de archivo. También eché un vistazo a algunas de las preguntas del formulario de WordPress aquí, pero cualquiera que sugiera 777 obviamente necesita una pequeña lección de seguridad.
En resumen, mi pregunta es esta. ¿Qué permisos debo tener para lo siguiente?
- carpeta raíz que almacena todo el contenido de WordPress
- wp-admin
- wp-content
- wp-incluye
y luego todos los archivos en cada una de esas carpetas?
Respuestas:
Cuando configura WP, usted (el servidor web) puede necesitar acceso de escritura a los archivos. Por lo tanto, los derechos de acceso pueden necesitar ser flexibles.
Después de la configuración, debe ajustar los derechos de acceso , de acuerdo con Hardening WordPress, todos los archivos, excepto el contenido de wp, deben poder escribirse solo en su cuenta de usuario. wp-content también debe poder escribirse en www-data .
Tal vez desee cambiar el contenido de wp-content más adelante. En este caso podrías
su
,Hagas lo que hagas, asegúrate de que los archivos tengan permisos rw para www-data .
fuente
www-data
??? Eso realmente suena totalmente no seguro en absoluto.Dar acceso completo a todos los archivos wp al
www-data
usuario (que en este caso es el usuario del servidor web) puede ser peligroso. Entonces, NO hagas esto:Sin embargo, puede ser útil en el momento en que instala o actualiza WordPress y sus complementos. Pero cuando haya terminado, ya no es una buena idea mantener los archivos wp propiedad del servidor web.
Básicamente permite al servidor web colocar o sobrescribir cualquier archivo en su sitio web. Esto significa que existe la posibilidad de hacerse cargo de su sitio si alguien logra usar el servidor web (o un agujero de seguridad en algún script .php) para colocar algunos archivos en su sitio web.
Para proteger su sitio contra dicho ataque, debe hacer lo siguiente:
Fuente e información adicional: http://codex.wordpress.org/Hardening_WordPress
fuente
Para aquellos que tienen su carpeta raíz de WordPress debajo de su carpeta de inicio:
** Ubuntu / apache
CRÉDITO Otorgar permisos de escritura al grupo www-data
Desea llamar
usermod
a su usuario. Entonces eso sería:** Suponiendo que el
www-data
grupo existeComprueba que tu usuario está en el
www-data
grupo:groups yourUserName
Deberías obtener algo como:
** youUserGroupName suele ser similar a su nombre de usuario
Cambie recursivamente la propiedad del grupo de la carpeta wp-content manteniendo la propiedad de su usuario
chown yourUserName:www-data -R youWebSiteFolder/wp-content/*
Cambie el directorio a youWebSiteFolder / wp-content /
cd youWebSiteFolder/wp-content
Cambie recursivamente los permisos de grupo de las carpetas y subcarpetas para habilitar los permisos de escritura:
find . -type d -exec chmod -R 775 {} \;
** el modo de `/ home / yourUserName / youWebSiteFolder / wp-content / 'cambió de 0755 (rwxr-xr-x) a 0775 (rwxrwxr-x)
Cambie recursivamente los permisos de grupo de los archivos y subarchivos para habilitar los permisos de escritura:
find . -type f -exec chmod -R 664 {} \;
El resultado debería ser similar a:
Equivalente a:
chmod -R ug + rw nombre de carpeta
Los permisos serán como 664 para archivos o 775 para directorios.
Ps si alguien encuentra un error
'could not create directory'
al actualizar un complemento, hazlo:server@user:~/domainame.com$ sudo chown username:www-data -R wp-content
cuando estés en la raíz de tu dominio.
Suponiendo:
wp-config.php
tienecredenciales FTP en LocalHost
define('FS_METHOD','direct');
fuente
Lo mejor es leer la documentación de WordPress en este https://wordpress.org/support/article/changing-file-permissions/
fuente
Establezco permisos para:
En mi caso, creé un usuario específico para WordPress que es diferente del usuario predeterminado de apache que impide el acceso desde la web a los archivos que posee ese usuario.
Luego le da permiso al usuario de apache para manejar la carpeta de carga y finalmente establecer permisos de archivos y carpetas lo suficientemente seguros.
EDITADO
Si está utilizando W3C Total Cache, también debe hacer lo siguiente:
¡Entonces funcionará!
EDITADO
Después de un tiempo desarrollando sitios de WordPress, recomendaría diferentes permisos de archivos por entorno:
En producción, no daría acceso a los usuarios para modificar el sistema de archivos, solo les permitiré cargar recursos y dar acceso a algunas carpetas específicas de complementos para hacer copias de seguridad, etc. Pero administrar proyectos bajo Git y usar las teclas de implementación en el servidor, no es bueno actualizar los complementos en la puesta en escena ni en la producción. Os dejo aquí la configuración del archivo de producción:
www-data: www-data = usuario y grupo apache o nginx
La puesta en escena compartirá los mismos permisos de producción, ya que debería ser un clon.
Finalmente, el entorno de desarrollo tendrá acceso para actualizar complementos, traducciones, todo ...
www-data: www-data = usuario apache o nginx y agrupa a tu usuario: root-group = tu usuario actual y el grupo raíz
Estos permisos le darán acceso para desarrollar bajo
themes
yyour-plugin
carpeta sin pedir permiso. El resto del contenido será propiedad del usuario de Apache o Nginx para permitir que WP administre el sistema de archivos.Antes de crear un repositorio de git, primero ejecute estos comandos:
fuente
Los permisos correctos para el archivo son 644 Los permisos correctos para la carpeta son 755
Para cambiar los permisos, use la terminal y los siguientes comandos.
755 para carpetas y 644 para archivos.
fuente
Creo que las siguientes reglas se recomiendan para un sitio predeterminado de WordPress:
Para carpetas dentro de wp-content, establezca los permisos 0755:
Complementos chmod -R 0755
chmod -R 0755 cargas
Actualización de chmod -R 0755
Deje que el usuario apache sea el propietario de los directorios anteriores de wp-content:
cargas de apache chown
actualización de apache chown
complementos de apache conocidos
fuente
De hecho, depende de los complementos que planea usar, ya que algunos complementos cambian el documento raíz de WordPress. pero generalmente recomiendo algo como esto para el directorio de wordpress.
Esto asignará la "raíz" (o el usuario que esté usando) como usuario en cada archivo / carpeta, R significa recursivo, por lo que simplemente no se detiene en la carpeta "html". si no usó R, entonces solo se aplica al directorio "html".
Esto establecerá el propietario / grupo de "wp-content" en "www-data" y así permitirá que el servidor web instale los complementos a través del panel de administración.
Esto establecerá el permiso de cada archivo en la carpeta "html" (incluidos los archivos en subdirectorios) en 644, por lo que las personas externas no pueden ejecutar ningún archivo, modificar ningún archivo, el grupo no puede ejecutar ningún archivo, modificar cualquier archivo y solo el usuario puede modificar / leer archivos, pero aun así el usuario no puede ejecutar ningún archivo. Esto es importante porque evita cualquier tipo de ejecución en la carpeta "html", ya que el propietario de la carpeta html y todas las demás carpetas excepto la carpeta wp-content son "root" (o su usuario), el www-data can ' t modifique cualquier archivo fuera de la carpeta wp-content, por lo que incluso si hay alguna vulnerabilidad en el servidor web, y si alguien accedió al sitio sin autorización, no puede eliminar el sitio principal excepto los complementos.
Esto restringirá el permiso de acceso a "wp-config.php" al usuario / grupo con rw-r ----- estos permisos.
Y si un complemento o actualización se quejó de que no puede actualizarse, acceda al SSH y use este comando, y otorgue el permiso temporal a "www-data" (servidor web) para actualizar / instalar a través del panel de administración, y luego revertir volver a la "raíz" o su usuario una vez que se haya completado.
Y en Nginx (el mismo procedimiento para el apache) para proteger la carpeta wp-admin del acceso no autorizado y el sondeo. Apache2-utils es necesario para cifrar la contraseña incluso si tiene instalado nginx, omita c si planea agregar más usuarios al mismo archivo.
Ahora visita esta ubicación
Use estos códigos para proteger la carpeta "wp-admin" con una contraseña, ahora le pedirá la contraseña / nombre de usuario si intentó acceder a "wp-admin". observe, aquí usa el archivo ".htpasswd" que contiene la contraseña cifrada.
Ahora reinicie el nginx.
fuente
Comandos:
Donde ftp-user es qué usuario está utilizando para cargar los archivos
fuente
$(whoami)
lugar deftp-user
. De forma predeterminada, su usuario actual ( no root ) es su usuario FTP si está utilizando su propio servidor (local, vps, etc.)Para asegurarse absolutamente de que su sitio web es seguro y de que está utilizando los permisos correctos para sus carpetas, use un complemento de seguridad como este:
https://en-ca.wordpress.org/plugins/all-in-one-wp-security-and-firewall/
https://en-ca.wordpress.org/plugins/wordfence/
Estos complementos escanearán su instalación de Wordpress y le notificarán sobre posibles problemas. Estos también le advertirán sobre cualquier permiso de carpeta inseguro. Además de eso, estos complementos le recomendarán qué permisos deben asignarse a las carpetas.
fuente
fuente
No puedo decirte si esto es correcto o no, pero estoy usando una imagen de Bitnami sobre Google Compute App Engine. Tengo problemas con los complementos y la migración, y después de desordenar aún más los cambios de permisos, encontré estas tres líneas que resolvieron todos mis problemas. No estoy seguro de si es la forma correcta, pero funcionó para mí.
fuente
Para OS X use este comando:
fuente
Definir en el archivo wp_config.
chown: cambia la propiedad de los archivos / directorios. Es decir. el propietario del archivo / directorio cambia al especificado, pero no modifica los permisos.
fuente
Basado en toda la lectura y agonía en mis propios sitios y después de haber sido pirateado, he creado la lista anterior que incluye permisos para un complemento de seguridad para Wordpress llamado Wordfence. (No afiliado a ella)
En nuestro ejemplo, la raíz del documento de WordPress es /var/www/html/example.com/public_html
Abra los permisos para que www-data pueda escribir en la raíz del documento de la siguiente manera:
Ahora desde el panel de su sitio, como administrador puede realizar actualizaciones.
Sitio seguro después de finalizar las actualizaciones siguiendo estos pasos:
El comando anterior cambia los permisos de todo en la instalación de WordPress para el usuario FTP de WordPress.
El comando anterior garantiza que el complemento de seguridad Wordfence tenga acceso a sus registros. El directorio de cargas también se puede escribir con www-data.
El comando anterior también garantiza que el complemento de seguridad haya requerido acceso de lectura y escritura para su correcto funcionamiento.
Permisos de directorio y archivos
Establezca los permisos para wp-config.php en 640 para que solo wp-user pueda leer este archivo y nadie más. Los permisos de 440 no me funcionaron con la propiedad del archivo anterior.
Las actualizaciones automáticas de Wordpress con SSH funcionaban bien con PHP5 pero rompieron con PHP7.0 debido a problemas con php7.0-ssh2 bundeld con Ubuntu 16.04 y no pude encontrar cómo instalar la versión correcta y hacer que funcione. Afortunadamente, un complemento muy confiable llamado ssh-sftp-Updater-support (gratuito) hace posible las actualizaciones automáticas usando SFTP sin necesidad de libssh2. Por lo tanto, los permisos anteriores nunca tienen que aflojarse, excepto en casos excepcionales, según sea necesario.
fuente