Rozdział 6: Uprawnienia — kto co może robić 🔐
Po co są uprawnienia?
W Linuksie każdy plik i folder ma uprawnienia — kto może go czytać, zmieniać i uruchamiać. To jest ważne ze względu na bezpieczeństwo — nie chcesz żeby każdy program mógł zmieniać Twoje pliki!
Czytanie uprawnień
Wróć do folderu gry i spójrz na szczegóły:
cd ~/projekty/nyan-cat-runner
ls -l
Widzisz na początku każdej linii coś takiego:
drwxr-xr-x ... assets
-rw-r--r-- ... README.md
Te literki to uprawnienia! Rozbijmy je:
d rwx r-x r-x
│ │ │ │
│ │ │ └── inni użytkownicy (other)
│ │ └────── grupa (group)
│ └────────── właściciel (user/owner) — to Ty!
└───────────── typ: d = folder, - = plik
Literki:
r= read (czytanie) — możesz zobaczyć zawartośćw= write (pisanie) — możesz zmieniaćx= execute (uruchamianie) — możesz uruchomić (ważne dla programów i skryptów!)-= brak uprawnienia
Więc rwxr-xr-x oznacza:
- Właściciel: rwx = może wszystko
- Grupa: r-x = może czytać i uruchamiać, ale nie zmieniać
- Inni: r-x = tak samo
chmod — zmiana uprawnień
chmod to CHange MODe. Nasz plik Pythona musi być wykonywalny (executable), żebyśmy mogli go uruchomić bezpośrednio:
ls -l src/nyan_cat.py
Prawdopodobnie widzisz -rw-r--r-- — brak x, więc nie można go uruchomić jako program.
chmod +x src/nyan_cat.py
ls -l src/nyan_cat.py
Teraz powinno być -rwxr-xr-x — dodaliśmy prawo do uruchamiania!
Jest też sposób z liczbami:
r= 4w= 2x= 1
Dodajesz je: rwx = 4+2+1 = 7, r-x = 4+0+1 = 5, r-- = 4+0+0 = 4
chmod 755 src/nyan_cat.py # rwxr-xr-x
chmod 644 README.md # rw-r--r--
755 i 644 to najczęściej używane — warto zapamiętać!
Shebang — magiczna pierwsza linia
Otwórz nasz plik gry:
nano src/nyan_cat.py
Na samym początku pliku (pierwsza linia!) dopisz:
#!/usr/bin/env python3
Zapisz i wyjdź.
Ta linia nazywa się shebang (#!). Mówi systemowi: “uruchom ten plik za pomocą python3”. Dzięki temu (i uprawnieniom +x) możesz uruchomić plik tak:
./src/nyan_cat.py
./ oznacza “z bieżącego folderu”. Bez tego Linux szukałby programu src/nyan_cat.py w systemowych folderach i go nie znalazł.
whoami i groups
whoami # kto to ja?
groups # do jakich grup należę?
Te komendy pokazują Twojego użytkownika i Twoje grupy. Przydatne kiedy musisz zrozumieć uprawnienia.
🏆 Wyzwanie
- Sprawdź uprawnienia pliku
src/nyan_cat.py(ls -l) - Dodaj shebang na początek pliku (jeśli jeszcze tego nie zrobiłaś)
- Daj mu uprawnienia do uruchomienia (
chmod +x) - Uruchom go! (
./src/nyan_cat.pyalbopython3 src/nyan_cat.py) - Użyj
whoamiigroupsżeby zobaczyć kim jesteś w systemie