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 root, root del grupo. Mientras que la raíz del usuario tiene permiso de escritura (más permisos de lectura y ejecución) en el directorio, la raíz del grupo solo tiene permisos de lectura y ejecución.
Queremos cambiar la propiedad del grupo a otro (nuevo) grupo y agregar 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
Comprueba que user1 está realmente en ese grupo,
groups user1
El resultado debería ser una lista como,
user1 : <other-groups> site1
Ahora podemos cambiar la propiedad del grupo de su directorio previsto.
sudo chown -vR :site1 /var/www/site1/
changed ownership of `/var/www/site1/' from root:root to :site1
Otorgue permiso de escritura a este nuevo propietario del grupo,
sudo chmod -vR g+w /var/www/site1/
mode of `/var/www/site1/' changed from 0755 (rwxr-xr-x) to 0775 (rwxrwxr-x)
Comprueba 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 root, grupo site1. Tanto el usuario root como el sitio de grupo1 tienen permiso de escritura (más 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 del sitio1 e intente crear un archivo en ese directorio,
echo "My User1 Site" > index.html
bash: index.html: Permission denied
Esto falló ya que lo más probable es que el grupo principal de usuario1 no sea sitio1. Entonces, cambia a ese grupo.
newgrp - site1
Intente volver a crear el archivo (tenga en cuenta que ha sido trasladado al directorio de inicio del usuario1 después de cambiar el 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 sitio1 grupo.
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 los scripts PHP) se realizará con los permisos del usuario www-data (y también el grupo www-data) de forma predeterminada. WordPress utiliza el usuario www-data para escribir archivos.
Si desea ver cómo se está ejecutando el servidor web Apache, emita el comando,
ps aux | grep apache2 | less
Permission denied
mensaje no se debe al "grupo primario", sino al usuario que aún no está en ese grupo (en lo que respecta al sistema operativo). Si cierra sesión y vuelve a iniciarla, funcionará como se esperaba (sin ejecutarsenewgrp - site1
).www-data
permisos de escritura grupales siwww-data
desite1
todos modos tiene que agregar ?www-data' write permissions? If that is the question,
www-data 'no es un grupo, es un usuario? Avíseme si entendí mal su pregunta.Crea dos grupos:
site1grp
ysite2grp
Añadir
www-data
a ambos grupos.Agregue user1 y user2 a los grupos apropiados
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
Ahora
www-data
tiene los permisos de usuario y grupo en ambos sitios y cada usuario tiene los permisos de grupo para su sitio respectivo.fuente
Para aquellos que tienen su carpeta raíz de WordPress debajo de su carpeta de inicio:
Ubuntu / apache
Agregue su usuario al grupo www-data:
CRÉDITO Otorgar permisos de escritura al grupo www-data
Quiere llamar
usermod
a su usuario. Entonces eso sería:Asumiendo que el
www-data
grupo existeComprueba que tu usuario está en el
www-data
grupo:Deberías obtener algo como:
yourUserGroupName suele ser similar a su nombre de usuario
Cambie recursivamente la propiedad grupal de la carpeta manteniendo la propiedad de su usuario
Cambiar el directorio a yourWebSiteFolder
Cambie recursivamente los permisos de grupo de las carpetas y subcarpetas para habilitar los permisos de escritura:
modo de
/home/yourUserName/yourWebSiteFolder/'
cambio de0755 (rwxr-xr-x)
a0775 (rwxrwxr-x)
Cambie recursivamente los permisos de grupo de los archivos y subarchivos para habilitar los permisos de escritura:
El resultado debería ser similar a:
Equivalente a:
Los permisos serán como 664 o 775.
fuente
Debe crear un nuevo grupo, para el llamado "nuevo usuario", y luego agregar los datos de www y el "nuevo usuario" a ese grupo:
Luego puede cambiar el propietario
new_user
y el grupo anew_group
:Luego deberá dar acceso a nivel de grupo al sitio1. www-data aún podrá acceder al sitio, porque pertenece al nuevo grupo, mientras que new_user no podrá acceder al sitio2, porque no pertenecerá al grupo de datos www, que posee el sitio2.
fuente
chmod
)? Su respuesta no menciona el modo en ningún lugar que pueda marcar la diferencia de ser seguro (o romper cosas).chmod
) al revocar todos los permisos para OTROS.Suponiendo que todos los archivos ya pertenecen al
www-data
usuario (puede verificarlo con ells -slah
comando) que pertenece alwww-data
grupo (siguiente columna después del nombre de usuario en la lista de archivos), simplemente puede agregar su usuario al mismowww-data
grupo para permitir la edición de estos archivospara usuario existente, o
para uno recién creado
fuente