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:

Więc rwxr-xr-x oznacza:

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:

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

  1. Sprawdź uprawnienia pliku src/nyan_cat.py (ls -l)
  2. Dodaj shebang na początek pliku (jeśli jeszcze tego nie zrobiłaś)
  3. Daj mu uprawnienia do uruchomienia (chmod +x)
  4. Uruchom go! (./src/nyan_cat.py albo python3 src/nyan_cat.py)
  5. Użyj whoami i groups żeby zobaczyć kim jesteś w systemie