Uprawnienia do plików w systemie Linux

Uprawnienia do plików w systemie Linux - 1.0

Podstawy własności plików i uprawnień w systemie Linux. Naucz się rozumieć, kto jest właścicielem pliku lub katalogu, jak działają uprawnienia do plików i jak je przeglądać, i sam nauczyć się ustawiać podstawowe uprawnienia do plików.

Uprawnienia i własność - dlaczego? >

Jeśli nie możesz uzyskać dostępu do niektórych plików w swoim własnym systemie Linux, zwykle dzieje się tak z powodu źle skonfigurowanych uprawnień dostępu do plików. Jeśli jesteś jedynym użytkownikiem na swoim Linuksie, możesz się zastanawiać, jaki jest sens posiadania tych wszystkich uprawnień (lub ich braku), które ograniczają dostęp do Twojego własnego pingwinowego systemu operacyjnego. Jednak przed wyrywaniem włosów należy pamiętać, że Linux został zaprojektowany jako środowisko dla wielu użytkowników. W środowisku, w którym jest więcej niż jeden użytkownik, ważne jest, aby mieć bezpieczny system decydujący o tym, które pliki należą do Ciebie i kto może się nimi bawić.

Nawet jeśli jesteś jedynym użytkownikiem zwykłego systemu komputerowego, uprawnienia do plików pomagają chronić ważne pliki, zarówno przed osobami postronnymi, jak i własnymi błędami. 🙂

 

Zrozumienie własności plików >

Każdy plik w systemie Linux, w tym katalogi, jest własnością określonego użytkownika i grupy. Dlatego uprawnienia do plików są definiowane osobno dla użytkowników, grup i innych.

Użytkownik: Nazwa użytkownika osoby, która jest właścicielem pliku. Domyślnie użytkownik, który utworzy plik, stanie się jego właścicielem.

Grupa: Grupa użytkowników, do której należy plik. Wszyscy użytkownicy należący do grupy będącej właścicielem pliku będą mieli takie same uprawnienia dostępu do pliku. Jest to przydatne, jeśli na przykład masz projekt, który wymaga wielu różnych użytkowników, aby mieć dostęp do niektórych plików, podczas gdy inni nie. W takim przypadku dodasz wszystkich użytkowników do tej samej grupy, upewnij się, że wymagane pliki należą do tej grupy i odpowiednio ustawisz uprawnienia grupy do pliku.

Inny: Użytkownik, który nie jest właścicielem pliku i nie należy do tej samej grupy, co plik. Innymi słowy, jeśli ustawisz uprawnienie dla kategorii „inne”, domyślnie wpłynie to na wszystkich pozostałych. Z tego powodu ludzie często mówią o ustawianiu bitu uprawnień „świat”, kiedy mają na myśli ustawienie uprawnień dla „innych”.

 

Zrozumienie uprawnień do plików >

Istnieją trzy typy uprawnień dostępu w systemie Linux: odczyt, zapis i wykonywanie. Te uprawnienia są definiowane oddzielnie dla właściciela pliku, grupy i wszystkich innych użytkowników.

Przeczytaj uprawnienie. W zwykłym pliku bit uprawnienia do odczytu oznacza, że ​​plik można otworzyć i odczytać. W katalogu zezwolenie na odczyt oznacza, że ​​możesz wyświetlić zawartość katalogu.

Uprawnienie do zapisu. W przypadku zwykłego pliku oznacza to, że możesz modyfikować plik, czyli zapisywać nowe dane do pliku. W przypadku katalogu uprawnienie do zapisu oznacza, że ​​możesz dodawać, usuwać i zmieniać nazwy plików w katalogu. Oznacza to, że jeśli plik ma bit uprawnień do zapisu, możesz modyfikować zawartość pliku, ale możesz zmienić nazwę lub usunąć plik tylko wtedy, gdy uprawnienia pliku katalog pozwolę ci to zrobić.

Wykonaj pozwolenie. W przypadku zwykłego pliku oznacza to, że możesz uruchomić plik jako program lub skrypt powłoki. W katalogu, uprawnienie do wykonywania (zwane również „bitem wyszukiwania”) umożliwia dostęp do plików w katalogu i wprowadzanie go za pomocą cd na przykład polecenie. Należy jednak pamiętać, że chociaż bit wykonania umożliwia wejście do katalogu, nie możesz wyświetlić jego zawartości, chyba że masz również uprawnienia do odczytu tego katalogu.

 

Jak wyświetlić uprawnienia do plików >

Możesz wyświetlić uprawnienia dostępu do pliku, wykonując długą listę katalogów za pomocą ls -l dowództwo. Tak może wyglądać długa lista katalogów:

me@puter: /home/writers$ ls -l
total 17
drwxr-xr-x 3 nana writers 80 2005-09-20 21:37 dir
-rw-r----- 1 nana writers 8187 2005-09-19 13:35 file
-rwxr-xr-x 1 nana writers 10348 2005-07-17 20:31 otherfile

Co robi wyjście ls -l oznaczać? Pierwsza kolumna, ta, która wygląda jak zbiór mumbo jumbo, pokazuje typ pliku i uprawnienia. Druga kolumna pokazuje liczbę odsyłaczy (wpisy w katalogu odnoszące się do pliku), trzecia pokazuje właściciela pliku, a czwarta grupa, do której należy plik. Pozostałe kolumny pokazują rozmiar pliku w bajtach, datę i godzinę ostatniej modyfikacji oraz nazwę pliku.

Pierwsza kolumna, ta, która pokazuje uprawnienia do pliku i wygląda jak mumbo jumbo, jest podzielona na cztery oddzielne grupy, chociaż z pewnością nie wygląda na zbyt zorganizowaną.

Pierwsza grupa składa się tylko z jednego znaku i określa typ pliku. Na przykład, d oznacza katalog i - oznacza normalny plik, więc jeśli spojrzysz na nasze przykładowe wyjście, zauważysz dir jest katalogiem file i otherfile są zwykłymi plikami.

Pierwszą postacią może być dowolna z nich:

d = katalog
- = zwykły plik
l = dowiązanie symboliczne
s = Gniazdo domeny uniksowej
p = nazwany potok
c = plik urządzenia znakowego
b = blokuj plik urządzenia

Kolejnych dziewięć znaków przedstawia uprawnienia do pliku, podzielone na trzy grupy, z których każda składa się z trzech znaków. Pierwsza grupa trzech znaków przedstawia uprawnienia do odczytu, zapisu i wykonywania dla użytkownik, właściciel pliku. Następna grupa pokazuje uprawnienia do odczytu, zapisu i wykonywania dla grupa pliku. Podobnie ostatnia grupa trzech znaków pokazuje uprawnienia do inny, wszyscy inni. W każdej grupie pierwszy znak oznacza uprawnienie do odczytu, drugie uprawnienie do zapisu, a trzecie uprawnienie do wykonywania.

Postacie są bardzo łatwe do zapamiętania.

r = uprawnienie do odczytu
w = uprawnienie do zapisu
x = wykonaj uprawnienie
- = brak pozwolenia

Co to oznacza w praktyce? Weźmy przykład. Pamiętasz wyimaginowaną listę katalogów, którą zrobiliśmy na początku? Wynik wyglądał następująco:

drwxr-xr-x 3 nana writers 80 2005-09-20 21:37 dir
-rw-r----- 1 nana writers 8187 2005-09-19 13:35 file
-rwxr-xr-x 1 nana writers 10348 2005-07-17 20:31 otherfile

Jak już zauważyliśmy, dir jest katalogiem, ponieważ pierwsza kolumna zaczyna się od a d. Właścicielem tego katalogu jest użytkownik nana a właścicielem grupy jest writers. Pierwsze trzy znaki, rwxwskaż właściciela katalogu, nana w tym przypadku ma pełny dostęp do katalogu. Użytkownik nana jest w stanie uzyskać dostęp, przeglądać i modyfikować pliki w tym katalogu. Następne trzy znaki, r-x, wskaż, że wszyscy użytkownicy należący do grupy writers mieć uprawnienia do odczytu i wykonywania katalogu. Mogą przejść do katalogu, uruchamiać pliki i przeglądać jego zawartość. Jednak ponieważ nie mają uprawnień do zapisu, nie mogą wprowadzać żadnych zmian w zawartości katalogu. Wreszcie ostatnie trzy postacie, r-x, wskaż, że wszyscy użytkownicy, którzy nie są nana lub nie należą do grupy writers, mają uprawnienia do odczytu i wykonywania w katalogu.

Jak o file? Ponieważ pierwsza kolumna zaczyna się od a -, plik jest zwykłym plikiem, którego właścicielem jest użytkownik nana i grupa writers, podobnie jak katalog w naszym przykładzie. Pierwsze trzy znaki, rw-, wskaż właścicielowi prawo odczytu i zapisu do pliku. Według następnych trzech znaków, r--, użytkownicy należący do grupy writers może wyświetlać plik, ale nie może go modyfikować ani wykonywać. Ostatnie trzy znaki, ---, wskazują, że nikt inny nie ma dostępu do pliku.

Podobnie widać otherfile jest zwykłym plikiem i jego właściciel ma do niego pełny dostęp, podczas gdy wszyscy inni mogą odczytywać i wykonywać plik, ale nie mogą go modyfikować.

 

Jak ustawić uprawnienia do plików - tryb symboliczny >

Możesz ustawić uprawnienia do plików za pomocą chmod Komenda. Zarówno użytkownik root, jak i właściciel pliku mogą ustawiać uprawnienia do pliku. chmod ma dwa tryby: symboliczny i numeryczny.

Tryb symboliczny jest dość łatwy do zapamiętania. Najpierw decydujesz, czy ustawisz uprawnienia dla użytkownika (u), grupy (g), innych (o), czy wszystkich trzech (a). Następnie dodajesz uprawnienia (+), usuwasz je (-) lub kasujesz poprzednie uprawnienia i dodajesz nowe (=). Następnie decydujesz, czy ustawisz uprawnienia do odczytu (r), uprawnienia do zapisu (w), czy uprawnienia do wykonywania (x). Na koniec powiesz chmod które uprawnienia do pliku chcesz zmienić.

Spójrzmy na kilka przykładów. Załóżmy, że mamy zwykły plik o nazwie testfile, a plik ma pełne uprawnienia dostępu do wszystkich grup (pokazywałaby się długa lista katalogów -rwxrwxrwx jako uprawnienia do pliku).

Wymaż wszystkie uprawnienia, ale dodaj uprawnienia do odczytu dla wszystkich:
chmod a=r testfile
Po poleceniu uprawnienia pliku będą -r--r--r--

Dodaj uprawnienia do wykonywania dla grupy:
chmod g+x testfile
Teraz uprawnienia do pliku będą -r--r-xr--

Dodaj uprawnienia do zapisu i wykonywania dla właściciela pliku. Zwróć uwagę, jak możesz ustawić więcej niż jedno uprawnienie w tym samym czasie:
chmod u+wx testfile
Po tym będą uprawnienia do plików -rwxr-xr--

Usuń uprawnienia do wykonywania zarówno właścicielowi pliku, jak i grupie. Zwróć uwagę, jak możesz ustawić je oba naraz:
chmod ug-x testfile
Teraz uprawnienia są -rw-r--r--

Podsumowując, spójrz na to szybkie odniesienie do ustawiania uprawnień do plików w trybie symbolicznym:

Który użytkownik?
u użytkownik / właściciel
g grupa
o inny
a cała kolekcja
Co robić?
+ dodaj to pozwolenie
- usuń to uprawnienie
= ustaw dokładnie to zezwolenie
Jakie uprawnienia?
r czytać
w napisać
x wykonać

 

Jak ustawić uprawnienia do plików - tryb numeryczny >

Inny tryb, w którym chmod może być użyty tryb numeryczny. W trybie numerycznym uprawnienia do plików nie są reprezentowane przez znaki. Zamiast tego są reprezentowane przez trzycyfrową liczbę ósemkową.

= czytaj (r)
2 = napisz (w)
1 = wykonaj (x)
0 = brak pozwolenia (-)

Aby uzyskać żądane bity uprawnień, należy odpowiednio dodać liczby. Na przykład uprawnienia rwx będą wynosić 4 + 2 + 1 = 7, rx będzie wynosić 4 + 1 = 5, a rw będzie wynosić 4 + 2 = 6. Ponieważ ustawiasz oddzielne uprawnienia dla właściciela, grupy i innych osób, będziesz potrzebować trzycyfrowej liczby reprezentującej uprawnienia wszystkich tych grup.

Weźmy przykład.
chmod 755 testfile
Zmieniłoby to testfileuprawnienia do -rwxr-xr-x. Właściciel miałby pełne uprawnienia do odczytu, zapisu i wykonywania (7 = 4 + 2 + 1), grupa miałaby uprawnienia do odczytu i wykonywania (5 = 4 + 1), a świat miałby także uprawnienia do odczytu i wykonywania .

Spójrzmy na inny przykład:
chmod 640 testfile
W tym przypadku, testfileuprawnienia byłyby -rw-r-----. Właściciel miałby uprawnienia do odczytu i zapisu (6 = 4 + 2), grupa miałaby tylko uprawnienia do odczytu (4), a pozostali nie mieliby żadnych uprawnień dostępu (0).

Tryb numeryczny może nie być tak prosty jak tryb symboliczny, ale w trybie numerycznym można szybciej i sprawniej ustawić uprawnienia do plików. To szybkie odniesienie do ustawiania uprawnień do plików w trybie numerycznym może pomóc:

Który numer?
0 -
1 –X
2 -w-
3 -wx
4 r-
5 rx
6 rw-
7 Rwx