777 est une mauvaise permission en général et je vais vous montrer pourquoi.
Malgré son apparence dans un casino ou à Las Vegas, le 777 ne signifie pas pour vous le gros lot. Plutôt, un jackpot pour quiconque souhaite modifier vos fichiers. 777 (et son vilain cousin 666) autorisent les autorisations de lecture et d'écriture (et dans le cas de 777, Execute) à autre . Vous pouvez en savoir plus sur le fonctionnement des autorisations de fichier , mais en bref, il existe trois groupes de autorisations: propriétaire, groupe et autre . En définissant l'autorisation sur 6 ou 7 ( rw-
ou 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, cela nuit à la sécurité.
Voici mon exemple:
[email protected]:~/Projects/AskUbuntu/20105$ cd ..
[email protected]:~/Projects/AskUbuntu$ chmod 0777 20105
[email protected]:~/Projects/AskUbuntu$ cd 20105/
[email protected]:~/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 ..
[email protected]:~/Projects/AskUbuntu/20105$ touch test
[email protected]:~/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 passer à un autre utilisateur et essayer de manipuler ces fichiers.
[email protected]:~/Projects/AskUbuntu/20105$ sudo su - malicious
[email protected]:~$ cd /home/marco/Projects/AskUbuntu/20105
[email protected]:/home/marco/Projects/AskUbuntu/20105$ ls
test
[email protected]:/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
[email protected]:/home/marco/Projects/AskUbuntu/20105$ touch bad
[email protected]:/home/marco/Projects/AskUbuntu/20105$ echo "OVERWRITE" > test
[email protected]:/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 existants. Alors que ci-dessous, dans un répertoire avec 755 et des fichiers avec 644, je peux voir à l'intérieur des fichiers et des répertoires mais je ne peux ni éditer les fichiers ni en créer de nouveaux:
[email protected]:/home/marco/Projects/AskUbuntu/20105$ cd /home/marco/Projects
[email protected]:/home/marco/Projects$ touch hey
touch: cannot touch 'hey': Permission denied
Pour les autorisations Apache, vous devez vous en tenir aux numéros 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 offrant à Apache les niveaux d’accès minimum nécessaires pour fonctionner.