Ustawienie odpowiednich uprawnień do plików jest konieczne, by nikt nie zrobił ci z nimi niczego złego, a także by twoja strona www działała. Żeby to zrobić, musisz trochę o tym wiedzieć.

Podstawy

Każdy plik ma swojego właściciela. Jeśli utworzysz jakiś plik, to oczywiście ty jesteś jego właścicielem.
Zmieniać właścicieli plików może tylko administrator komputera (root). W szczególności, nie jesteś w stanie "oddać" swojego pliku komuś innemu.

Każdy użytkownik należy do pewnej grupy użytkowników. Na bossie uczniowie pogrupowani są w klasy, a nauczyciele należą do grupy staff.

Uprawnienia do każdego pliku składają się z trzech części: uprawnień dla właściciela (user), uprawnień dla grupy (group) i dla pozostałych (other).
Uprawnienia każdej z części mogą być opisane liczbą od 0 do 7, albo podzbiorem zbioru literek {r,w,x}. Literki te oznaczają odpowiednio read, write, execute, czyli prawa do czytania, zapisywania i wykonywania pliku.
Polecenie ls -l powoduje wyświetlenie szczegółowych informacji na temat pliku, w tym jego uprawnień.

cypisek@boss ~ $ ls -l example
-rwxr-xr-- 1 cypisek staff 0 Apr 2 12:50 example

Ten plik należy do użytkownika cypisek i do grupy staff. Jego uprawnienia opisane są ciągiem znaków -rwxr-xr-- .
Do zmiany uprawnień służy polecenie chmod . Na przykład, ustawienie powyższych uprawnień plikowi example mogło zostać dokonane w następujący sposób:

cypisek@boss ~ $ chmod u=rwx,g=rx,o=r example

Albo, używając kodów numerycznych:

cypisek@boss ~ $ chmod 754 example

Najlepiej używać uprawnień rw------- (600) do zwykłych plików, rwx------ (700) do plików wykonywalnych i rwx--x--x (711) do katalogów. Ewentualnie można użyć uprawnień rw-r--r-- (644) jeśli chce się jakiś plik udostępnić innym użytkownikom.

Uprawnienia rozszerzone

Linux obsługuje także rozszerzone uprawnienia, dzięki którym można pozwolić np. tylko na dopisanie czegoś na końcu pliku, czy inne ciekawe rzeczy. Do wyświetlania i zmiany tych uprawnień służą polecenia lsattr i chattr . Nie sądze, żeby było ci to kiedyś potrzebne, a jeśli, to polecam poszukanie informacji np. w wikipedii.

Listy dostępu do plików (ACL)

To natomiast jest bardzo ciekawa rzecz, choć do używania wymaga trochę wprawy. Pozwala na nadanie praw do pliku tylko konkretnym użytkownikom. Przydaje się to np. przy projektach grupowych. Następujący ciąg poleceń powoduje nadanie użytkownikowi user1 prawa do odczytu, a użytkownikowi user2 do odczytu i zapisu do pliku example:

cypisek@boss ~ $ setfacl -m user1:r example
cypisek@boss ~ $ setfacl -m user2:rw example

Listę dostępu do pliku można wyświetlić poleceniem getfacl:

cypisek@boss ~ $ getfacl example
# file: example
# owner: cypisek
# group: staff
user::rw-
user:user1:r--
user:user2:rw-
group::r--
mask::rw-
other::---

Więcej szczegółów można poznać, używając polecenia man setfacl.