Poblemillas con los permisos
-
Necesito un poco de ayuda con esto:
tengo un equipo con mandrake 9.2 con 2 usuarios, el mio (kbre) y root, y tb he hecho un grupo el q he llamado web en el q he metido a kbre. he cambiado el grupo propiertario de /var/www de root a web, con el fin de poder escribir codigo en esa carpeta, el caso es q no hay forma. termporalmente lo q he hecho ha sido cambiar tb el usuario propitario del recurso, pero no me mola nada la solucion (mas q la solucion, no me mola no controlar los permisos en grupos)
otra cosa, como puede hacer para q TODO lo q cuelgue d ese directorio, aunq pertenezca a otro usuario, kbre lo pueda modificar?asias, y un saludo
-
chmod 777 carpeta
Esa seria la opcion a saco, con eso le das permisos completos a todos los usuarios del equipo.
El primer siete se refiere al dueño, el segundo al grupo i el tercero a los demas. Lo mas precabido es que los dos usuarios esten en el mismo grupo i le dés todos los permisos al grupo:
chmod g+w carpeta
chmod g+x carpeta
chmod g+r carpetaCarpeta, archivo o lo que sea
Salu2!
-
Siento discrepar, pero un 777 es una BURRADA, y mas PARA UNA WEB. Los permisos estan para algo, y anularlos porque te resulten incomodos no es la solucion. Si no quieres permisos para eso ya esta windows
Ademas, con "chmod 777 carpeta" no solucionas el problema, ya que no es recursivo.
Lo que tienes que hacer es que el grupo de todo lo que pongas en el directorio tenga permiso de escritura para el grupo de tu usuario. Ademas, si quieres tener acceso desde tu usuario a los subdirectorios del webroot, tambien tendras que dar permiso de ejecucion al los directorios.
Yo haria lo siguiente. Dices que tu usuario ya esta añadido a un grupo que has creado llamado web. Pues bien, ya existe un grupo para eso y un usuario para eso, aunque es igual de valido usar el que tu has creado, mejor usa el que ya existe por el tema de ser mas homogeneo o estandar. Tanto el usuario como el grupo se llaman www-data. Si tu distibucion hace lo que toca, ya deberian de haber sido añadidos tanto el usuario como el grupo al instalar el apache. En tal caso basta con que añadas a tu suario al grupo www-data. Si tu distribucion no ha hecho el "trabajo sucio" tendras que crear tu dicho usuario y dicho grupo. Es importante que si creas el ususario lo hagas con la opcion esa de que no pueda hacer login (por motivos de seguridad obvios). No recuerdo como se hace, pero tiene algo que ver con anular la variable que especifica el interprete de usuario (generalmente bash)
Por defecto el apache se ejecuta con el UID de www-data y el GID de www-data (salvo que hayas cambiado expresamente su configuracion).
Una vez añadido tu usuario al grupo (y creado el usuario si procede) debes de asignar permisos al webroot y darles el propietario correcto:
chown www-data:www-data /var/www -R
(ojo que es -R no -r)
Con eso ya has asignado el grupo y el usuario www-data a TODOS los ficheros, directorios y subdirectorios del webroot.Para hacer un servidor seguro vamos a partir de que al principio NADIE tenga permiso de nada salvo el propietario que tiene todos los permisos (logico) y el grupo, que tienen tanto de lectura como de ejecucion, poco a poco ya iras dando permisos a lo que te interes que sea accedido o modificado:
chmod 750 /var/www -RAdemas, si quieres que tu usuario tenga acceso de escritura en ciertos directorios debes de hacer algo asi (pongo como ejemplo que tu usario pueda añadir imagenes al directorio donde estas se guardan):
chmod 770 /var/www/imagenesComo supongo que tu servidor no va a ser dedicado para ambito corporativo, sino que va a ser un servidor "de estar por casa" en el que seguramente tu usuario sea el principal administrador que se encargue de añadir o modificar los archivos de la web, tampo seria una burrada haber hecho el segundo paso asi:
chmod 770 /var/www -R
con lo que el tercer paso podrias haberlo omitido por estar incluido ya en este.Con eso deberia de bastar. Simplemente asegurate de que cada vez que subas algo nuevo a la web, pertenece al grupo www-data, para que pueda ser accedido mediante el servidor. Por ejemplo, si quieres añadir una bueva pagina llamada minuevaweb.html que esta guardada en tu "home":
cd ~
chown :www-data minuevaweb.html
cp minuevaweb.html /var/wwwSi por ejemplo lo que quieres es añadir un nuevo directorio lleno de imagenes, y ademas qyueres poder seguir añadiendo nuevas imagenes uan vez copiado, pues deberias de hacer algo asi:
cd ~
cp misimagenes/ /var/www -r
chown :www-data /var/www/misimagenes -R
chmod 770 /var/www/misimagenes -RUn saludo.
-
Peazo explicación que te has marcado Nacho , yo iba a decirle más o menos lo mismo :rolleyes: ( es coña , no tengo tanto nivel :muerto: ); lo que si que le iba a decir es lo del grupo www-data y que me parecia excesivo un chmod 777.
Con lo cual ante tan buena explicación creo que, K-Bre tendrá solucionado el problema. Salu2!