If-Koubou

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

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

Jeśli używasz Linuksa od jakiegoś czasu (a nawet OS X), prawdopodobnie natrafisz na błąd "uprawnień". Ale czym właściwie są i dlaczego są konieczne lub użyteczne? Przyjrzyjmy się wnętrzu.

Uprawnienia użytkownika

W ciągu dnia komputery były ogromnymi maszynami, które były niewiarygodnie drogie. Aby w pełni wykorzystać możliwości, 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 komputerze, podczas gdy same terminale były niewiele więcej niż sposobem przeglądania i wprowadzania danych. Jeśli o tym pomyślisz, to w zasadzie dostęp do danych w "chmurze"; spójrz na system Amazon MP3 Cloud, Gmail i Dropbox, a zauważysz, że choć zmiany można wprowadzać lokalnie, wszystko jest przechowywane zdalnie.

(Zdjęcie: Zenith Z-19 "głupi" terminal, kredyt: ajmexico)

Aby to zadziałało, indywidualni użytkownicy muszą mieć konta. Muszą mieć wydzieloną 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 mogą i czego nie mogą robić, gdzie w systemie robią i nie mają dostępu, a których pliki mogą i nie mogą modyfikować. Każdy użytkownik jest również umieszczany w różnych grupach, które przyznają lub ograniczają dostęp.

Dostęp do pliku

W tym zwariowanym świecie wielu użytkowników już ustaliliśmy granice tego, co mogą robić użytkownicy. 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 związane podczas tworzenia pliku, określa, do którego użytkownika należy, i tylko ten użytkownik może zmienić swoje uprawnienia dostępu.

W świecie Linuksa uprawnienia są podzielone na trzy kategorie: czytanie, pisanie i wykonywanie. Dostęp "Odczyt" pozwala na przeglądanie zawartości pliku, dostęp "pisz" pozwala modyfikować zawartość pliku, a "wykonanie" pozwala uruchomić zestaw 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 dowolnego użytkownika, który należy do tej samej grupy co właściciel, a "świat" oznacza kogokolwiek i wszystkich.

Foldery mogą być również ograniczone tymi uprawnieniami. Można na przykład zezwolić innym osobom w grupie na przeglądanie katalogów i plików w folderze domowym, ale nie na osoby spoza grupy. Prawdopodobnie będziesz chciał ograniczyć dostęp do "zapisu" tylko do siebie, chyba że pracujesz nad jakimś projektem współdzielonym. Możesz również 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 do pliku, który posiadasz w Ubuntu, kliknij plik prawym przyciskiem myszy i wybierz "Właściwości".

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

Wiersz poleceń

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

ls -al

Obok każdego pliku i katalogu pojawi się specjalna sekcja, która objaśnia jej uprawnienia. To wygląda tak:

-rwxrw-r-

The r oznacza "przeczytaj" w oznacza "write" i " x oznacza "wykonaj". Katalogi będą uruchamiane z "d" zamiast "-". Zauważysz również, że istnieje 10 przestrzeni, które mają wartość. Możesz zignorować pierwszy, a następnie są 3 zestawy 3. Pierwszy zestaw jest dla właściciela, drugi zestaw dla grupy, a ostatni zestaw dla świata.

Aby zmienić uprawnienia do pliku lub katalogu, spójrzmy na podstawowy formularz polecenia chmod.

chmod [klasa] [operator] [uprawnienie] plik

plik chmod [ugoa] [+ lub -] [rwx]

Na początku może się to wydawać skomplikowane, ale uwierz mi, to całkiem proste. Najpierw przyjrzyjmy się klasom:

  • 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 kolejne uprawnienia.
  • -: Znak minus spowoduje usunięcie kolejnych uprawnień.

Nadal ze mną? Ostatnia sekcja jest taka sama jak w przypadku sprawdzania uprawnień do pliku:

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

Teraz połączmy 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 do tych:

-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 g-w todo.txt

Na koniec usuniemy uprawnienia do odczytu dla wszystkich innych użytkowników.

chmod o-r todo.txt

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

chmod u + x, g-w, o-r todo.txt

Możesz zobaczyć, ż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ść plików i wykonywać.
  • -rwxr-r-: Właściciel ma pełne uprawnienia, grupa i inni użytkownicy mogą tylko czytać plik (przydatne, jeśli nie masz nic przeciwko innym przeglądającym twoje pliki.
  • -rwx-: Właściciel ma pełne uprawnienia, wszyscy inni nie mają żadnych (przydatne w przypadku osobistych skryptów).
  • -rw-rw--: Właściciel i grupa mogą czytać i pisać (przydatne do 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 plików osobistych w udostępnionej sieci).
  • -rw--: Właściciel może czytać i pisać, wszyscy inni nie mają żadnego (przydatne do przechowywania plików osobistych).

Jest kilka innych rzeczy, które możesz zrobić z chmod - jak setuid i setgid - ale są one trochę dogłębne i większość użytkowników tak naprawdę nie będzie ich potrzebować.

Pliki root lub superużytkownikowe i systemowe

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

Cóż, Unix i jego pochodne - między innymi Linux, OS X - również odróż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ą integralną częścią systemu, wymagają modyfikacji lub dostępu do uprawnień administratora. W ten sposób nie zepsujesz niczego przypadkowo.

W Ubuntu, aby dokonać zmian w plikach systemowych, które używasz, "sudo" lub "Ęggududo", uzyskujesz uprawnienia administratora. W innych dystrybucjach przechodzisz do "root" lub "użytkownika-użytkownika", 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 spowodować, że programy nie będą działały, nieumyślnie zmieniając prawa własności do użytkownika root (zamiast właściciela) i zmniejszając bezpieczeństwo systemu (przyznając więcej uprawnień). W związku z tym zaleca się, aby nie zmieniać uprawnień do plików - szczególnie plików systemowych - chyba że jest to konieczne lub wiesz, co robisz.

Dostępne są uprawnienia do plików, które zapewniają podstawowy system bezpieczeństwa wśród użytkowników. Dowiedz się, jak działają, może pomóc w podstawowym udostępnianiu w środowisku wielu użytkowników, chronić pliki publiczne i dać wskazówki, kiedy coś pójdzie nie tak z właścicielem pliku systemowego.

Myślisz, że możesz to wyjaśnić łatwiej? Masz korektę? Chcesz wspominać o dawnych czasach? Zrób sobie przerwę i połóż swoje myśli w komentarzach.