Wyjaśnienie uprawnień do plików i katalogów w systemie Linux

System operacyjny Linux, zaprojektowany do obsługi wielu użytkowników jednocześnie, wymaga solidnego mechanizmu zabezpieczającego pliki i dane przed nieautoryzowanym dostępem. W środowisku, gdzie różne osoby korzystają z tego samego komputera, kluczowe jest zapewnienie ochrony prywatności i integralności danych każdego z nich.

W tym celu Linux stosuje zaawansowany system zarządzania uprawnieniami, który precyzyjnie określa, kto i jakie działania może wykonywać na plikach i katalogach. Użytkownicy mają pełną kontrolę nad tym, jak inni mogą wchodzić w interakcję z ich zasobami, co pozwala na utrzymanie porządku i bezpieczeństwa systemu.

Zrozumienie, jak działają uprawnienia w Linuksie, jest kluczowe dla każdego użytkownika. Dzięki tej wiedzy można efektywnie zarządzać dostępem do plików i katalogów, chroniąc ważne dane i zapewniając sprawne funkcjonowanie komputera. Aby zgłębić ten temat, przyjrzyjmy się bliżej kategoriom użytkowników w systemie Linux.

Kategorie użytkowników w systemie Linux

W Linuksie wyróżniamy trzy podstawowe kategorie użytkowników w kontekście uprawnień do plików i katalogów. Pierwszą z nich są właściciele. Każdy plik lub katalog ma przypisanego właściciela, który zwykle dysponuje największym zakresem uprawnień do danego zasobu. W systemie, właściciela oznacza się symbolem „u” (od użytkownika).

Drugą kategorią są właściciele grup. Linux umożliwia grupowanie użytkowników i nadawanie uprawnień całej grupie, co ułatwia zarządzanie dostępem do plików, gdy chcemy, aby kilka osób miało podobne możliwości. Właściciela grupy oznacza się literą „g”. Przykładowo, jeśli chcemy nadać kilku osobom dostęp do pliku z listą polecanych książek, najprościej będzie stworzyć grupę i nadać uprawnienia całej tej grupie.

Trzecią kategorią są pozostali użytkownicy, oznaczani literą „o”. Są to wszyscy ci, którzy nie są ani właścicielem pliku, ani nie należą do grupy, która ma do niego uprawnienia. Pozostali użytkownicy, to po prostu wszyscy ci, którzy nie mieszczą się w dwóch poprzednich kategoriach.

Wszystkich użytkowników komputera, czyli właścicieli plików, użytkowników w grupach i pozostałych użytkowników, można określić literą „a”.

Tworzenie i dodawanie nowego użytkownika w systemie Ubuntu Linux

Przyjrzyjmy się, jak utworzyć i dodać nowego użytkownika w systemie Ubuntu Linux. Aby w pełni zrozumieć omawiane zagadnienia, zachęcamy do utworzenia nowego konta użytkownika.

1. Otwórz Ustawienia, a następnie w lewym panelu nawigacyjnym wybierz Użytkownicy. Kliknij przycisk Odblokuj i podaj swoje hasło. Zabezpieczenie to ma na celu ochronę przed nieautoryzowanymi zmianami w ustawieniach systemu.

2. Po odblokowaniu ustawień pojawi się opcja Dodaj użytkownika. Kliknij ją, aby przejść do procesu tworzenia nowego konta.

3. Wprowadź pełne imię i nazwisko oraz nazwę użytkownika. Następnie wybierz opcję Ustaw hasło teraz i utwórz silne hasło dla nowego konta. Upewnij się również, że typ konta ustawiony jest na Administrator. Kliknij przycisk Dodaj, aby zakończyć tworzenie konta.

4. Nowo utworzone konto użytkownika powinno być teraz widoczne na liście użytkowników.

Uprawnienia do plików i katalogów w systemie Linux

Uprawnienia w Linuksie definiują zasady dostępu do plików i katalogów oraz określają, jakie operacje mogą wykonywać na nich poszczególne kategorie użytkowników. Istnieją trzy główne rodzaje uprawnień:

  • Odczyt (r) – pozwala użytkownikowi na przeglądanie zawartości pliku oraz wyświetlanie zawartości katalogu.
  • Zapis (w) – umożliwia modyfikowanie zawartości pliku. W przypadku katalogów, uprawnienie zapisu pozwala na tworzenie, usuwanie, zmianę nazw oraz przenoszenie plików i podkatalogów w obrębie tego katalogu. Warto jednak zauważyć, że uprawnienia zapisu dla katalogu działają tylko wtedy, gdy użytkownik ma również uprawnienia do wykonywania.
  • Wykonanie (x) – uprawnienie do wykonania oznacza, że plik może być traktowany jako program, który można uruchomić. W przypadku katalogów, uprawnienie do wykonywania umożliwia wejście do katalogu, inaczej przejście za pomocą komendy „cd”.

Wszystkie te uprawnienia przypisywane są trzem wspomnianym kategoriom użytkowników.

Zachęcamy także do zapoznania się z informacjami na temat usuwania plików i katalogów w systemie Linux.

Długie listowanie w systemie Linux

Aby wyświetlić listę plików i katalogów w danym katalogu, zazwyczaj używamy polecenia „ls”. Jednak to polecenie prezentuje tylko podstawowe informacje. Aby uzyskać więcej szczegółów, takich jak uprawnienia, właścicieli i grupy, musimy skorzystać z długiego listowania.

Aby to zrobić, wpisz polecenie „ls” z opcją „-l” („ls -l”). W rezultacie otrzymamy szczegółowe informacje, w tym uprawnienia, właściciela pliku i właściciela grupy, jak to pokazano poniżej:

W systemie Ubuntu, jeśli nie została utworzona żadna grupa, domyślnie nazwą grupy jest nazwa użytkownika-właściciela pliku.

Aby utworzyć grupę, użyj polecenia „addgroup”. Na przykład, aby utworzyć grupę o nazwie „redaktorzy”, wykonaj poniższe polecenie i wprowadź hasło, jeśli zostaniesz o to poproszony:

sudo addgroup editors

Polecenie „sudo” pozwala na wykonywanie działań z uprawnieniami administratora, co jest konieczne do wprowadzania zmian wpływających na wszystkich użytkowników systemu.

Aby dodać użytkownika do grupy, użyj następującej składni:

adduser <użytkownik> <grupa>

Przykładowo, aby dodać użytkowników „Belmont” i „Madici” do grupy „redaktorzy”, wykonaj:

sudo adduser belmont editors
sudo adduser madici editors

Aby wyświetlić grupy, do których należy dany użytkownik, wykonaj polecenie:

groups <nazwa_użytkownika>

Efekt powyższych poleceń jest pokazany poniżej:

Teraz omówimy atrybuty plików, które informują nas o typach plików i ich uprawnieniach.

Atrybuty plików w systemie Linux

W systemie Linux atrybuty plików składają się z dziesięciu znaków. Pierwszy z nich określa typ pliku. Oto kilka przykładów:

  • „d” – oznacza katalog
  • „-” – oznacza zwykły plik, na przykład plik tekstowy
  • „c” – oznacza specjalny plik znakowy
  • „l” – oznacza dowiązanie symboliczne
  • „b” – oznacza specjalny plik blokowy

Pozostałe dziewięć znaków informuje o uprawnieniach właściciela, właściciela grupy i pozostałych użytkowników. Znaki te są podzielone na trzy grupy po trzy znaki: pierwsza grupa dotyczy uprawnień właściciela, druga – właściciela grupy, a trzecia – pozostałych użytkowników systemu.

W każdej grupie kolejność uprawnień jest następująca: odczyt (r), zapis (w), wykonanie (x). Jeśli dane uprawnienie nie jest przyznane, w tym miejscu pojawia się znak „-„. Przykładowo, zapis „rw-” dla właściciela grupy oznacza, że ma on uprawnienia do odczytu i zapisu, ale nie ma uprawnień do wykonania (w przypadku katalogu – wejścia).

Zmiana uprawnień do plików przy użyciu notacji symbolicznej

Do modyfikacji uprawnień plików i katalogów wykorzystuje się polecenie „chmod”. Należy przy tym określić, dla kogo zmieniamy uprawnienia.

Może to być właściciel pliku (u), właściciel grupy (g), pozostali użytkownicy (o), lub wszyscy (a). Następnie określamy, czy chcemy uprawnienie dodać (+) czy usunąć (-). Na końcu podajemy konkretne uprawnienie: r (odczyt), w (zapis) lub x (wykonanie).

Aby to lepiej zrozumieć, utwórzmy katalog o nazwie „książki” za pomocą polecenia:

mkdir books

Wejdźmy do niego za pomocą:

cd books

Stwórzmy pusty plik o nazwie „listaLektur.txt”:

touch readingList.txt

Wyświetlmy teraz długą listę zawartości katalogu „książki”:

ls -l

Otrzymamy dane wyjściowe podobne do poniższych:

Utworzony przez nas plik jest zwykłym plikiem, o czym świadczy pierwszy znak „-„. Właściciel oraz właściciel grupy mają uprawnienia do odczytu i zapisu, podczas gdy pozostali użytkownicy mają tylko uprawnienia do odczytu. Jeśli chcemy dać pozostałym użytkownikom uprawnienia do zapisu, wpiszemy polecenie:

chmod o+w readingList.txt

Aby sprawdzić, czy uprawnienia się zmieniły, wykonaj:

ls -l

Wynik będzie wyglądał następująco:

Zauważ, że uprawnienia dla pozostałych użytkowników zmieniły się z „r–” na „rw-„, co oznacza, że teraz mają oni uprawnienia do zapisu.

Aby nadać uprawnienia do wykonywania właścicielowi (użytkownikowi) pliku, wykonaj:

chmod u+x readingList.txt

Aby usunąć uprawnienia do zapisu dla właściciela grupy, wykonaj:

chmod g-w readingList.txt

Aby usunąć uprawnienia do odczytu dla wszystkich użytkowników i uniemożliwić im przeglądanie pliku, wpisz:

chmod a-r readingList.txt

Aby przywrócić uprawnienia do odczytu dla właściciela pliku, wpisz:

chmod u+r readingList.txt

Aby dodać uprawnienia do zapisu i wykonywania dla właściciela grupy pliku, wykonaj:

chomod g+wx readingList.txt

Zmiana uprawnień przy użyciu notacji ósemkowej

W systemie Linux każde uprawnienie może przyjmować tylko dwie wartości: jest włączone lub wyłączone. Uprawnienie do odczytu może być albo „r”, albo „-„, uprawnienie do zapisu może być albo „w”, albo „-„, a uprawnienie do wykonywania może być albo „x”, albo „-„.

Zatem uprawnienia można przedstawić za pomocą liczb binarnych, gdzie 1 oznacza włączone, a 0 oznacza wyłączone. Przykładowo, uprawnienie „rw-” można zapisać jako 110 w systemie binarnym.

Dla każdej kategorii użytkowników (właściciel, grupa, pozostali) wystarczą trzy bity, aby zapisać wszystkie uprawnienia. Uprawnienia „rwxrw-r–” można zapisać binarnie jako 111110100.

Jednak, aby uniknąć długich i mylących ciągów binarnych, lepiej jest użyć notacji ósemkowej. Każda cyfra ósemkowa odpowiada trzem cyfrom binarnym. Przykładowo, uprawnienie „rw-” (110 binarnie) jest równe 6 w systemie ósemkowym.

Zatem, możemy użyć liczb ósemkowych do przedstawienia uprawnień dla właściciela, grupy i pozostałych użytkowników. Notacja ósemkowa pozwala na ustawienie uprawnień dla wszystkich użytkowników jednocześnie, w przeciwieństwie do notacji symbolicznej, gdzie uprawnienia zmieniamy dla jednej kategorii użytkowników na raz.

Używanie notacji ósemkowej wymaga pewnej praktyki, ale z czasem staje się wygodniejsze. W razie wątpliwości, zawsze można skorzystać z powyższej tabeli. Zobaczmy kilka przykładów zmiany uprawnień za pomocą tej metody.

Aby dać wszystkim użytkownikom uprawnienia do odczytu, zapisu i wykonywania pliku „listaLektur.txt”, wykonaj:

chmod 777 readingList.txt

Aby sprawdzić, czy uprawnienia zostały zmienione, wpisz:

ls -l

Otrzymamy wynik podobny do:

total 0
-rwxrwxrwx 1 madici madici 0 Sep  6 05:45 readingList.txt

Jak widać, właściciel, grupa i pozostali użytkownicy mają teraz wszystkie uprawnienia.

Aby usunąć uprawnienia do zapisu dla właściciela grupy i pozostałych użytkowników, wykonaj:

chmod 755 readingList.txt

Aby usunąć uprawnienia do wykonywania dla właściciela i pozostałych użytkowników, wpisz:

chmod 654 readingList.txt

Specjalne uprawnienia w systemie Linux

Linux oferuje trzy dodatkowe, specjalne uprawnienia, które można stosować do plików i katalogów. Dają one dodatkowe możliwości kontroli dostępu i umożliwiają użytkownikom z mniejszymi uprawnieniami uruchamianie programów z uprawnieniami właściciela pliku lub grupy.

Te specjalne uprawnienia to:

  • Set User ID (SUID) – dzięki temu uprawnieniu użytkownik może uruchomić program z uprawnieniami właściciela pliku, a nie swoimi własnymi. Jest to przydatne, gdy zwykli użytkownicy potrzebują wykonywać zadania wymagające uprawnień administratora.
  • Set Group ID (SGID) – uprawnienie SGID sprawia, że użytkownik uruchamia program z uprawnieniami grupy, do której należy plik, a nie z uprawnieniami swojej własnej grupy.
  • Sticky Bit – stosowane głównie do katalogów. Ustawienie tego uprawnienia sprawia, że tylko właściciel katalogu, właściciel pliku lub użytkownik root może usunąć plik z tego katalogu.

Do standardowych uprawnień (odczyt, zapis, wykonanie) dochodzą zatem te trzy specjalne uprawnienia.

Podsumowanie

Zrozumienie uprawnień w systemie Linux jest kluczowe, nawet jeśli na komputerze pracuje tylko jeden użytkownik. Pozwala to na lepszą kontrolę, zwiększa bezpieczeństwo i chroni prywatność danych. Zachęcamy do eksperymentowania z uprawnieniami, aby w praktyce zrozumieć ich działanie.

Zapraszamy także do zapoznania się z informacjami na temat korzystania z poleceń systemu Linux w środowisku Windows.


newsblog.pl