CHMOD je povolení souboru podobné atributu -r nebo +r v DOS na PC. Na PHP serveru typu Unix/Linux je toto povolení je nutné zadat pro 3 uživatelské skupiny pro každý soubor.
- owner (privátní) - to jsi ty
- group (přátelé) - tvoji uživatelé
- other (veřejný) - kdokoli
Každá z těchto skupin může mít 3 různá povolení:
- read - pouze ke čtení
- write - zápis
- execute - spuštení souboru
Tyto 3 typy povolení se zkratkově označují r, w, x.
CHMOD potom tyto nastavení vyjadřuje takto:
400 - owner (privátní) má read povolení
200 - owner (privátní) má write povolení
100 - owner (privátní) má execute povolení
040 - group (přátelé) má read povolení
020 - group (přátelé) má write povolení
010 - group (přátelé) má execute povolení
004 - other (veřejný) má read povolení
002 - other (veřejný) má write povolení
001 - other (veřejný) má execute povolení
Požadovaná hodnota CHMOD se obdrží sečtením všech hodnot dohromady.
Například když owner, group a other všichni mají povolení read, write a execute, spočítají se všechny hodnoty dohromady, což se rovná 777. Toto povolení je vhodné pro stránky, které je nutné přepsat PHP skriptem, nebo pro složky, ve kterých se skriptem tvoří nebo mažou soubory.
Když owner, group a other všichni mají povolení read a write, ale nemají povolení execute, spočítá se:
400+200+40+20+4+2 = 666
Toto povolení se používá pro datové soubory, které se čtou a píšou ale nelze je spouštět.
Pro soubory skriptů se používá CHMOD 775, který znamená read, write a execute povolení pro owner, ale group a other mají pouze povolení read a execute, t.j.
400+200+100+40+10+4+1 = 755
Na většině serverů je pro PHP stránky automaticky nastaven defaultní CHMOD 755 a nemusí se ručně nastavovat.
Tyto 3 povolení jsou ty nejdůležitejší a měly by stačit pro většinu případů.
CHMOD lze vyjádřit i zkratkami s písmeny - některé FTP klienty to tak mají.
Povolení rwxr-xr-x jsou ve skutečnosti tyto 3 povolení spojené dohromady v jednom řádku:
rwx
r-x
r-x
tedy CHMOD 755.
CHMOD 666 by mohl být vyjádřen také rw-rw-rw-
a
CHMOD 777 by mohl být vyjádřen také rwxrwxrwx.