Skip to content

Jak działają uprawnienia do plików w systemie Linux?

1 de lipiec de 2021
banner 014

Jeśli używasz Linuksa od jakiegoś czasu (a nawet OS X), prawdopodobnie natkniesz się na błąd „uprawnień”. Ale czym one właściwie są i dlaczego są potrzebne lub przydatne? Zajrzyjmy do środka.

Uprawnienia użytkownika

W tamtych czasach komputery były ogromnymi maszynami, które były niewiarygodnie drogie. Aby jak najlepiej je wykorzystać, podłączono wiele terminali komputerowych, co pozwoliło wielu użytkownikom na jednoczesne prowadzenie działalności. Przetwarzanie i przechowywanie danych odbywało się na maszynie, podczas gdy same terminale były niewiele więcej niż sposobem przeglądania i wprowadzania danych. Jeśli się nad tym zastanowić, to w zasadzie chodzi o to, jak uzyskujemy dostęp do danych w „chmurze”; spójrz na system Amazon Cloud MP3, Gmail i Dropbox, a zauważysz, że chociaż zmiany można wprowadzać lokalnie, wszystko jest przechowywane zdalnie.

Jak dzialaja uprawnienia do plikow w systemie

(Zdj.: Zenith Z-19 „głupi” terminal; kredyt: ajmexico)

Aby to zadziałało, indywidualni użytkownicy muszą posiadać konta. Muszą mieć przydzieloną część obszaru pamięci i muszą mieć możliwość uruchamiania poleceń i programów. Każdy otrzymuje określone „uprawnienia użytkownika”, które określają, co może, a czego nie może robić, gdzie w systemie mają dostęp, a których nie mają, oraz czyje pliki mogą, a których nie mogą modyfikować. Każdy użytkownik jest również umieszczany w różnych grupach, które przyznają lub ograniczają dalszy dostęp.

Dostęp do plików

błąd odczytu

W tym zwariowanym świecie wielu użytkowników ustaliliśmy już granice tego, co użytkownicy mogą robić. Ale co z tym, do czego mają dostęp? Cóż, każdy plik ma zestaw uprawnień i właściciela. Oznaczenie właściciela, zwykle powiązane podczas tworzenia pliku, deklaruje użytkownika, do którego należy, i tylko ten użytkownik może zmieniać swoje uprawnienia dostępu.

W świecie Linuksa uprawnienia są podzielone na trzy kategorie: odczyt, zapis i wykonanie. Dostęp „odczyt” umożliwia przeglądanie zawartości pliku, dostęp „zapis” umożliwia modyfikowanie zawartości pliku, a „wykonywanie” pozwala na uruchomienie zestawu instrukcji, takich jak skrypt lub program. Każda z tych kategorii jest stosowana do różnych klas: użytkownika, grupy i świata. „Użytkownik” oznacza właściciela, „grupa” oznacza każdego użytkownika, który należy do tej samej grupy co właściciel, a „świat” oznacza każdego i wszystkich.

brak zezwolenia na pisanie


Za pomocą tych uprawnień można również ograniczyć foldery. Możesz na przykład zezwolić innym osobom w Twojej grupie na przeglądanie katalogów i plików w Twoim folderze domowym, ale nie osobom spoza grupy. Prawdopodobnie będziesz chciał ograniczyć dostęp „zapisu” tylko do siebie, chyba że pracujesz nad jakimś wspólnym projektem. Możesz także utworzyć katalog udostępniony, który umożliwi każdemu przeglądanie i modyfikowanie plików w tym folderze.

Zmiana uprawnień w Ubuntu

GUI

Aby zmienić uprawnienia pliku, który posiadasz w Ubuntu, po prostu kliknij plik prawym przyciskiem myszy i przejdź do „Właściwości”.

uprawnienia Ubuntu

Możesz zmienić, czy właściciel, grupa lub inni mogą czytać i pisać, tylko czytać lub nic nie robić. Możesz także zaznaczyć pole, aby zezwolić na wykonanie pliku, a to umożliwi to jednocześnie właścicielowi, grupie i innym.

Wiersz poleceń

Możesz to również zrobić za pomocą wiersza poleceń. Przejdź do katalogu zawierającego pliki i wpisz następujące polecenie, aby wyświetlić wszystkie pliki na liście:

ls -al

1625154081 563 Jak dzialaja uprawnienia do plikow w systemie

Obok każdego pliku i katalogu zobaczysz specjalną sekcję, która opisuje jego uprawnienia. To wygląda tak:

-rwxrw-r–

r oznacza „czytać”, the w oznacza „pisać”, a x oznacza „wykonać”. Katalogi będą zaczynały się od „d” zamiast „-”. Zauważysz również, że istnieje 10 spacji, które przechowują wartość. Możesz zignorować pierwszy, a potem są 3 zestawy po 3. Pierwszy zestaw jest dla właściciela, drugi dla grupy, a ostatni dla świata.


Aby zmienić uprawnienia pliku lub katalogu, spójrzmy na podstawową formę polecenia chmod.

chmod [class][operator][permission] plik

chmod [ugoa][+ or –] [rwx] plik

Na początku może się to wydawać skomplikowane, ale uwierz mi, to całkiem proste. Najpierw spójrzmy na zajęcia:

  • u: To jest dla właściciela.
  • g: To jest dla grupy.
  • o: To dotyczy wszystkich innych.
  • a: Zmieni to uprawnienia dla wszystkich powyższych.

Następnie operatorzy:

  • +: Znak plus doda uprawnienia, które nastąpią.
  • -: Znak minus usuwa następujące uprawnienia.

Nadal ze mną? A ostatnia sekcja jest taka sama, jak podczas sprawdzania uprawnień do pliku:

  • r: umożliwia dostęp do odczytu.
  • w: Umożliwia dostęp do zapisu.
  • x: umożliwia wykonanie.

Teraz złóżmy to razem. Załóżmy, że mamy plik o nazwie „todo.txt”, który ma następujące uprawnienia:

-rw-rw-r–

Oznacza to, że właściciel i grupa mogą czytać i pisać, a świat może tylko czytać. Chcemy zmienić uprawnienia na te:

-rwxr—–

Oznacza to, że właściciel ma pełne uprawnienia, a grupa może czytać. Możemy to zrobić w 3 krokach. Najpierw dodamy uprawnienia do wykonywania dla użytkownika.

chmod u+x todo.txt

Następnie usuniemy uprawnienia do zapisu dla grupy.

chmod gw todo.txt


Na koniec usuniemy uprawnienia do odczytu wszystkim innym użytkownikom.

chmod lub todo.txt

Możemy je również połączyć w jedno polecenie, na przykład:

chmod u+x,gw lub todo.txt

1625154081 958 Jak dzialaja uprawnienia do plikow w systemie

Widać, że każda sekcja jest oddzielona przecinkami i nie ma spacji.

Oto kilka przydatnych uprawnień:

  • -rwxr-xr-x : Właściciel ma pełne uprawnienia, grupa i inni użytkownicy mogą czytać zawartość pliku i wykonywać.
  • -rwxr–r– : Właściciel ma pełne uprawnienia, grupa i inni użytkownicy mogą tylko czytać plik (przydatne, jeśli nie przeszkadza Ci, że inni przeglądają Twoje pliki.
  • -rwx—— : Właściciel ma pełne uprawnienia, pozostali nie mają żadnych (przydatne dla osobistych skryptów).
  • -rw-rw—-: Właściciel i grupa mogą czytać i pisać (przydatne we współpracy z członkami grupy).
  • -rw-r–r– : Właściciel może czytać i pisać, grupa i inni użytkownicy mogą tylko czytać plik (przydatne do przechowywania osobistych plików w sieci współdzielonej).
  • -rw——- : Właściciel może czytać i pisać, wszyscy inni nie mają żadnych (przydatne do przechowywania osobistych plików).

Jest kilka innych rzeczy, które możesz zrobić za pomocą chmod – jak setuid i setgid – ale są one trochę dogłębne i większość użytkowników i tak nie będzie musiała ich używać.

Pliki główne lub superużytkownika i pliki systemowe

1625154081 119 Jak dzialaja uprawnienia do plikow w systemie

W dzisiejszych czasach nie zawsze uruchamiamy systemy, które mają wielu użytkowników. Dlaczego nadal mielibyśmy się martwić o uprawnienia?

Cóż, Unix i jego pochodne – między innymi Linux, OS X – również rozróżniają rzeczy uruchamiane przez użytkownika, rzeczy uruchamiane przez administratora lub z uprawnieniami administratora oraz rzeczy uruchamiane przez sam system. W związku z tym rzeczy, które są integralne dla systemu, wymagają zmiany lub dostępu do uprawnień administratora. W ten sposób niczego nie zepsujesz przypadkowo.


W Ubuntu, aby wprowadzić zmiany w plikach systemowych, użyj „sudo” lub „gksudo”, aby uzyskać odpowiednik uprawnień administratora. W innych dystrybucjach przełączasz się na „root” lub „super-użytkownik”, który skutecznie robi to samo, dopóki się nie wylogujesz.

Należy pamiętać, że w obu tych okolicznościach zmiana uprawnień do plików może prowadzić do tego, że programy nie będą działać, niezamierzona zmiana właściciela pliku na użytkownika root (zamiast na właściciela) i zmniejszenie bezpieczeństwa systemu (poprzez przyznanie większej liczby uprawnień). W związku z tym zaleca się, aby nie zmieniać uprawnień do plików — zwłaszcza plików systemowych — chyba że jest to konieczne lub wiesz, co robisz.

Uprawnienia do plików mają na celu zapewnienie podstawowego systemu bezpieczeństwa wśród użytkowników. Poznanie ich działania może pomóc w skonfigurowaniu podstawowego udostępniania w środowisku wielu użytkowników, ochronie plików „publicznych” i podpowiedzi, kiedy coś pójdzie nie tak z własnością plików systemowych.

Myślisz, że możesz to wyjaśnić łatwiej? Masz korektę? Chcesz powspominać dawne czasy? Zrób sobie przerwę i zamieść swoje przemyślenia w komentarzach.

Czy ten post był pomocny?