Problema con permisos /var/www

Buenas a todos!

Supongo que más o menos sabréis por donde van los tiros. Estoy haciendo cosas con mi propia BD en MySql, con PHP, Apache y demás cosas, y los archivos hay que meterlos en esa carpeta. El caso es que de primeras, esa carpeta tiene permisos para que solo "root" pueda hacer cosas.

He mirado por internet los permisos correctos que hay que darle y he leido que apache "entra" desde el grupo "www-data", así que tengo que poner que la carpeta "www" y todo lo que haya dentro tiene como propietario a "root" y como grupo "www-data" y luego incluirme dentro del grupo "www-data".

Aqui se ve que soy miembro del grupo "www-data"
tinaut1986@Junior:/var$ groups tinaut1986
tinaut1986 : tinaut1986 adm cdrom sudo dip www-data plugdev lpadmin sambashare


Y aqui se ve que el grupo de la carpeta "www" es "www-data" (y el propietario, "root")
tinaut1986@Junior:/var$ ls -l
total 48
drwxr-xr-x  2 root root     4096 mar 28 10:15 backups
drwxr-xr-x 16 root root     4096 mar 28 11:31 cache
drwxrwxrwt  2 root root     4096 oct 18 17:08 crash
drwxr-xr-x 67 root root     4096 mar 28 11:35 lib
drwxrwsr-x  2 root staff    4096 oct  9 17:03 local
lrwxrwxrwx  1 root root        9 mar 28 00:01 lock -> /run/lock
drwxr-xr-x 17 root root     4096 mar 28 11:35 log
drwxrwsr-x  2 root mail     4096 oct 17 16:56 mail
drwxrwsrwt  2 root mysql    4096 oct 17 16:59 metrics
drwxr-xr-x  2 root root     4096 oct 17 16:56 opt
lrwxrwxrwx  1 root root        4 mar 28 00:01 run -> /run
drwxr-xr-x 10 root root     4096 nov  4 16:45 spool
drwxrwxrwt  2 root root     4096 mar 28 12:53 tmp
drwxrwxr--  3 root www-data 4096 mar 28 11:59 www


Hay alguna explicación de porque no me deja acceder con mi usuario y tengo que entrar para hacer modificaciones como root?

tinaut1986@Junior:/var$ cd www/
bash: cd: www/: Permiso denegado


Gracias!!
Pues yo a priori no veo porqué no debería funcionar, prueba a cambiar el grupo a uno que ya tuvieses en tu user con un:
sudo chgrp tinaut1986 www


A ver si te deja entrar, porque yo he hecho una prueba y no tengo problemas:
Imagen

De todos modos a ver si alguien que sepa más del tema te puede echar una mano.
Prueba como root este comando y luego nos cuenta como te fue

chown www-data:www-data
vale, increíblemente y sin motivos, empezó a funcionarme de pronto unas horas después xD.

1985a escribió:Prueba como root este comando y luego nos cuenta como te fue

chown www-data:www-data


El caso es que probé a ponerle como propietario "tinaut1986" (quiero recordar que dejando el grupo como "www-data") y me funcionaba, pero cuando volvía a ponerle como propietario "root" (y dejando "www-data" como grupo), volvía a no funcionarme...

Teóricamente los cambios empiezan a funcionar sobre la marcha, no? Porque no entiendo porque cuando era "a través" del grupo no me dejaba, y cuando el propietario lo cambiaba a mi usuario, empezaba a funcionar al instante...

Pero bueno, sea como sea, el problema ya está solucionado :).

Muchas gracias por responder! Y un saludo!
yo tengo minombredeusuario:www-data, si solo lo vas a tocar tu... no tiene mucho sentido poner root a esa carpeta
KiAn escribió:yo tengo minombredeusuario:www-data, si solo lo vas a tocar tu... no tiene mucho sentido poner root a esa carpeta


Bien pensado, quizá tienes razón. Aún así, meterme dentro del grupo de propietarios tendría que funcionar exactamente igual (sabiendo que los permisos estaban configurados para ello). La molestia era no saber porqué no funcionaba algo que a priori si tenía que hacerlo.

Aún así, como ya digo, el tema está solucionado :) (Misteriosamente y sin ningún tipo de sentido, pero bueno xD). Gracias! :D
Tinaut1986 escribió:Aún así, como ya digo, el tema está solucionado :) (Misteriosamente y sin ningún tipo de sentido, pero bueno xD). Gracias! :D


No hay misterio, el cambio de grupo(s) en el usuario no es sobre la marcha y este debe autenticarse nuevamente para que los cambios sean efectivos. Así que si reiniciaste, reabriste tu sesión de entorno gráfico o iniciasteis sesión nueva en un terminal pues allí tienes tu respuesta.
Lo primero que deberias hacer es :
sudo chown -R www-data:www-data /var/www

Para que apache sea el propietario y si quieres poder entrar en la carpeta tienes que tener permisos de ejecución sobre esta si no me equivoco, en caso de tu usuario pertenezca al grupo www-data deberias hacer esto:
sudo chmod -R g+x /var/www

Para darle permisos de ejecucción al grupo propietario de la carpeta


Mierda acabo de ver que ya esta solucionado, vaya fail.
codestation escribió:
Tinaut1986 escribió:Aún así, como ya digo, el tema está solucionado :) (Misteriosamente y sin ningún tipo de sentido, pero bueno xD). Gracias! :D


No hay misterio, el cambio de grupo(s) en el usuario no es sobre la marcha y este debe autenticarse nuevamente para que los cambios sean efectivos. Así que si reiniciaste, reabriste tu sesión de entorno gráfico o iniciasteis sesión nueva en un terminal pues allí tienes tu respuesta.


Esto mismo es lo que quería saber entonces, cuando se hacía efectivo el cambio de grupo (supongo que iniciaría sesión nueva en terminal, porque por lo demás, ni reinicios in nada). Así que gracias :).

Finalshare escribió:Lo primero que deberias hacer es :
sudo chown -R www-data:www-data /var/www

Para que apache sea el propietario y si quieres poder entrar en la carpeta tienes que tener permisos de ejecución sobre esta si no me equivoco, en caso de tu usuario pertenezca al grupo www-data deberias hacer esto:
sudo chmod -R g+x /var/www

Para darle permisos de ejecucción al grupo propietario de la carpeta


Mierda acabo de ver que ya esta solucionado, vaya fail.

El problema es que eso mismo había hecho ya y nada xD. Aún así, no te preocupes, que a mi también me ha pasado :P xD.
si el grupo www-data no tiene permisos de escritura sobre los archivos, apache no podra escribir en ellos.

lo logico es dar a todo el contenido de /var/www como propietario www-data, porque lo normal es que tengas permisos 755 (rwx r-x r-x). al fin y al cabo, root va a poder hacer de todo en todos los sitios.

aunque si usas ubuntu, y quieres editarlo con tu usuario, mete a tu usuario en el grupo www-data y concede permisos 775 al directorio /var/www, de esta forma, los usuarios que pertenezcan al grupo www-data (775, rwx rwx r-x) tendran permisos de escritura en el directorio.
9 respuestas