Główna » jak » Jak działają uprawnienia do plików w systemie Linux?

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

    Jeśli używasz Linuksa od jakiegoś czasu (a nawet OS X), prawdopodobnie napotkasz 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 jak najlepiej wykorzystać te możliwości, podłączono wiele terminali komputerowych, co umożliwiło wielu użytkownikom 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, i 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 plików

    W tym zwariowanym świecie wielu użytkowników ustaliliśmy już granice możliwości użytkowników. 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 "do odczytu" pozwala na przeglądanie zawartości pliku, dostęp do "zapisu" pozwala modyfikować zawartość pliku, a "wykonać" 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 jest w tej samej grupie 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żna także utworzyć katalog udostępniony, który umożliwia 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ż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

    Obok każdego pliku i katalogu zobaczysz specjalną sekcję, która objaśnia jej uprawnienia. To wygląda tak:

    -rwxrw-r-

    The r oznacza "czytać" w oznacza "write" i " x oznacza "wykonaj". Katalogi będą uruchamiane z "d" zamiast "-". Zauważysz również, że istnieje 10 przestrzeni, które posiadają 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]

    Z 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: To zmieni 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 go nie mają (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 sieci wspólnej).
    • -rw--: Właściciel może czytać i pisać, inni nie mają żadnych (przydatne do przechowywania plików osobistych).

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

    Pliki roota lub superużytkownika i systemu

    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 systemie Ubuntu, aby wprowadzić zmiany w plikach systemowych, należy użyć "sudo" lub "gksudo", aby uzyskać uprawnienia administratora. W innych dystrybucjach przełączasz się na "root" lub "super-użytkownika", który faktycznie 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, aby zapewnić 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ć "publiczne" pliki i dać ci wskazówkę, kiedy coś pójdzie nie tak z właścicielem pliku systemowego.

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