Este equipo de especialistas despúes de días de investigación y de juntar de datos, hallamos los datos necesarios, queremos que te sea útil para tu plan.
Solución:
Si verificamos la propiedad del sitio1, encontraremos algo como esto,
ls -ld /var/www/site1/
drwxr-xr-x 2 root root 4096 Oct 24 21:06 site1/
Esto significa que el directorio es propiedad del usuario raíz, grupo raíz. Mientras que la raíz del usuario tiene permiso de escritura (además de permisos de lectura y ejecución) en el directorio, la raíz del grupo solo tiene permisos de lectura y ejecución.
Querremos cambiar la propiedad del grupo a otra (nuevo) group y agregue user1 a ese grupo en particular. También daremos permiso de escritura a ese grupo en particular.
Crea un nuevo grupo,
sudo addgroup site1
Agregue user1 al grupo recién creado,
sudo adduser user1 site1
Compruebe que el usuario1 esté realmente en ese grupo,
groups user1
La salida debería ser una lista como,
user1 : site1
Ahora podemos cambiar la propiedad del grupo de su directorio deseado.
sudo chown -vR :site1 /var/www/site1/
changed ownership of `/var/www/site1/' from root:root to :site1
Otorga permiso de escritura a este nuevo propietario de grupo,
sudo chmod -vR g+w /var/www/site1/
mode of `/var/www/site1/' changed from 0755 (rwxr-xr-x) to 0775 (rwxrwxr-x)
Compruebe que todos los cambios estén ahí,
ls -ld /var/www/site1/
drwxrwxr-x 2 root site1 4096 Oct 24 21:06 /var/www/site1/
Entonces, el directorio ahora es propiedad del usuario raíz, grupo site1. Tanto el usuario raíz como el grupo site1 tienen permiso de escritura (además de permisos de lectura y ejecución) en el directorio. Cualquier usuario que pertenezca al grupo site1 disfrutará de todos los privilegios otorgados a ese grupo.
Ahora inicie sesión como usuario1, vaya al directorio site1 e intente crear un archivo en ese directorio,
echo "My User1 Site" > index.html
bash: index.html: Permission denied
Esto falló porque lo más probable es que el grupo principal de user1 no sea site1. Entonces, cámbiate a ese grupo.
newgrp - site1
Intente volver a crear el archivo (tenga en cuenta que lo han movido al directorio de inicio de user1 después de cambiar de grupo), esto debería funcionar ahora. Dado que los archivos creados tendrán permiso de lectura mundial, apache (o su servidor web) no debería tener ningún problema para acceder a ellos.
EDITAR
Además, como señaló dan08 en el comentario, debe agregar www-data al grupo site1.
sudo adduser www-data site1
En muchas (no todas) distribuciones, www-data es el usuario bajo el cual se ejecuta el servidor web Apache. Esto también significa que todo lo que haga Apache (especialmente, incluidos los scripts PHP) se hará con los permisos del usuario www-data (y también del grupo www-data) de forma predeterminada. WordPress usa los datos www del usuario para escribir archivos.
Si desea ver cómo se está ejecutando el servidor web apache, emita el comando,
ps aux | grep apache2 | less
Para aquellos que tienen su carpeta raíz de wordpress en su carpeta de inicio:
Ubuntu / apache
-
Agregue su usuario al grupo www-data:
CRÉDITO Concesión de permisos de escritura a www-data group
Quieres llamar
usermod
en su usuario. Entonces eso sería:sudo usermod -aG www-data yourUserName
Asumiendo
www-data
el grupo existe -
Comprueba que tu usuario está en
www-data
grupo:groups yourUserName
Deberías obtener algo como:
yourUserName : yourUserGroupName www-data
yourUserGroupName suele ser similar a su nombre de usuario
-
Cambie de forma recurrente la propiedad de grupo de la carpeta manteniendo la propiedad de su usuario
chown yourUserName:www-data -R yourWebSiteFolder/*
-
Cambie el directorio a yourWebSiteFolder
cd yourWebSiteFolder
-
Cambie de forma recurrente los permisos de grupo de las carpetas y subcarpetas para habilitar los permisos de escritura:
find . -type d -exec chmod -R 775 ;
modo de
/home/yourUserName/yourWebSiteFolder/'
cambiaron desde0755 (rwxr-xr-x)
a0775 (rwxrwxr-x)
-
Cambie de forma recursiva 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 tener un aspecto similar al siguiente:
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
Equivalente a:
chmod -R ug+rw foldername
Los permisos serán como 664 o 775.
Crea dos grupos: site1grp
y site2grp
sudo groupadd site1grp && sudo groupadd site2grp
Agregar www-data
a ambos grupos.
sudo adduser www-data site1grp && sudo adduser www-data site2grp
Agregue user1 y user2 a los grupos apropiados
sudo adduser user1 site1grp && sudo adduser user2 site2grp
Cambie el permiso de las carpetas de su sitio para que el propietario del usuario sea www-data y el propietario del grupo sea el grupo apropiado
sudo chown -R www-data:site1grp /var/www/site1 && sudo chown -R www-data:site2grp /var/www/site2
Ahora www-data
tiene los permisos de usuario y de grupo en ambos sitios y cada usuario tiene los permisos de grupo para su sitio respectivo.
No se te olvide comunicar este ensayo si te fue de ayuda.