777 est une mauvaise permission en général et je vais vous montrer pourquoi.
Malgré son apparence dans un casino ou à Las Vegas, 777 ne signifie pas jackpot pour vous. Plutôt, jackpot pour quiconque souhaite modifier vos fichiers. 777 (et son vilain cousin 666) autorise les droits de lecture et d'écriture (et, dans le cas de 777, d'exécution) à autre . Vous pouvez en savoir plus sur comment fonctionnent les autorisations de fichiers En résumé, il existe trois groupes d'autorisations : le propriétaire, le groupe et l'utilisateur. autre . En réglant l'autorisation sur 6 ou 7 ( rw-
o rwx
) pour autre vous donnez à tout utilisateur la possibilité de modifier et de manipuler ces fichiers et dossiers. En général, comme vous pouvez l'imaginer, c'est mauvais pour la sécurité.
Voici mon exemple :
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
Jusqu'à présent, j'ai créé un dossier et un fichier avec de "mauvaises" permissions (777 et 666). Maintenant, je vais passer dans un autre utilisateur et essayer de manipuler ces fichiers.
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
En tant qu'utilisateur "malveillant", j'ai pu placer des fichiers dans le répertoire et injecter du texte dans des fichiers déjà existants. Alors qu'en dessous, dans un répertoire avec 755 et des fichiers avec 644, je suis capable de voir à l'intérieur des fichiers et des répertoires mais je ne peux pas modifier les fichiers ni en créer de nouveaux :
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ cd /home/marco/Projects
malicious@desktop:/home/marco/Projects$ touch hey
touch: cannot touch `hey': Permission denied
Pour les autorisations Apache, vous voudrez vous en tenir à 0755 et 0644 (alias umask 022
) pour les dossiers et les fichiers respectivement. Cela vous permet, en tant que propriétaire des fichiers, de les éditer et de les manipuler tout en donnant à Apache les niveaux d'accès minimums nécessaires pour fonctionner.