777 est une mauvaise permission en général et je vais vous montrer pourquoi.
En dépit de ce à quoi cela peut ressembler dans un casino ou à Las Vegas, 777 ne signifie pas jackpot pour vous. Au contraire, jackpot pour ceux qui souhaitent modifier vos fichiers. 777 (et son cousin laid 666) permettent de lire et écrire des autorisations (et dans le cas de 777, Execute) à d' autres . Vous pouvez en apprendre plus sur le fonctionnement des autorisations de fichiers , mais en résumé, il existe trois groupes d'autorisations: propriétaire, groupe et autre . En définissant l'autorisation à 6 ou 7 ( rw-
ou rwx
) pour d' autres vous donner tout utilisateur la possibilité d'éditer et de manipuler les fichiers et dossiers. Comme vous pouvez l’imaginer, c’est généralement 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 créé un fichier avec de "mauvaises" autorisations (777 et 666). Maintenant, je vais basculer vers 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 que cet utilisateur "malveillant", j'ai pu placer des fichiers dans le répertoire et injecter du texte dans des fichiers existants. Considérant ci-dessous, dans un répertoire avec 755 et des fichiers avec 644, je suis capable de voir les fichiers et les répertoires à l'intérieur, mais je ne peux pas éditer 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 souhaiterez vous en tenir à 0755 et 0644 (AKA 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 le minimum d'accès nécessaire pour fonctionner.