Uprawnienia i sudo

Witaj ponownie.
W poprzedniej lekcji nauczyłeś się czytać pliki i wyszukiwać w nich tekst.
Teraz wchodzimy w część, w której Linux zaczyna mówić:
“Permission denied.”
Nie bierz tego do siebie.
Linux nie jest zły.
Linux po prostu chroni system przed chaosem, błędami i zaspanymi palcami z uprawnieniami administratora.
Czego Się Nauczysz
W tej lekcji nauczysz się:
- czym są uprawnienia plików;
- jak czytać symbole takie jak
rwx; - co oznaczają użytkownik, grupa i inni;
- jak sprawdzić aktualnego użytkownika za pomocą
whoami; - jak używać
chmod; - co robi
sudo; - dlaczego nie należy używać
sudojak ostrego sosu.
Misja
Twoja misja jest prosta:
Zrozumieć, dlaczego niektóre pliki można czytać, zmieniać lub uruchamiać — a inne uprzejmie odmawiają jak poważny ochroniarz przy drzwiach.
Sprawdź, Kim Jesteś
Najpierw sprawdź aktualnego użytkownika:
whoami
Możesz zobaczyć coś takiego:
viktor
To znaczy, że pracujesz jako użytkownik viktor.
Nie jesteś rootem.
I bardzo dobrze.
Bycie rootem cały czas jest jak jazda czołgiem po chleb.
Możliwe, ale niepotrzebne i trochę niepokojące.
Stwórz Plik do Ćwiczeń
Przejdź do folderu ćwiczeń:
cd ~/terminal-practice
Jeśli nie istnieje, stwórz go:
mkdir -p ~/terminal-practice
cd ~/terminal-practice
Stwórz plik:
touch permissions-demo.txt
Teraz pokaż go ze szczegółami:
ls -l permissions-demo.txt
Możesz zobaczyć coś takiego:
-rw-r--r-- 1 viktor viktor 0 May 2 10:00 permissions-demo.txt
Na początku wygląda strasznie.
Ale to nie magia.
To tylko informacje w poważnej marynarce.
Rozumienie Symboli Uprawnień
Spójrz na tę część:
-rw-r--r--
Pierwszy znak mówi o typie pliku:
- oznacza zwykły plik
d oznacza katalog
Potem uprawnienia są podzielone tak:
rw- r-- r--
Te grupy oznaczają:
użytkownik grupa inni
Czyli:
rw- właściciel może czytać i pisać
r-- grupa może tylko czytać
r-- inni mogą tylko czytać
Linux mówi w zasadzie:
“Właściciel może to edytować. Reszta może patrzeć, ale ręce do kieszeni.”
Co Oznaczają r, w i x
Uprawnienia używają trzech liter:
r = read
w = write
x = execute
Dla plików:
roznacza, że możesz czytać plik;woznacza, że możesz go zmieniać;xoznacza, że możesz uruchomić go jako program lub skrypt.
Dla katalogów:
roznacza, że możesz zobaczyć zawartość katalogu;woznacza, że możesz tworzyć lub usuwać pliki w środku;xoznacza, że możesz wejść do katalogu.
Tak, x na katalogu oznacza “wejść”.
Linux lubi utrzymywać życie interesującym.
Dodaj Tekst do Pliku
Zapisz coś w pliku:
echo "Permissions are important." > permissions-demo.txt
Przeczytaj go:
cat permissions-demo.txt
Powinieneś zobaczyć:
Permissions are important.
Na razie wszystko działa.
Plik należy do ciebie i możesz do niego pisać.
Usuń Prawo Zapisu
Teraz usuń sobie prawo zapisu:
chmod u-w permissions-demo.txt
Sprawdź:
ls -l permissions-demo.txt
Możesz zobaczyć:
-r--r--r-- 1 viktor viktor 28 May 2 10:00 permissions-demo.txt
Teraz spróbuj znowu coś zapisać:
echo "Trying to write again." > permissions-demo.txt
Możesz dostać:
Permission denied
Dobrze.
Linux właśnie ochronił plik przed zmianami.
Nawet przed tobą.
Trochę niegrzeczne, ale technicznie poprawne.
Przywróć Prawo Zapisu
Dodaj sobie prawo zapisu z powrotem:
chmod u+w permissions-demo.txt
Teraz spróbuj:
echo "Writing works again." > permissions-demo.txt
cat permissions-demo.txt
Powinieneś zobaczyć:
Writing works again.
Gratulacje.
Usunąłeś uprawnienie, zepsułeś własny dostęp i naprawiłeś go.
To właściwie szkolenie Linuxa w miniaturze.
Uczyń Skrypt Wykonywalnym
Stwórz mały skrypt:
echo 'echo "Hello from my script!"' > hello.sh
Spróbuj go uruchomić:
./hello.sh
Możesz zobaczyć:
Permission denied
Dlaczego?
Bo plik nie jest jeszcze wykonywalny.
Dodaj prawo wykonywania:
chmod u+x hello.sh
Teraz uruchom:
./hello.sh
Powinieneś zobaczyć:
Hello from my script!
Właśnie to robi x.
Mówi Linuxowi:
“Ten plik można uruchomić.”
Uprawnienia Numeryczne
Możesz zobaczyć komendy takie jak:
chmod 755 hello.sh
To numeryczny styl uprawnień.
Liczby oznaczają:
7 = read + write + execute
5 = read + execute
5 = read + execute
Czyli 755 oznacza:
właściciel może czytać, pisać i uruchamiać
grupa może czytać i uruchamiać
inni mogą czytać i uruchamiać
Inny popularny przykład:
chmod 644 permissions-demo.txt
To oznacza:
właściciel może czytać i pisać
grupa może czytać
inni mogą czytać
Na razie zapamiętaj:
644jest typowe dla zwykłych plików;755jest typowe dla skryptów i katalogów.
Nie musisz dziś zapamiętać wszystkiego.
Twój mózg to nie pendrive.
Czym Jest sudo?
sudo oznacza “uruchom tę komendę z uprawnieniami administratora”.
Przykład:
sudo pacman -S htop
Na Ubuntu lub Debianie:
sudo apt install htop
Na Fedorze:
sudo dnf install htop
sudo jest używane, gdy komenda potrzebuje wyższych uprawnień.
Na przykład:
- instalowanie programów;
- zmiana plików systemowych;
- restartowanie usług;
- edycja chronionej konfiguracji.
sudo jest potężne.
Nie używaj go automatycznie.
Używanie sudo wszędzie jest jak otwieranie każdych drzwi piłą łańcuchową.
Skuteczne, ale mało eleganckie.
Częsty Błąd Uprawnień
Możesz zobaczyć:
Permission denied
To zwykle oznacza:
- nie masz prawa czytać pliku;
- nie masz prawa pisać do pliku;
- nie masz prawa uruchomić pliku;
- próbujesz zmienić coś, co należy do innego użytkownika albo do root.
Zanim użyjesz sudo, zapytaj:
Czy naprawdę potrzebuję tutaj mocy administratora?
Czasami tak.
Czasami odpowiedź brzmi: “Nie, Viktor, jesteś tylko w złym folderze.”
Ostrożnie z sudo
To jest niebezpieczne:
sudo rm -r /some/system/folder
Może usunąć ważne pliki systemowe.
Linux zrobi dokładnie to, o co prosisz.
Nie to, co miałeś na myśli.
To różnica między komputerem a mądrym przyjacielem.
Praktyka
Spróbuj tego:
cd ~/terminal-practice
touch permission-test.txt
ls -l permission-test.txt
chmod u-w permission-test.txt
ls -l permission-test.txt
chmod u+w permission-test.txt
ls -l permission-test.txt
echo 'echo "Script works!"' > test-script.sh
chmod u+x test-script.sh
./test-script.sh
Potem odpowiedz:
- Co pokazuje
whoami? - Co robi
chmod u-w? - Co robi
chmod u+w? - Co robi
chmod u+x? - Co pozwala zrobić
sudo?
Mini Wyzwanie
Stwórz skrypt my-info.sh.
Ma wypisać:
Hello from Linux!
Today I am learning permissions.
Potem:
- Stwórz plik.
- Spróbuj go uruchomić.
- Dodaj prawo wykonywania.
- Uruchom go ponownie.
- Sprawdź uprawnienia przez
ls -l.
Używaj tylko terminala.
Bez myszy.
Mysz właśnie złożyła skargę do HR.
Podsumowanie
Dzisiaj nauczyłeś się, że:
- Linux używa uprawnień do ochrony plików i katalogów;
roznacza read;woznacza write;xoznacza execute;- uprawnienia są podzielone na użytkownika, grupę i innych;
ls -lpokazuje uprawnienia;chmodzmienia uprawnienia;sudouruchamia komendy z uprawnieniami administratora;sudotrzeba używać ostrożnie.
Uprawnienia mogą wyglądać dziwnie na początku, ale są jednym z powodów, dla których Linux jest potężny i bezpieczny.
Linux mówi “nie” nie dlatego, że cię nie lubi.
Mówi “nie”, bo czasem jesteś jedną komendę od bardzo edukacyjnej katastrofy.
Następna Lekcja
W następnej lekcji nauczymy się instalować programy z terminala za pomocą menedżerów pakietów.
To moment, w którym Linux staje się bardzo wygodny.
A użytkownicy Arch Linux zaczynają tajemniczo się uśmiechać.