Zrozumienie uprawnień Linuksa i użycie chmod

Przez ostatnie kilka miesięcy uczęszczałem na kurs o Linuksie(Linux) i jednym aspektem Linuksa(Linux) , który zawsze mnie dezorientował, było to, jak działają uprawnienia. Na przykład podczas przesyłania pliku na mój serwer internetowy i otrzymywania błędu, mój usługodawca hostingowy polecił mi zmienić uprawnienia do pliku na 755.

Nie miałem pojęcia, co to oznacza, chociaż zmiana uprawnień rozwiązała problem. Teraz zdałem sobie sprawę, że uprawnienia Linuksa(Linux) nie są aż tak skomplikowane, wystarczy zrozumieć system. W tym artykule omówię uprawnienia systemu Linux(Linux) na wysokim poziomie i pokażę, jak używać polecenia chmod do zmiany uprawnień dla plików i folderów.

Uprawnienia i poziomy Linuksa

W Linuksie(Linux) istnieją zasadniczo trzy uprawnienia, o które normalnie będziesz musiał się martwić: odczyt, zapis i wykonanie. Wszystkie trzy są dość oczywiste. Teraz, gdy te uprawnienia są stosowane do pliku, są one stosowane w poziomach.

W Linuksie(Linux) istnieją trzy poziomy uprawnień : właściciel, grupa i inne. Właściciel to użytkownik, który jest właścicielem pliku/folderu, grupa obejmuje innych użytkowników z grupy pliku, a „inny” reprezentuje tylko wszystkich innych użytkowników, którzy nie są właścicielem ani w grupie.

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

Uprawnienia są napisane w następujący sposób: pierwszy bit to albo myślnik, albo litera d. Myślnik(Dash) oznacza, że ​​jest to plik, a d oznacza katalog. Zauważ, że pierwszym bitem może być również l , jeśli nazwą pliku jest łącze. 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 są dla grupy, a trzecie trzy bity dla innych. Oto bardziej wizualne wyjaśnienie.

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

Jeśli spojrzysz na dane wyjściowe polecenia ls -l, zauważysz, że mój plik tekstowy ćwiczeń ma następujące uprawnienia:

-rw-rw-rw-

Oznacza to, że każdy ma tylko uprawnienia do odczytu/zapisu pliku. Oto kolejny 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 uprawnienia do odczytu.

Reprezentacja liczby ósemkowej

Tak więc uprawnienia są wyświetlane w Linuksie(Linux) za pomocą symboli. Drugim sposobem przedstawienia tych samych uprawnień jest użycie liczb ósemkowych. Gdy później użyjemy polecenia chmod, zobaczysz, że możesz zmienić uprawnienia za pomocą symboli lub liczb ósemkowych.

Jak więc Linux reprezentuje odczyt, zapis i wykonanie za pomocą liczb ósemkowych? Zasadniczo po prostu przypisuje numer do każdego uprawnienia, jak pokazano poniżej.

Prawo odczytu jest reprezentowane przez 4, zapis przez 2 i wykonanie przez 1. Wszystko, co musisz zrobić, to dodać je, aby uzyskać prawo ósemkowe. Weźmy na przykład 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. Ostateczna wartość ósemkowa to 777. Spójrzmy na przykład, w którym daliśmy tylko uprawnienia do odczytu/zapisu:

-rw-rw-rw-

Pierwsza liczba ósemkowa to 4 + 2, ponieważ dodajemy odczyt i zapis. Druga będzie taka sama jak trzecia liczba ósemkowa. Tutaj mamy końcową wartość ósemkową 666.

Więc teraz spróbujmy w inny sposób. Powiedzmy, że chcemy wiedzieć, jakie uprawnienia reprezentuje 755 ? Cóż, całkiem łatwo jest rozgryźć, jeśli podzielisz to na poszczególne liczby. Pierwsza cyfra 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 uzyskać tylko przez dodanie 4 + 1, co oznacza, że ​​grupa i inni użytkownicy mają uprawnienia do odczytu i wykonywania.

Mamy nadzieję(Hopefully) , że jest to dobre wyjaśnienie, jak reprezentować uprawnienia w systemie Linux(Linux) za pomocą liczb ósemkowych. Ogólnie rzecz biorąc, jest to całkiem proste.

Używanie 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 zapoznanie się z przykładem.

Zacznijmy od uprawnień, 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 to zrobić na dwa sposoby. Moglibyśmy użyć metody symbolicznej lub metody ósemkowej. W przypadku metody symbolicznej wykonalibyśmy 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 ), grupę ( g ), inny ( o ) lub wszystkie ( a ) poprzedzone znakiem + oznaczającym dodanie uprawnień lub - oznaczającym odebranie uprawnień, a następnie literą oznaczającym uprawnienia ( 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, jak widać na powyższym zrzucie ekranu, to x dla właściciela, grupy i innych. Załóżmy teraz, że chcę usunąć uprawnienia do zapisu i wykonywania tylko dla grupy i innych użytkowników.

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

chmod go-wx filename

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żywania symboli:

Więc to wszystko, co należy zrobić, jeśli chodzi o użycie metody symboli. Porozmawiajmy teraz o metodzie ósemkowej, która wydaje mi się nieco łatwiejsza. Octal jest fajny, 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(Above) widać, że użyłem następującego polecenia:

chmod 744 filename

Zasadniczo oznacza to, że właściciel otrzymuje uprawnienia do odczytu/zapisu/wykonywania, a grupa i inne osoby otrzymują tylko uprawnienia do odczytu. Jak widać, łatwo dodać lub usunąć uprawnienia za pomocą jednego prostego polecenia. Przejdźmy dalej i powiedzmy, ż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 uprawnienia do odczytu/zapisu, grupie tylko do odczytu, a drugiej grupie bez uprawnień. Zero oznacza brak uprawnień. Całkiem proste, co?

Podsumowując, jest to bardzo prosty przegląd uprawnień Linuksa(Linux) i może być o wiele bardziej skomplikowany, ale dla początkujących jest to dobre miejsce na rozpoczęcie. W przyszłości opublikuję więcej artykułów na temat bardziej zaawansowanych uprawnień. Jeśli masz jakieś pytania, śmiało możesz je komentować. Cieszyć się!



About the author

Jestem inżynierem oprogramowania z ponad 10-letnim doświadczeniem na platformach Windows 11 i 10. Skupiam się na tworzeniu i utrzymywaniu wysokiej jakości oprogramowania zarówno dla Windows 7, jak i Windows 8. Pracowałem również nad wieloma innymi projektami, w tym między innymi Chrome, Firefox, Xbox One i plikami.



Related posts