> > �Que tengo que configurar para que un usuario pueda poner su > > p�gina web y que el apache lo ceda a internet? > > si tienes cargado el m�dulo user (creo que es as�), basta con que el > usuario tenga la carpeta public_html en el directorio raiz y con > permisos 755 tanto su home como el public_html. M�s gr�fico: > > ls -l /home > drwxr-xr-x 33 paco usuarios 4096 nov 20 14:23 paco > > ls -l /home/paco > drwxr-xr-x 9 paco usuarios 4096 nov 14 19:09 public_html > > Pues s� que funciona y muy bien por cierto, pero esto genera un > problema de seguridad, ya que cualquier usuario que tenga acceso al > sistema puede ver las capetas personales de los dem�s usuarios. > > As� como por ejemplo, yo soy usuario del servidor y quiero tener > una p�gina web, pero eso implica que el resto de los usuarios pueden > acceder a los archivos que guardo.
Simple. Apache corre como el usuario www-data. Como puedes ver, el usuario www-data pertenece al grupo www-data: $ grep www /etc/passwd www-data:x:33:33:www-data:/var/www:/bin/sh $ grep 33 /etc/group www-data:x:33: ---------------- Con esta informaci�n en mente, pasemos un poquito a hablar de los permisos de tu directorio. Qu� significan los permisos de lectura (r, valor octal 4) y ejecuci�n (x, valor octal 1) en un directorio? El de lectura significa que puedo pedir el listado de archivos. El de ejecuci�n significa que puedo entrar al directorio en cuesti�n, y trabajar en �l siempre que sepa el nombre del archivo que busco. Te pongo un ejemplo: Primero que nada, creo un directorio y le pongo un archivo dentro: /tmp$ mkdir prueba /tmp$ cat > prueba/prueba.txt Esta es una prueba. /tmp$ ls -la prueba total 12 drwxr-xr-x 2 gwolf gwolf 4096 Nov 21 09:56 . drwxrwxrwt 6 root root 4096 Nov 21 09:55 .. -rw-r--r-- 1 gwolf gwolf 20 Nov 21 09:56 prueba.txt Ahora, lo pongo en un modo restrictivo, permiti�ndome s�lo la ejecuci�n del directorio: /tmp$ chmod 100 prueba/ /tmp$ ls -la prueba ls: prueba: Permission denied /tmp$ cat prueba/prueba.txt Esta es una prueba. Como puedes ver, ejecutar el directorio no me permite ver el listado de archivos, pero s� usarlos. Ahora, veamos si doy �nicamente lectura: /tmp$ chmod 400 prueba/ /tmp$ ls -la prueba ls: prueba/.: Permission denied ls: prueba/..: Permission denied ls: prueba/prueba.txt: Permission denied total 0 /tmp$ cat prueba/prueba.txt cat: prueba/prueba.txt: Permission denied Suena curioso, verdad? Pues no, es bastante l�gico: Pude ver el contenido del directorio, pero no pude tocar nada de lo que est� dentro - El comando ls hace un 'stat' a cada archivo para ver su modo, tama�o, fecha de modificaci�n y dem�s atributos. Con estos mismos permisos, puedo emular un ls b�sico perfectamente (meto un poco de mano para que maneje los archivos iniciados en '.': /tmp$ for arch in prueba/.* prueba/*; do echo $arch; done prueba/. prueba/.. prueba/prueba.txt ---------------- Ahora, apliquemos esto a tu directorio: Quieres que ning�n usuario pueda entrar a tu directorio, y que el usuario www-data pueda entrar hasta tu public_html. Para ello, yo te sugiero: ~$ su Password: /home/gwolf# ls -ld . drwxr-xr-x 35 gwolf gwolf 4096 Nov 21 08:53 . /home/gwolf# chgrp www-data . /home/gwolf# chmod 710 . /home/gwolf# ls -ld . drwx--x--- 35 gwolf www-data 4096 Nov 21 08:53 . /home/gwolf# ls -ld public_html/ drwxr-xr-x 7 gwolf gwolf 4096 Nov 21 09:11 public_html/ De este modo: 1. Ning�n usuario que no pertenezca a www-data (o no seas t�) puede hacer nada en tu home 2. Los miembros del grupo www-data pueden ejecutar tu home, pero no listarlo. 3. Todo quien tenga derecho de llegar a tu public_html tiene acceso de lectura y ejecuci�n Claro, podr�as ac� tambi�n limitar a tu public_html a www-data �nicamente. Podr�as usar varios esquemas diferentes, se me ocurrieron ya varios, pero es hora de que siga trabajando ;-) Saludos, -- Gunnar Wolf - [EMAIL PROTECTED] - (+52-55)5623-1118 PGP key 1024D/8BB527AF 2001-10-23 Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5 27AF

