777 è un cattivo permesso in generale e ti mostrerò perché.
Nonostante come possa apparire in un casinò o a Las Vegas, 777 non significa jackpot per te. Piuttosto, jackpot per chiunque desideri modificare i tuoi file. 777 (e il suo brutto cugino 666) consentono autorizzazioni di lettura e scrittura (e, nel caso di 777, Execute) ad altri . Puoi saperne di più su come funzionano le autorizzazioni dei file , ma in breve ci sono tre gruppi di autorizzazioni: proprietario, gruppo e altro . Impostando l'autorizzazione su 6 o 7 ( rw-
o rwx
) per altri, si dà a qualsiasi utente la possibilità di modificare e manipolare quei file e cartelle. In genere, come puoi immaginare, questo è dannoso per la sicurezza.
Ecco il mio esempio:
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
Finora ho creato una cartella e creato un file con autorizzazioni "non valide" (777 e 666). Ora passerò a un altro utente e proverò a manipolare quei file.
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
Dato che questo utente "malizioso" sono stato in grado di posizionare i file nella directory e iniettare il testo in file già esistenti. Mentre di seguito, in una directory con 755 e file con 644, sono in grado di vedere i file e le directory all'interno ma non posso modificare i file né crearne di nuovi:
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ cd /home/marco/Projects
malicious@desktop:/home/marco/Projects$ touch hey
touch: cannot touch `hey': Permission denied
Per le autorizzazioni di Apache, ti consigliamo di attenersi rispettivamente a 0755 e 0644 (AKA umask 022
) per cartelle e file. Ciò consente, in qualità di proprietario dei file, di modificarli e manipolarli fornendo ad Apache i minimi livelli minimi di accesso necessari per operare.