4Jul
Jeśli używasz Linuksa od pewnego 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żytkowników
W ciągu dnia komputery były ogromnymi maszynami, które były niewiarygodnie drogie. Aby w pełni wykorzystać możliwości, podłączono wiele terminali komputerowych, co pozwoliło wielu użytkownikom na 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ć przydzieloną im 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, a 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: odczyt, zapis i wykonanie. Dostęp "Odczyt" pozwala na przeglądanie zawartości pliku, dostęp "pisz" pozwala modyfikować zawartość pliku, a "wykonanie" 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 należy do tej samej grupy co właściciel, a "świat" oznacza kogokolwiek i wszystkich.
Foldery można również ograniczać za pomocą tych uprawnień.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żesz również utworzyć katalog udostępniony, który umożliwi każdemu przeglądanie i modyfikowanie plików w tym folderze.
Zmiana uprawnień w systemie Ubuntu
GUI
Aby zmienić uprawnienia do pliku, który posiadasz w Ubuntu, wystarczy kliknąć plik prawym przyciskiem myszy i przejść do "Właściwości".
Możesz zmienić, czy Właściciel, Grupa lub Inni mogą czytać i pisać,tylko do odczytu lub nie rób 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.
Command-Line
Można to również zrobić za pomocą wiersza polecenia. Przejdź do katalogu, w którym znajdują się 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. Wygląda to tak:
-rwxrw-r-
r oznacza "odczyt", w oznacza "write", a 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] plik [uprawnienia]
plik chmod [ugoa] [+ lub -] [rwx]
Na początku może się to wydawać skomplikowane, ale uwierz mi, to całkiem proste. Najpierw spójrzmy na klasy:
- u: To jest dla właściciela.
- g: To jest dla grupy.
- o: Dotyczy wszystkich pozostałych.
- a: Zmieni to uprawnienia dla wszystkich powyższych.
Następnie operatorzy:
- +: Znak plus doda dodane 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, tak jak poniżej:
chmod u + x, g-w, o-r todo.txt
Widać, że każda sekcja jest oddzielona przecinkami i nie ma spacji.
Oto kilka użytecznych 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 nie mają( przydatnedla skryptów osobistych)
- -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ą tylkoplik read( przydatne do przechowywania plików osobistych w sieci wspólnej)
- -rw ---: Właściciel może czytać i pisać, wszystkie inne nie mają żadnych( użyteczne do przechowywania plików osobistych)
Jest kilka innych rzeczy, które możesz zrobić zchmod - jak setuid i setgid - ale są trochę dogłębne i większość użytkowników tak naprawdę nie będzie ich potrzebować
Główny lub super-użytkownik i pliki systemowe
Obecnie nie zawsze uruchamiamy systemy, któremieć wielu użytkowników Dlaczego powinniśmy nadal martwić się o uprawnienia?
Cóż, Unix ijego 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 dokonać zmian 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, aż do wylogowania.
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.
Uprawnienia do plików są dostępne, 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 wyjaśnić wszystko łatwiej? Masz korektę?Chcesz wspominać o dawnych czasach? Zrób sobie przerwę i połóż swoje myśli w komentarzach.