777 es un mal permiso en general y le mostraré por qué.
A pesar de cómo se ve en un casino o en Las Vegas, 777 no significa un premio gordo para ti. Más bien, premio mayor para cualquiera que desee modificar sus archivos. 777 (y su primo feo 666) permiten permisos de lectura y escritura (y en el caso de 777, Ejecutar) a otros . Puede obtener más información sobre cómo funcionan los permisos de archivos , pero en resumen, hay tres grupos de permisos: propietario, grupo y otros . Al establecer el permiso en 6 o 7 ( rw-
o rwx
) para otro, le da a cualquier usuario la posibilidad de editar y manipular esos archivos y carpetas. Por lo general, como puede imaginar, esto es malo para la seguridad.
Aquí está mi ejemplo:
marco@desktop:~/Projects/AskUbuntu/20105$ cd ..
marco@desktop:~/Projects/AskUbuntu$ chmod 0777 20105
marco@desktop:~/Projects/AskUbuntu$ cd 20105/
marco@desktop:~/Projects/AskUbuntu/20105$ ls -lah
total 8.0K
drwxrwxrwx 2 marco marco 4.0K 2011-01-04 20:32 .
drwxr-xr-x 3 marco marco 4.0K 2011-01-04 20:32 ..
marco@desktop:~/Projects/AskUbuntu/20105$ touch test
marco@desktop:~/Projects/AskUbuntu/20105$ chmod 0666 test
Hasta ahora he creado una carpeta e hice un archivo con permisos "malos" (777 y 666). Ahora cambiaré a otro usuario e intentaré manipular esos archivos.
marco@desktop:~/Projects/AskUbuntu/20105$ sudo su - malicious
malicious@desktop:~$ cd /home/marco/Projects/AskUbuntu/20105
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ ls
test
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ ls -lah
total 8.0K
drwxrwxrwx 2 marco marco 4.0K 2011-01-04 20:33 .
drwxr-xr-x 3 marco marco 4.0K 2011-01-04 20:32 ..
-rw-rw-rw- 1 marco marco 0 2011-01-04 20:33 test
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ touch bad
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ echo "OVERWRITE" > test
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ cat test
OVERWRITE
Como este usuario "malicioso" pude colocar archivos en el directorio e inyectar texto en archivos ya existentes. Mientras que a continuación, en un directorio con 755 y archivos con 644, puedo ver dentro de los archivos y directorios, pero no puedo editar los archivos ni crear nuevos:
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ cd /home/marco/Projects
malicious@desktop:/home/marco/Projects$ touch hey
touch: cannot touch `hey': Permission denied
Para los permisos de Apache, querrá apegarse a 0755 y 0644 (AKA umask 022
) para carpetas y archivos, respectivamente. Esto le permite, como propietario de los archivos, editarlos y manipularlos mientras le da a Apache los niveles mínimos de acceso necesarios para operar.