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 webhost powiedział mi, aby zmienił uprawnienia do 755.
Nie miałem pojęcia, co to znaczy, mimo że zmiana uprawnienia rozwiązały 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 systemu Linux & amp; Poziomy
W Linuksie są zasadniczo trzy uprawnienia, 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 obejmuje innych użytkowników w grupie plików, a inni po prostu reprezentują wszystkich innych użytkowników, którzy nie są właścicielami lub w grupie.
Odczyt, zapis i wykonanie są reprezentowane 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. Dashoznacza, że jest to plik, a doznacza 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 bity dla grupy i trzecie trzy bity dla drugiego. 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 masz tego pozwolenia. W powyższym przykładzie właściciel, grupa i wszyscy inni przeczytali uprawnienia do zapisu i wykonywania.
Jeśli spojrzysz na dane wyjściowe z polecenia ls -l, zauważysz, że mój tekstowy plik ćwiczeniowy ma następujące uprawnienia:
-rw-rw-rw-
Oznacza to, że wszyscy mają uprawnienia do odczytu / zapisu tylko dla tego 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 / wykonywania, ale grupa i inni użytkownicy mają tylko uprawnienie do odczytu.
Reprezentacja liczby ósemkowej
Tak właśnie uprawnienia są wyświetlane w systemie Linux 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.
A zatem, w jaki sposób 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, pisanie przez 2 i wykonywanie 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 każdy ma 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. Ostatnia ósemkowa wartość to 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ż jesteśmy dodawanie odczytu i zapisu. 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 to 755? 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.
Mam nadzieję, że to dobrze wyjaśnienie, w jaki sposób reprezentować uprawnienia w systemie Linux przy użyciu liczb ósemkowych. Całość jest całkiem prosta.
Używanie chmod do modyfikowania uprawnień
Teraz, gdy rozumiemy, jak odczytać 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 wyjaśnienia polecenia jest wykonanie przykładu.
Zacznijmy od pozwoleń, o których mówiliśmy powyżej, a mianowicie:
-rw-rw-rw-
Jeśli chcieliśmy dodać uprawnienia do wykonywania dla właściciela, grupy i innych osób, możemy to zrobić na dwa sposoby. Możemy użyć metody symbolu lub metody ósemkowej. Dla metody symbolu, powinniśmy wykonać następujące czynności, jak pokazano poniżej:
Dokładne polecenie to
chmod a+x filename
Składnia jest następująca: litera lub litery reprezentujące właściciela (u), grupa (g), inna (o) lub wszystkie (a), a następnie +dla dodania uprawnień lub -dla odebrania uprawnień, a następnie list dla pozwolenia (rdo czytania, wdo zapisu i xdo wykonania).
W powyższym przykładzie dodałem wykonać pozwolenie dla wszystkich użytkowników. Wynik widoczny na powyższym zrzucie ekranu to xdla właściciela, grupy i innych osób. Teraz powiedzmy, że chcę usunąć uprawnienia do zapisu i wykonywania tylko dla grupy i innych użytkowników.
Jak widzisz, użyłem do następującej komendy, aby to osiągnąć:
chmod go-wx filename
Ponieważ chcę zmienić uprawnienia dla grupy i innych, używam litery gi litery o. Chcę usunąć uprawnienia, więc używam znaku -. Na koniec chcę usunąć uprawnienia do zapisu i uruchamiania, więc używam wi x. Oto przydatna mała tablica do użycia symboli:
To wszystko, co należy zrobić, używając metody symbolu. Teraz porozmawiajmy o ósemkowej metodzie, którą uważam za nieco łatwiejszą. Oktal jest niezły, ponieważ możesz dodawać lub 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:
chmod 744 filename
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 za pomocą jednego prostego polecenia. Kontynuujmy i mówię, że chcę ponownie zmienić uprawnienia.
Teraz użyłem następującego polecenia, znowu bardzo prostego:
chmod 640 filename
Tutaj daliśmy właścicielowi prawa do odczytu / zapisu, uprawnienia odczytu grupy, a druga grupa bez uprawnień. Używasz zera do oznaczenia braku uprawnień. Całkiem proste, prawda?
Podsumowując, jest to bardzo prosty przegląd uprawnień Linuksa i może on być o wiele bardziej skomplikowany, ale dla początkujących jest to dobre miejsce na rozpoczęcie. Będę zamieszczał więcej artykułów o bardziej zaawansowanych uprawnieniach w przyszłości. Jeśli masz jakieś pytania, możesz je skomentować. Ciesz się!