Zalecane, 2024

Wybór Redakcji

Zrozumienie uprawnień systemu Linux i użycia chmod

Od kilku miesięcy uczę się od Linuksa i jednym z aspektów Linuksa, który zawsze mnie myli, jest to, jak działają uprawnienia. Na przykład, po przesłaniu pliku na mój serwer WWW i otrzymaniu błędu, mój usługodawca hostingowy poinformował mnie o zmianie uprawnień do pliku na 755.

Nie miałem zielonego pojęcia, co to znaczy, mimo że zmiana uprawnień rozwiązała problem. Teraz zrozumiałem, że uprawnienia Linuksa nie są aż tak skomplikowane, po prostu musisz zrozumieć system. W tym artykule omówię uprawnienia systemu Linux na wysokim poziomie i pokażę, jak użyć polecenia chmod do zmiany uprawnień do plików i folderów.

Uprawnienia i poziomy Linuksa

W Linuksie są zasadniczo trzy uprawnienia, na które normalnie będziesz musiał się martwić: czytać, pisać i wykonywać. Wszystkie trzy z nich są dość oczywiste. Teraz, gdy te uprawnienia są stosowane do pliku, są one stosowane na poziomach.

Istnieją trzy poziomy uprawnień w systemie Linux: właściciel, grupa i inne. Właścicielem jest użytkownik, który jest właścicielem pliku / folderu, grupa zawiera innych użytkowników w grupie plików, a inne po prostu reprezentują wszystkich innych użytkowników, którzy nie są właścicielami lub w grupie.

Odczyt, zapis i wykonanie są przedstawiane jako znaki symboliczne lub jako liczby ósemkowe. Na przykład, jeśli robisz plik ls -l w katalogu z niektórymi plikami, zobaczysz symboliczną reprezentację znaków uprawnień.

Uprawnienia są zapisane w następujący sposób: pierwszy bit to myślnik lub litera d. Dash oznacza, że ​​jest to plik, a d oznacza katalog. Zauważ, że pierwszy bit może być również l, jeśli nazwa pliku jest linkiem. Następnie są trzy grupy po trzy bity. Pierwszy bit w każdej grupie jest przeznaczony do odczytu, drugi bit do zapisu, a trzeci do wykonania. Pierwsze trzy bity są dla właściciela, drugie trzy są dla grupy, a trzecie trzy bity dla innych. Oto bardziej wizualne wyjaśnienie.

Jeśli zamiast litery pojawi się myślnik, oznacza to, że właściciel, grupa lub wszyscy inni użytkownicy nie mają takiego pozwolenia. W powyższym przykładzie właściciel, grupa i wszyscy inni przeczytali uprawnienia do zapisu i wykonywania.

Jeśli spojrzysz na wynik polecenia ls -l, zauważysz, że mój plik tekstowy praktyki ma następujące uprawnienia:

 -rw-rw-rw- 

Oznacza to, że wszyscy mają tylko uprawnienia do odczytu / zapisu dla pliku. Oto inny przykład:

 drwxr - r-- 

Patrząc na pierwszy bit, widzimy, że uprawnienia dotyczą katalogu. Właściciel ma uprawnienia do odczytu / zapisu / uruchamiania, ale grupa i inni użytkownicy mają tylko uprawnienie do odczytu.

Reprezentacja liczby ósemkowej

Tak właśnie są wyświetlane uprawnienia w Linuksie za pomocą symboli. Drugi sposób reprezentowania tych samych uprawnień to użycie liczb ósemkowych. Kiedy użyjemy komendy chmod w dalszej części, zobaczysz, że możesz zmienić uprawnienia za pomocą symboli lub liczb ósemkowych.

Jak zatem Linux reprezentuje odczyt, zapis i wykonywanie przy użyciu liczb ósemkowych? Zasadniczo, po prostu przypisuje numer każdemu pozwoleniu, jak pokazano poniżej.

Uprawnienie do odczytu jest reprezentowane przez 4, pisać przez 2 i wykonywać przez 1. Wszystko, co musisz zrobić, to dodać je, aby uzyskać ósemkową zgodę. Na przykład, weźmy powyższy przykład, w którym wszyscy mają wszystkie uprawnienia:

 -rwxrwxrwx 

Właściciel ma rwx, więc dodamy 4 + 2 + 1, aby uzyskać wartość 7. Robimy to samo dla grupy i to samo dla innych. Ostateczna wartość ósemkowa wynosi 777. Rzućmy okiem na przykład, w którym daliśmy tylko uprawnienia do odczytu / zapisu:

 -rw-rw-rw- 

Pierwsza ósemkowa liczba będzie 4 + 2, ponieważ dodajemy czytać i pisać. Drugi będzie taki sam, jak trzecia liczba ósemkowa. Tutaj mamy końcową ósemkową wartość 666.

A więc spróbujmy teraz w inny sposób. Powiedzmy, że chcemy wiedzieć, jakie uprawnienia 755 reprezentuje? No cóż, łatwo się domyślić, czy podzielisz je na poszczególne liczby. Pierwsza liczba to 7, którą możemy uzyskać tylko dodając 4 + 2 + 1, co oznacza, że ​​właściciel ma uprawnienia do odczytu / zapisu / wykonywania. Pięć można zdobyć tylko dodając 4 + 1, co oznacza, że ​​grupa i inni użytkownicy mają uprawnienia do odczytu i wykonywania.

Mamy nadzieję, że jest to dobre wyjaśnienie, w jaki sposób reprezentować uprawnienia w systemie Linux przy użyciu liczb ósemkowych. Całość jest całkiem prosta.

Używanie polecenia chmod do modyfikowania uprawnień

Teraz, gdy rozumiemy, jak czytać uprawnienia, porozmawiajmy o tym, jak możemy je zmienić. Najłatwiejszym narzędziem do tego celu jest polecenie chmod. Oto jak to działa. Najlepszym sposobem na wyjaśnienie polecenia jest przejrzenie przykładu.

Zacznijmy od pozwoleń, o których mówiliśmy powyżej, a mianowicie:

 -rw-rw-rw- 

Gdybyśmy chcieli dodać uprawnienia do wykonywania dla właściciela, grupy i innych, moglibyśmy zrobić to na dwa sposoby. Możemy użyć metody symbolu lub metody ósemkowej. W przypadku metody symbolu wykonamy następujące czynności, jak pokazano poniżej:

Dokładne polecenie to

 chmod a + x nazwa pliku 

Składnia jest następująca: litera lub litery reprezentujące właściciela ( u ), grupę ( g ), inne ( o ) lub wszystkie ( a ), a następnie + dla dodawania uprawnień lub - dla uprawnień do odbierania, a następnie literę dla zezwolenie ( r dla odczytu, w dla zapisu i x dla wykonania).

W powyższym przykładzie dodałem uprawnienia do wykonywania dla wszystkich użytkowników. Wynik widoczny na powyższym zrzucie ekranu to x dla właściciela, grupy i innych. Teraz załóżmy, że chcę usunąć uprawnienia do zapisu i wykonywania tylko dla grupy i innych użytkowników.

Jak widzisz, użyłem następującego polecenia, aby to osiągnąć:

 Nazwa pliku chmod go-wx 

Ponieważ chcę zmienić uprawnienia dla grupy i innych, używam litery g i litery o . Chcę usunąć uprawnienia, więc używam znaku - . Na koniec chcę usunąć uprawnienia do zapisu i wykonywania, więc używam w i x . Oto poręczny mały stolik do użycia symboli:

A więc wystarczy użyć metody symbolu. Teraz porozmawiajmy o ósemkowej metodzie, którą uważam za nieco łatwiejszą. Oktal jest niezły, ponieważ możesz dodawać i usuwać uprawnienia za jednym razem.

Jeśli zaczniemy od następujących uprawnień do pliku, zobaczmy, jak możemy je zmienić za pomocą metody ósemkowej:

 -rw-rw-rw- 

Powyżej widać, że użyłem następującego polecenia:

 nazwa pliku chmod 744 

W zasadzie oznacza to, że właściciel otrzymuje uprawnienie do odczytu / zapisu / wykonania, a grupa i inne uprawnienia tylko do odczytu. Jak widać, można łatwo dodać lub usunąć uprawnienia w jednym prostym poleceniu. Kontynuujmy i powiedzmy, że chcę ponownie zmienić uprawnienia.

Teraz użyłem następującego polecenia, znowu bardzo prostego:

 nazwa pliku chmod 640 

Tutaj daliśmy właścicielowi prawa do odczytu / zapisu, uprawnienia do odczytu grupy, a druga grupa bez uprawnień. Używasz zera do oznaczenia braku uprawnień. Całkiem proste, co?

Podsumowując, jest to bardzo prosty przegląd uprawnień Linuksa i może on stać się o wiele bardziej skomplikowany, ale dla początkujących jest to dobre miejsce na początek. Będę publikować więcej artykułów o bardziej zaawansowanych uprawnieniach w przyszłości. Jeśli masz jakieś pytania, możesz je skomentować. Cieszyć się!

Top