Menu
Jest wolny
rejestracja
główny  /  NA/ Ubuntu Server - Prawa użytkownika administracyjnego. Zarządzanie użytkownikami Ubuntu 16.04 dodawanie użytkownika root

Ubuntu Server — prawa użytkownika administracyjnego. Zarządzanie użytkownikami Ubuntu 16.04 dodawanie użytkownika root

Witam wszystkich!

W tym artykule pokażę, jak dodać nowego użytkownika, zmienić jego uprawnienia lub zmienić hasło użytkownika w Linux Ubuntu. A także jak tworzyć „Konta” za pomocą narzędzia graficznego lub z wiersza poleceń.

Spójrzmy na pierwszy sposób dodania nowego konta.

Za pomocą panelu szybkiego uruchamiania otwórz „Ustawienia systemu” i wybierz „Konta”.

Teraz musisz zdobyć dodatkowe uprawnienia. Aby to zrobić, naciśnij przycisk „Odblokuj”.

Wprowadź swoje hasło i kliknij przycisk „Uwierzytelnij”

Aby dodać nowego użytkownika, kliknij „+”

W formularzu, który się otworzy, wybierz typ konta. W tym standardowym narzędziu możesz utworzyć dwa typy użytkowników:

  • Zwykły
  • Administrator

W większości przypadków wystarczy typ konta „Normalny”. Ale jeśli w przyszłości okaże się, że ten użytkownik potrzebuje dodatkowych uprawnień, wystarczy wrócić do narzędzia „Konta” i zmienić typ konta.

Wybierz typ konta „Normalny”, dodaj nazwę użytkownika i kliknij przycisk „Dodaj”.

Mamy nowe konto, ale nie jest ono aktywowane, dopóki nie zostanie ustawione hasło.

Nowe konto włączamy, klikając pozycję „Hasło”:

Korzystając z podpowiedzi, wymyślamy hasło „Silne”, a następnie wpisujemy je ponownie w polu „Potwierdź hasło”. Nowe konto aktywujemy, klikając przycisk „Zmień”.

Aby usunąć niepotrzebne konto, musisz je zaznaczyć i kliknąć znak „-”

Otworzy się okno wyboru metody usuwania.

Istnieją dwie opcje:

  • usuwanie katalogu domowego
  • lub z jego zachowaniem.
    • Jeśli pliki tego użytkownika nie są już potrzebne, kliknij „Usuń pliki” ./ p>

      Konto i wszystkie pliki w katalogu domowym zostały usunięte.

      Przyjrzyjmy się teraz drugiemu sposobowi dodania nowego użytkownika.

      Otwórzmy terminal i uruchom następujące polecenie.

      sudo adduser nowi użytkownicy

      Aby uzyskać dodatkowe uprawnienia, należy wprowadzić hasło użytkownika i nacisnąć klawisz „Enter” na klawiaturze.

      Ponownie wprowadź hasło i naciśnij klawisz „Enter” na klawiaturze.

      Dodajemy niezbędne informacje i jeśli wszystko się zgadza, potwierdzamy to wpisując „Y” i naciskamy klawisz „Enter” na klawiaturze.

      Ale jeśli potrzebujemy użytkownika z uprawnieniami "Administratora", musimy uruchomić jeszcze jedno polecenie i dodać użytkownika do niezbędnych grup (adm, cdrom, sudo, dip, plugdev, lpadmin, sambashare).

      sudo usermod -a -G adm, cdrom, sudo, dip, plugdev, lpadmin, sambashare nowi użytkownicy

      Aby zobaczyć, do jakich grup należy użytkownik, uruchom następujące polecenie.

      nowi użytkownicy sudo id

      Bardzo łatwo jest również zmienić hasło dowolnego użytkownika. Wpisujemy polecenie passwd i nazwę użytkownika.

      nowi użytkownicy sudo passwd

      Wprowadź hasło dla nowego użytkownika i naciśnij klawisz „Enter” na klawiaturze.

      Następnie ponownie wprowadź hasło i naciśnij klawisz „Enter” na klawiaturze. Jeśli wszystko zostało zrobione poprawnie, powinieneś zobaczyć wpis „hasło zaktualizowano pomyślnie”. A teraz musisz wprowadzić nowe hasło, aby zalogować się na to konto.

      Bardzo łatwo jest również usunąć niepotrzebnego użytkownika i jego folder domowy. Aby to zrobić, wpisujemy

      sudo userdel -r nowi użytkownicy

      Niestety powyższe polecenie nie wyświetla wyników swojej pracy. Aby jednak sprawdzić, czy użytkownik newusers nadal znajduje się w naszym systemie, możemy użyć innego polecenia.

      nowi użytkownicy sudo id

      W wyniku jego wykonania widzimy, że w systemie nie ma takiego użytkownika.

      Zbadaliśmy, jak dodać nowego użytkownika, zmienić hasło, zmienić jego uprawnienia poprzez dodanie do grup, a także jak usunąć użytkownika. A jeśli są jakieś niezrozumiałe pytania na ten temat i są sugestie, to proszę o napisanie ich w komentarzach. Cześć wszystkim!

Jak pokazuje odpowiedź czytelnika, kwestia separacji praw administracyjnych w Ubuntu jest nadal słabo rozumiana przez większość początkujących administratorów, dlatego postanowiliśmy wyjaśnić tę kwestię za pomocą tego materiału. Dlatego jeśli nie wiesz, czym su różni się od sudo, gdzie ukryłeś root itp. itd. - czas zacząć studiować nasz artykuł.

Zacznijmy od małej dygresji. System praw administracyjnych Linuksa jest zakorzeniony w systemie operacyjnym Unix i dlatego ma wiele wspólnego z innymi systemami uniksopodobnymi: BSD, Solaris, MacOS. Jednocześnie różne dystrybucje mają swoje własne cechy implementacji niektórych punktów, więc podamy konkretne przykłady dotyczące rodziny Ubuntu, jednak znajomość ogólnych zasad pozwoli ci łatwo zrozumieć środowisko dowolnego innego systemu operacyjnego uniksopodobnego .

Użytkownik ma pełne prawa administracyjne w systemie Linux źródło, którego nie można ograniczyć w prawach, dlatego codzienna praca w imieniu tego użytkownika jest wysoce niepożądana: nieostrożne działania użytkownika mogą uszkodzić system, a włamanie się do tego konta da atakującemu nieograniczony dostęp do systemu.

Dlatego Linux używa innego schematu, wszyscy użytkownicy, w tym administratorzy, pracują na ograniczonym koncie i używają jednego z mechanizmów podnoszenia uprawnień do wykonywania czynności administracyjnych. Aby to zrobić, możesz podnieść uprawnienia za pomocą narzędzia sudo lub zaloguj się jako superużytkownik (root "a) bez kończenia bieżącej sesji za pomocą polecenia su... Wiele osób błędnie myli te dwa mechanizmy, dlatego przeanalizujemy je bardziej szczegółowo.

Zespół su umożliwia zalogowanie się jako inny użytkownik (niekoniecznie root) bez kończenia bieżącej sesji. Więc polecenie:

Su Pietrow

pozwoli Ci zalogować się jako użytkownik petrov, środowisko użytkownika (folder domowy) również zostanie zmienione tak, aby należało do tego użytkownika.

Zespół su bez podawania nazwy użytkownika, umożliwia zalogowanie się za pomocą konta źródło"A. Ta metoda ma jednak jedną istotną wadę - aby zalogować się w imieniu innego użytkownika, musisz znać jego hasło. Jeśli masz kilku administratorów, to każdy z nich będzie znał hasło superużytkownika i nie będziesz mógł ograniczyć ich prawa.

Dodatkowo jest to niebezpieczne, znajomość hasła superużytkownika i możliwość zalogowania się pod jego imieniem w przypadku włamania może doprowadzić do całkowitej utraty kontroli nad systemem.

Co się stanie, jeśli w ten sposób spróbujemy podnieść prawa w Ubuntu? Nie powiedzie się, ponieważ nie znamy hasła użytkownika. źródło, jednocześnie nikt nie zawraca nam głowy logowaniem się jako inny użytkownik.

"Czekać!" - powie inny użytkownik - "ale czy pierwszy utworzony użytkownik, który określimy podczas instalacji, nie otrzymuje uprawnień administratora?" Rzeczywiście, zadania administracyjne można wykonywać tylko w imieniu użytkownika utworzonego podczas instalacji, gdy próbujesz zrób to w imieniu innego użytkownika, zrozumiemy niepowodzenie.

Tu zbliżamy się do drugiego mechanizmu podniesienia uprawnień – użyteczności sudo... Jednak przed przystąpieniem do jej studiowania warto wyjaśnić: prawa administratora (root) w Ubuntu należą do konta root, które jest domyślnie wyłączone. Dlatego podnieś uprawnienia za pomocą polecenia su nie wydaje się możliwe.

Głównym mechanizmem podnoszenia poziomu w Ubuntu jest narzędzie sudo... To narzędzie umożliwia podniesienie uprawnień do poziomu administratora dla wykonywanego polecenia i nie musisz znać hasła administratora, użytkownik musi wprowadzić własne hasło. Następnie narzędzie sprawdzi, czy ten użytkownik ma prawo do wykonania tego polecenia na tym hoście z prawami administratora i, jeśli testy zakończą się pomyślnie, wykona je.

To jest ważne! Podstawowa różnica su z sudo służy temu su umożliwia zmianę aktualnego użytkownika na roota, co wymaga aktywnego konta superużytkownika w systemie i znajomości hasła do niego, sudo umożliwia podniesienie uprawnień do wykonywanego polecenia bez określania hasła administratora, użytkownik musi wprowadzić własne hasło, logowanie jako root przy użyciu tych poświadczeń nie zadziała.

Kolejna ważna okoliczność, podczas korzystania z potoku lub przekierowania z prawami administratora, tylko pierwsza część polecenia zostanie wykonana, na przykład w konstrukcji:

Drużyna Sudo1 | zespół2

tylko jako root zostanie wykonany drużyna1... I zespół

Sudo cat sources.list> /etc/apt/sources.list

da błąd praw dostępu od momentu wejścia w /etc/apt/sources.list stanie się z prawami zwykłego użytkownika.

Aby wykonać złożone kombinacje poleceń, możesz przełączyć się w tryb administratora za pomocą polecenia

co jest podobne do elewacji zespołu su, jednak nie zmieni to środowiska użytkownika, a katalog bieżącego użytkownika będzie używany jako katalog domowy, co jest wygodne i bezpieczne. Każdy z administratorów będzie miał dostęp tylko do swojego katalogu domowego.

Teraz nadszedł czas, aby dowiedzieć się, kto ma prawo skorzystać z możliwości. sudo iw jakim stopniu. Plik odpowiada za ustawienia tego narzędzia. / etc / sudoers, pomimo tego, że jest to zwykły plik konfiguracyjny, zdecydowanie zaleca się użycie polecenia do jego edycji:

Sudo visudo

To polecenie blokuje plik i sprawdza składnię, w przeciwnym razie ryzykujesz utratę dostępu administracyjnego do komputera z powodu literówki.

Składnia tego pliku jest dość prosta. Na przykład na samym końcu pliku znajduje się wpis:

% admin WSZYSTKO = (WSZYSTKO) WSZYSTKO

Oznacza to, że użytkownicy grupy Admin może wykonać dowolne polecenie na dowolnym hoście, w imieniu dowolnego użytkownika. Jak możemy łatwo zweryfikować za pomocą polecenia grupy w naszym przypadku użytkownik Andrzej należy do grupy Admin i użytkownik Pietrow nie.

Ale wszystkie zalety tego narzędzia polegają na możliwości elastycznego konfigurowania parametrów uzyskiwania praw w każdym konkretnym przypadku. Na przykład:

Petrov ubuntu-lts = (andrey) ALL

Ta linia pozwala użytkownikowi Pietrow wykonaj dowolne polecenie na hoście ubuntu-lts w imieniu użytkownika Andrzej... Podczas określania poleceń musisz podać pełną ścieżkę do nich, możesz to sprawdzić za pomocą polecenia który

Na przykład chcemy zezwolić użytkownikom Pietrow oraz Sidorowa zamknąć i ponownie uruchomić komputer oraz usunąć zadania. W takim przypadku polecenia te nie powinny wymagać wprowadzania hasła.

Kolejną fajną cechą narzędzia sudo jest tworzenie aliasów, więc w naszym przypadku dodamy do / etc / sudoers następujące wiersze:

User_Alias ​​​​USERGROUP1 = petrov, sidorov
Cmnd_Alias ​​​​CMDGROUP1 = / bin / kill, / sbin / reboot, / sbin / shutdown

Dzięki temu stworzyliśmy dwa aliasy GRUPA UŻYTKOWNIKÓW1 gdzie uwzględniliśmy potrzebnych użytkowników i CMDGROUP1 z zestawem niezbędnych poleceń, później możemy edytować tylko aliasy, bez wpływu na wszystkie reguły, w których można ich używać. Następnie dodaj regułę:

USERGROUP1 ALL = (ALL) NOPASSWD: CMDGROUP1

co pozwoli użytkownikom wymienionym w określonym aliasie wykonywać na dowolnym hoście w imieniu dowolnych poleceń użytkownika z podanego aliasu bez wprowadzania hasła.

Oprócz powyższych dwóch, dostępne są również aliasy dla nazwy hosta i użytkowników, w imieniu których można wykonywać polecenia, na przykład:

Host_Alias ​​​​WWW = serwer WWW1, serwer WWW2
Runas_Alias ​​​​WWW = www-dane, www-deweloper

GRUPA UŻYTKOWNIKÓW1 WWW = (WWW) WSZYSTKO

Podany zestaw rekordów pozwoli użytkownikom wejść GRUPA UŻYTKOWNIKÓW1 wykonywać dowolne polecenia w imieniu użytkowników www-dane oraz www-deweloper na serwerach internetowych firmy.

Na koniec spójrzmy, co zrobić, jeśli konto root jest nadal potrzebne. To proste, aby go włączyć, wystarczy ustawić hasło:

Sudo passwd root

Konto superużytkownika możesz ponownie zablokować za pomocą polecenia:

Sudo passwd -l root

Pamiętaj, że wszystkie zadania administracyjne w Ubuntu można wykonać za pomocą narzędzia sudo, więc nie włączaj konta root, chyba że naprawdę tego potrzebujesz!

Jak widać, Ubuntu ma bogate możliwości zarządzania prawami administracyjnymi, co pozwala elastycznie rozdzielać prawa między kilku administratorów, a także zapewnia możliwość podniesienia uprawnień niektórym użytkownikom, robiąc to wydajnie i bezpiecznie.

3 maja 2016 12:20 27 946 wyświetleń | bez komentarza

Zarządzanie użytkownikami to jedna z najważniejszych umiejętności administratora systemu Linux. Zazwyczaj w nowym systemie jest tylko jeden domyślny użytkownik, root.

Konto root ma szerokie uprawnienia i jest bardzo elastyczne, ale zdecydowanie odradza się korzystanie z serwera jako root na stałe. Faktem jest, że z bezwzględnymi prawami użytkownik root może przypadkowo spowodować nieodwracalne uszkodzenie systemu i serwera. Dlatego do codziennej pracy musisz utworzyć dodatkowego użytkownika z normalnymi uprawnieniami, a następnie nadać mu uprawnienia superużytkownika. Możesz także utworzyć dodatkowe konta dla innych użytkowników, którzy muszą mieć dostęp do serwera.

Ten przewodnik nauczy Cię, jak tworzyć nowe konta użytkowników, przenosić prawa sudo i usuwać użytkowników.

Dodawanie użytkownika

Aby dodać nowego użytkownika do sesji roota, wpisz:

Podczas sesji użytkownika innego niż root z dostępem sudo możesz dodać nowego użytkownika za pomocą polecenia:

sudo adduser nowy użytkownik

Polecenie zasugeruje:

  • Ustaw i potwierdź hasło.
  • Wprowadź dodatkowe informacje o użytkowniku. Jest to opcjonalne; aby zaakceptować domyślne informacje, po prostu naciśnij Enter.
  • Potwierdź, że podane informacje są poprawne (naciśnij Enter).

Nowy użytkownik jest gotowy! Teraz możesz połączyć się z serwerem za jego pomocą.

Konfigurowanie uprawnień sudo

Aby móc używać nowego konta do wykonywania zadań administratora, musisz przyznać użytkownikowi dostęp do polecenia sudo. Można to zrobić na dwa sposoby:

  1. Dodaj użytkownika do grupy sudo
  2. Edytuj ustawienia sudo w pliku / etc / sudoers

Dodaj użytkownika do grupy sudo

W Ubuntu 16.04 wszyscy użytkownicy w grupie sudo mają domyślnie dostęp do polecenia sudo.

Aby dowiedzieć się, do jakich grup należy nowy użytkownik, wpisz:

Polecenie zwróci:

nowy użytkownik: nowy użytkownik

Domyślnie każdy nowy użytkownik systemu zaliczany jest tylko do grupy o tej samej nazwie. Aby dodać użytkownika do grupy, wprowadź:

usermod -aG sudo nowy użytkownik

Flaga –aG dodaje użytkownika do wymienionych grup.

Testowanie konfiguracji

Teraz musimy upewnić się, że nowy użytkownik ma dostęp do polecenia sudo.

Domyślnie polecenia w sesji nowego użytkownika są uruchamiane w następujący sposób:

Aby uruchomić polecenie jako administrator, dodaj sudo na początku polecenia:

sudo some_command

W takim przypadku system poprosi o hasło bieżącego użytkownika.

Edycja pliku / etc / sudoers

Alternatywnym sposobem rozszerzenia uprawnień użytkownika jest edycja pliku sudoers. Aby to zrobić, użyj polecenia visudo, które pozwala otworzyć plik / etc / sudoers w edytorze i jawnie określić uprawnienia każdego użytkownika systemu.

Zalecamy edytowanie pliku sudoers wyłącznie za pomocą visudo, ponieważ to polecenie blokuje wiele jednoczesnych edycji i sprawdza zawartość przed nadpisaniem pliku. Zapobiega to błędom w konfiguracji sudo, które mogłyby prowadzić do utraty uprawnień.

Jeśli jesteś w sesji roota, wpisz:

W sesji użytkownika innego niż root z dostępem sudo wprowadź:

Zazwyczaj visudo otwiera / etc / sudoers w edytorze vi, co może być trudne dla początkujących. Domyślnie visudo używa bardziej znanego edytora nano w nowych instalacjach Ubuntu. Użyj klawiszy strzałek, aby przesunąć kursor. Znajdź linię:

korzeń WSZYSTKO = (WSZYSTKO: WSZYSTKO) WSZYSTKO

Skopiuj tę linię i wklej ją poniżej, zastępując root nazwą użytkownika, któremu chcesz nadać uprawnienia superużytkownika.

korzeń WSZYSTKO = (WSZYSTKO: WSZYSTKO) WSZYSTKO
nowyużytkownik WSZYSTKO = (WSZYSTKO: WSZYSTKO) WSZYSTKO

Dodaj taką linię dla każdego użytkownika, który potrzebuje podwyższonych uprawnień. Zapisz i zamknij plik.

Usuwanie użytkowników

Niepotrzebne konta można usunąć.

Aby usunąć użytkownika pozostawiającego swoje pliki, wpisz:

jako root
deluser nowyużytkownik
jako zwykły użytkownik z podwyższonymi uprawnieniami:
nowy użytkownik sudo deluser

Aby usunąć użytkownika wraz z jego katalogiem domowym, użyj:

w sesji użytkownika root
deluser --remove-home nowyużytkownik
w sesji użytkownika z rozszerzonymi uprawnieniami:
sudo deluser --remove-home nowyużytkownik

Jeśli zdalny użytkownik miał uprawnienia administratora, musisz je unieważnić, edytując plik:

wizjoner
Lub
sudo visudo
korzeń WSZYSTKO = (WSZYSTKO: WSZYSTKO) WSZYSTKO
nowyużytkownik WSZYSTKO = (WSZYSTKO: WSZYSTKO) WSZYSTKO # usuń tę linię

Gdyby linia pozostała w pliku, a użytkownik o tej samej nazwie pojawiłby się w systemie, automatycznie otrzymałby rozszerzone uprawnienia. Teraz to się nie stanie.

Wniosek

Zarządzanie użytkownikami jest umiejętnością niezbędną podczas administrowania serwerem Ubuntu 16.04. Pozwoli ci oddzielić użytkowników i dać im tylko dostęp, którego potrzebują do pracy.

Aby uzyskać więcej informacji na temat konfigurowania sudo, sprawdź nasze.

Tagi:,

Ponieważ Linux jest systemem wieloużytkownikowym, kwestia organizacji kontroli dostępu do plików i katalogów jest jednym z podstawowych problemów, które system operacyjny musi rozwiązać. Mechanizmy kontroli dostępu opracowane dla systemu UNIX w latach 70-tych (być może jednak zostały przez kogoś wcześniej zaproponowane) są bardzo proste, ale okazały się na tyle skuteczne, że istnieją od ponad 30 lat i do dziś skutecznie wypełniać stojące przed nimi wyzwania.

Mechanizmy kontroli dostępu oparte są na nazwach użytkowników i nazwach grup użytkowników. Wiesz już, że w Linuksie każdy użytkownik ma unikalną nazwę, pod którą się loguje (zalogowuje). Dodatkowo w systemie tworzonych jest szereg grup użytkowników, a każdy użytkownik może być zawarty w jednej lub kilku grupach. Superużytkownik tworzy i usuwa grupy, może też zmieniać skład członków danej grupy. Członkowie różnych grup mogą mieć różne prawa dostępu do plików, na przykład grupa Administratorzy może mieć więcej uprawnień niż grupa Programiści.

I-węzeł każdego pliku zawiera nazwę tzw. właściciela pliku oraz grupę, która ma do niego prawa. Początkowo podczas tworzenia pliku użytkownik, który go utworzył, jest deklarowany jako jego właściciel. Dokładniej, użytkownik, w imieniu którego uruchamiany jest proces tworzący plik. Grupa jest również przypisywana podczas tworzenia pliku — przez identyfikator grupy procesu, który tworzy plik. Właściciela i grupę pliku można zmienić w trakcie dalszej pracy za pomocą poleceń chown oraz chgrp(więcej na ich temat zostanie omówione później).

Teraz ponownie uruchommy polecenie ls-l... Ale podajmy jako dodatkowy parametr nazwę konkretnego pliku, na przykład pliku, który ustawia samo polecenie ls... (Przy okazji zwróć uwagę na tę możliwość polecenia ls-l- uzyskać informacje o konkretnym pliku, a nie o wszystkich plikach w katalogu naraz).

$ ls -l / kosz / ls

Możesz zobaczyć, że w tym przypadku właścicielem pliku jest użytkownik root i grupa root. Ale teraz bardziej interesuje nas pierwsze pole w wynikach tego polecenia, które określa typ pliku i prawa dostępu do pliku. To pole w podanym przykładzie jest reprezentowane przez ciąg znaków -rwxr-xr-x... Symbole te można z grubsza podzielić na 4 grupy.

Pierwsza grupa, składająca się z jednego znaku, określa typ pliku. Symbol ten, zgodnie z możliwymi typami plików omówionymi w poprzedniej sekcji, może przyjmować następujące wartości:

    - = - zwykły plik;

    d =- katalog;

    b =- blokować plik urządzenia;

    c =- plik urządzenia znakowego;

    s =- gniazdo domeny (gniazdo);

    p =- nazwana rura (rura);

    l =- dowiązanie symboliczne (link).

Po nim następują trzy grupy po trzy znaki każda, które określają prawa dostępu do pliku, odpowiednio, dla właściciela pliku, dla grupy użytkowników powiązanej z tym plikiem i dla wszystkich innych użytkowników systemu. W naszym przykładzie uprawnienia właściciela są zdefiniowane jako rwx, co oznacza, że ​​właściciel ( źródło) ma prawo do odczytu pliku (r), zapisu do tego pliku (w) i wykonania pliku (x). Zastąpienie któregokolwiek z tych symboli myślnikiem oznacza, że ​​użytkownik jest pozbawiony odpowiedniego prawa. W tym samym przykładzie widzimy, że wszyscy inni użytkownicy (w tym ci, którzy są uwzględnieni w grupie) źródło) są pozbawieni prawa zapisu do tego pliku, to znaczy nie mogą go edytować i w ogóle go jakoś zmienić.

Najogólniej mówiąc prawa dostępu i informacje o typie pliku w systemach UNIX są przechowywane w i-węzłach w osobnej strukturze składającej się z dwóch bajtów, czyli 16 bitów (jest to naturalne, ponieważ komputer operuje bitami, a nie r, w, x) . Cztery z tych 16 bitów są zarezerwowane dla zakodowanego rekordu typu pliku. Kolejne trzy bity ustawiają specjalne właściwości plików wykonywalnych, o których powiemy nieco później. Wreszcie pozostałe 9 bitów określa uprawnienia pliku. Te 9 bitów jest podzielonych na 3 grupy po trzy bity. Pierwsze trzy bity określają prawa użytkownika, następne trzy bity to prawa grupy, ostatnie 3 bity określają prawa wszystkich innych użytkowników (tj. wszystkich użytkowników z wyjątkiem właściciela pliku i grupy plików).

W tym przypadku, jeśli odpowiedni bit ma wartość 1, to prawo jest przyznawane, a jeśli jest równe 0, to prawo nie jest przyznawane. W symbolicznym zapisie praw jeden jest zastępowany odpowiednim symbolem (r, w lub x), a 0 jest reprezentowane przez myślnik.

Prawo do odczytu (r) pliku oznacza, że ​​użytkownik może przeglądać zawartość pliku za pomocą różnych poleceń widoku, takich jak polecenie jeszcze lub za pomocą dowolnego edytora tekstu. Jednak edytując zawartość pliku w edytorze tekstu, nie możesz zapisać zmian w pliku na dysku, jeśli nie masz uprawnień do zapisu (w) do tego pliku. Uprawnienie do wykonywania (x) oznacza, że ​​możesz załadować plik do pamięci i spróbować uruchomić go jako program wykonywalny. Oczywiście, jeśli w rzeczywistości plik nie jest programem (lub skryptem powłoki), to nie będzie można uruchomić tego pliku do wykonania, ale z drugiej strony, nawet jeśli plik jest rzeczywiście programem, ale uprawnienia do wykonywania dla niego nie są ustawione, to również się nie uruchomi.

Więc dowiedzieliśmy się, które pliki są wykonywalne w Linuksie! Jak widać, rozszerzenie nazwy pliku nie ma z tym nic wspólnego, wszystko jest określane przez ustawienie atrybutu „wykonywalny”, a prawo do wykonania może nie być przyznane każdemu!

Jeśli uruchomisz to samo polecenie ls-l, ale jako ostatni argument do niego poda nie nazwę pliku, ale nazwę katalogu, zobaczymy, że prawa dostępu są również zdefiniowane dla katalogów i są one określone tymi samymi symbolami rwx. Na przykład, uruchamiając polecenie ls -l /, zobaczymy, że linia odpowiada katalogowi bin:

Oczywiście w odniesieniu do katalogów interpretacja pojęć „prawo do odczytu”, „prawo do zapisu” i „prawo do wykonania” nieco się zmienia. Dostęp w trybie odczytu do katalogów jest łatwy do zrozumienia, gdy pamięta się, że katalog to po prostu plik zawierający listę plików w danym katalogu. Dlatego, jeśli masz prawo do czytania katalogu, możesz przeglądać jego zawartość (ta sama lista plików w katalogu). Zrozumiałe jest również prawo do zapisu - mając to prawo, możesz tworzyć i usuwać pliki w tym katalogu, czyli po prostu dodawać lub usuwać wpis w katalogu zawierający nazwę pliku i odpowiednie linki. Prawo do wykonania jest mniej intuicyjne. W tym przypadku oznacza to prawo do przejścia do tego katalogu. Jeśli jako właściciel chcesz dać innym użytkownikom dostęp do przeglądania pliku w Twoim katalogu, musisz im przyznać dostęp do katalogu, czyli dać im „prawo do wykonywania katalogu”. Ponadto użytkownik musi mieć uprawnienia do wykonywania wszystkich katalogów znajdujących się powyżej tego katalogu w drzewie. Dlatego w zasadzie dla wszystkich katalogów prawo do wykonania jest domyślnie ustawione, zarówno dla właściciela i grupy, jak i dla wszystkich innych użytkowników. A jeśli chcesz zamknąć dostęp do katalogu, pozbaw wszystkich użytkowników (w tym grupę) prawa do wejścia do tego katalogu. Tylko nie pozbawiaj się tego prawa, bo inaczej będziesz musiał skontaktować się z superużytkownikiem! (Uwaga 11)

Po przeczytaniu poprzedniego akapitu mogłoby się wydawać, że prawo do czytania katalogu nie jest niczym nowym w porównaniu z prawem do wykonywania. Jednak nadal istnieje różnica w tych prawach. Jeśli ustawisz tylko prawo do wykonania, będziesz mógł wejść do katalogu, ale nie zobaczysz tam ani jednego pliku (ten efekt jest szczególnie widoczny, jeśli używasz jakiegoś menedżera plików, na przykład programu Midnight Commander) . Jeśli masz prawo dostępu do któregokolwiek z podkatalogów tego katalogu, możesz przejść do niego (poleceniem płyta CD), ale jak mówią "na ślepo", z pamięci, ponieważ nie zobaczysz listy plików i podkatalogów bieżącego katalogu.

Algorytm sprawdzania uprawnień użytkownika podczas dostępu do pliku można opisać w następujący sposób. System najpierw sprawdza, czy nazwa użytkownika jest taka sama, jak właściciel pliku. Jeśli te nazwy są takie same (czyli właściciel ma dostęp do swojego pliku), to sprawdzane jest, czy właściciel ma odpowiednie prawa dostępu: do odczytu, zapisu lub wykonywania (nie dziw się, superużytkownik może cofnąć niektóre z prawa i właściciela pliku). Jeśli istnieje takie prawo, dozwolona jest odpowiednia operacja. Jeśli właściciel nie ma wymaganego prawa, to sprawdzanie praw przyznanych przez grupę lub przez grupę atrybutów dostępu dla innych użytkowników nie jest nawet sprawdzane, a użytkownik otrzymuje komunikat, że żądana akcja nie może zostać wykonana (zwykle coś jak „Odmowa zezwolenia”).

Jeśli nazwa użytkownika uzyskującego dostęp do pliku nie jest zgodna z nazwą właściciela, wówczas system sprawdza, czy właściciel należy do grupy, która jest powiązana z tym plikiem (dalej będziemy nazywać go po prostu grupą pliku). Jeśli należy, atrybuty grupy są używane do określenia, czy można uzyskać dostęp do pliku, a atrybuty właściciela i wszystkich innych użytkowników są ignorowane. Jeśli użytkownik nie jest właścicielem pliku i nie jest członkiem grupy plików, jego prawa są określane przez atrybuty innych użytkowników. Tak więc trzecia grupa atrybutów, które określają uprawnienia do pliku, dotyczy wszystkich użytkowników z wyjątkiem właściciela pliku i użytkowników w grupie plików.

Aby zmienić prawa dostępu do pliku, użyj polecenia chmod... Może być używany na dwa sposoby. W pierwszej opcji musisz wyraźnie wskazać komu dajesz jakie prawo lub komu to prawo pozbawiasz:

$ nazwa pliku chmod wXp

gdzie zamiast symbolu w podstawiony

    lub symbol ty(tj. użytkownik, który jest właścicielem);

    lub g(Grupa);

    lub o(wszyscy użytkownicy nienależący do grupy, do której należy ten plik);

    lub a(wszyscy użytkownicy systemu, tj. właściciel, grupa i wszyscy inni).

Zamiast x jest umieszczony:

    lub + (udzielamy prawa);

    lub - (pozbawiamy odpowiednie prawo);

    lub = (ustaw określone uprawnienia zamiast istniejących),

Zamiast P- symbol oznaczający odpowiednie prawo:

    r(czytanie);

    w(nagranie);

    x(występ).

Oto kilka przykładów użycia polecenia chmod:

$ chmod a + x nazwa_pliku

przyznaje wszystkim użytkownikom systemu prawo do uruchomienia tego pliku.

$ chmod go-rw nazwa_pliku

usuwa dostęp do odczytu i zapisu dla wszystkich oprócz właściciela pliku.

$ chmod ugo + rwx nazwa_pliku

daje każdemu prawa do czytania, pisania i wykonywania.

Jeśli pominiemy wskazanie, komu przyznano to prawo, oznacza to, że mówimy ogólnie o wszystkich użytkownikach, czyli zamiast $ chmod a + x nazwa_pliku

można napisać po prostu

$ chmod + x nazwa_pliku

Druga opcja ustawienia polecenia chmod(wykorzystywany częściej) opiera się na cyfrowej reprezentacji praw. W tym celu kodujemy znak r cyfrą 4, znak w cyfrą 2, a znak x cyfrą 1. Aby nadać użytkownikom zestaw uprawnień konieczne jest dodanie odpowiednich liczb. Po uzyskaniu w ten sposób niezbędnych wartości cyfrowych dla właściciela pliku, dla grupy plików i dla wszystkich innych użytkowników, ustawiamy te trzy cyfry jako argument do polecenia chmod(wstawiamy te liczby po nazwie polecenia przed drugim argumentem, który określa nazwę pliku). Na przykład, jeśli musisz przyznać wszystkie prawa właścicielowi (4 + 2 + 1 = 7), prawo do czytania i pisania grupie (4 + 2 = 6) i nie przyznawać żadnych praw reszcie, wtedy powinieneś wydać następujące polecenie:

$ chmod 760 nazwa_pliku

Jeśli znasz binarne kodowanie cyfr ósemkowych, zrozumiesz, że cyfry po nazwie polecenia w tej formie jego reprezentacji są niczym innym jak notacją ósemkową samych 9 bitów, które ustalają prawa dla właściciela pliku, grupy plików i dla wszystkich użytkowników.

Zmień uprawnienia do pliku za pomocą polecenia chmod może być tylko właścicielem pliku lub superużytkownikiem. Aby móc zmieniać uprawnienia grupy, właściciel musi dodatkowo być członkiem grupy, której chce nadać uprawnienia do tego pliku.

Aby dokończyć opowieść o uprawnieniach do plików, musimy omówić jeszcze trzy możliwe atrybuty plików, ustawiane za pomocą tego samego polecenia chmod... Są to te same atrybuty dla plików wykonywalnych, które zajmują pozycje 5-7 w i-węźle pliku w dwubajtowej strukturze, która definiuje uprawnienia pliku, zaraz po kodzie typu pliku.

Pierwszym z tych atrybutów jest tak zwany „bit zmiany identyfikatora użytkownika”. Znaczenie tego bitu jest następujące.

Zwykle, gdy użytkownik uruchamia program do wykonania, ten program otrzymuje takie same uprawnienia do plików i katalogów, jakie ma użytkownik, który uruchomił program. Jeśli ustawiony jest „bit zmiany identyfikatora użytkownika”, program uzyska prawa dostępu do plików i katalogów, które posiada właściciel pliku programu (stąd ten atrybut lepiej nazywać „bitem zmiany identyfikatora właściciela”). Pozwala to na wykonanie niektórych zadań, które w innym przypadku byłyby trudne do wykonania. Najbardziej typowym przykładem jest polecenie zmiany hasła hasło... Wszystkie hasła użytkowników są przechowywane w pliku /etc/passwd, którego właścicielem jest superużytkownik. źródło... Dlatego programy uruchamiane przez zwykłych użytkowników, w tym polecenie hasło, nie można zapisywać do tego pliku. Oznacza to, że użytkownik nie może niejako zmienić własnego hasła. Ale dla pliku /usr/bin/passwd ustawiony jest "bit id zmiany właściciela", który jest użytkownikiem źródło... Stąd zmieniacz hasła hasło działa z prawami źródło i uzyskuje prawo do zapisu do pliku /etc/passwd (za pomocą samego programu zapewnia się, że użytkownik może zmienić tylko jedną linię w tym pliku).

Superużytkownik może ustawić „bit identyfikatora zmiany właściciela” za pomocą polecenia

# chmod + s nazwa_pliku

„Bit zmiany identyfikatora grupy” działa w podobny sposób.

Innym możliwym atrybutem pliku wykonywalnego jest „sticky bit” lub „sticky bit”. Ten bit mówi systemowi, aby zapisać go w pamięci RAM po zakończeniu programu. Wygodnie jest włączyć ten bit dla zadań, które są często wywoływane do wykonania, ponieważ w tym przypadku oszczędza się czas podczas ładowania programu przy każdym nowym uruchomieniu. Ten atrybut był wymagany w starszych modelach komputerów. Jest rzadko używany w nowoczesnych, szybkich systemach.

Jeśli używasz opcji numerycznej do określania atrybutów w poleceniu chmod, wartość liczbowa tych atrybutów musi poprzedzać cyfry określające uprawnienia użytkownika:

# chmod 4775 nazwa_pliku

W takim przypadku wagi tych bitów w celu uzyskania pożądanego wyniku całkowitego są ustawione w następujący sposób:

    4 - "bit zmiany ID użytkownika",

    2 - „bit zmiany identyfikatora grupy”,

    1 - "lepki bit".

Jeśli którykolwiek z tych trzech bitów jest ustawiony na 1, wyjście polecenia jest nieznacznie zmienione. ls-l w zakresie wyświetlania ustawionych atrybutów praw dostępu. Jeżeli "bit zmiany ID użytkownika" jest ustawiony na 1, to znak "x" w grupie określającej prawa właściciela pliku jest zastępowany znakiem "s". Co więcej, jeśli właściciel ma prawo do uruchomienia pliku, to znak „x” jest zastępowany małym „s”, a jeśli właściciel nie ma prawa do uruchomienia pliku (np. plik nie jest wykonywalny w ogóle), to zamiast "x" umieszczane jest "S". Podobne podstawienia mają miejsce, gdy określony jest „bit zmiany identyfikatora grupy”, ale znak „x” jest zastępowany w grupie atrybutów, które definiują prawa grupy. Jeśli „bity przyklejone” to 1, to znak „x” w grupie atrybutów definiującej prawa dla wszystkich innych użytkowników jest zastępowany, a „x” jest zastępowany znakiem „t”, jeśli wszyscy użytkownicy mogą uruchomić plik, oraz z „T”, jeśli nie mają do tego prawa.

Tak więc, chociaż w wyniku polecenia ls-l nie ma oddzielnych pozycji do wyświetlania wartości bitów zmiany identyfikatora i bitu zapisu zadania, wyświetlane są odpowiednie informacje. Oto mały przykład tego, jak by to wyglądało:

# ls -l prim1

V. Kostromin (kos w rus-linux dot net) - 4,5. Uprawnienia do plików i katalogów

Załóżmy, że jestem nowym użytkownikiem Ubuntu Linux 16.04.xx LTS. Mogę od razu mieć kilka pytań. Jak utworzyć nowego użytkownika sudo na moim serwerze? Jak dodać nowego użytkownika do pliku sudoer za pomocą opcji wiersza poleceń na Ubuntu?

Linux (i ogólnie Unix) ma administratora o nazwie root. Użytkownik root może zrobić wszystko i wszystko, przez co normalne korzystanie z systemu może stać się bardzo niebezpieczne. Możesz niepoprawnie wpisać komendę i zniszczyć system. Polecenie sudo umożliwia autoryzowanemu użytkownikowi uruchomienie polecenia jako superużytkownik (użytkownik root) lub inny użytkownik określony w polityce bezpieczeństwa. Często sudo jest używane na serwerach, aby zapewnić prawa i uprawnienia administratora zwykłym użytkownikom. W tym krótkim samouczku dowiesz się, jak utworzyć użytkownika sudo na Ubuntu.

Kilka kroków, które należy wykonać, aby utworzyć użytkownika sudo na Ubuntu

Więcej o grupie admin i sudo na serwerze Ubuntu

Członkowie grupy administracyjnej mogą otrzymać uprawnienia administratora. Wszyscy członkowie grupy sudo uruchamiają dowolne polecenie na serwerze Ubuntu. Po prostu dodaj użytkownika do grupy sudo na serwerze Ubuntu. Grupa administratorów została znacznie zmniejszona od wersji Ubuntu 12.04 i nowszych. W związku z tym grupa administratorów już nie istnieje lub jest po prostu używana w Ubuntu 12.04 lub nowszym. Powód, dla którego to działa:

# grep -B1 -i "^% sudo" / etc / sudoers

$ sudo grep -B1 -i "^% sudo" / etc / sudoers

# Zezwól członkom grupy sudo na wykonanie dowolnego polecenia% sudo ALL = (ALL: ALL) ALL

Rzućmy okiem na kilka praktycznych przykładów.

Jak mogę dodać nowego użytkownika o nazwie vivek do sudo za pomocą wiersza poleceń?

Otwórz terminal lub zaloguj się do zdalnego serwera:

$ szsz [e-mail chroniony]$ szsz [e-mail chroniony] { [e-mail chroniony]: / źródło) #

# adduser vivek

$ sudo adduser vivek

Rysunek 01: Jak dodać nowego użytkownika na Ubuntu

Przykłady możliwych wyjść danych:

Jak utworzyć użytkownika sudo w Ubuntu dla konta vivek

Wpisz następujące polecenie:

# adduser vivek sudo

LUB użyj polecenia usermod, aby dodać użytkownika do grupy w systemie Linux:

# usermod -aG sudo vivek

$ sudo usermod -aG sudo vivek

$ sudo adduser vivek sudo

Przykłady możliwych wyjść danych:

Rysunek 02: Dodaj użytkownika vivek do sudo, aby uzyskać uprawnienia administratora

Potwierdź nowego użytkownika i członka grupy za pomocą:

$ identyfikator vivek

Przykłady możliwych wyjść danych:

Rysunek 03: Wyświetlanie informacji o użytkowniku i grupie

Użytkownik vivek może teraz zalogować się za pomocą polecenia ssh w następujący sposób:

$ szsz [e-mail chroniony]

Upewnij się, że vivek może użyć polecenia sudo:

$ kot sudo / etc / sudoers

Przy pierwszym użyciu polecenia sudo zostaniesz poproszony o podanie hasła do konta vivek. Więc wprowadź hasło vivek, aby uzyskać dostęp do roota. Każdy rodzaj polecenia z sudo musi być uruchamiany z uprawnieniami roota dla konta vivek. Aby uzyskać powłokę root, wpisz:

$ sudo –s

Przykłady możliwych wyjść danych:

Rysunek 03: Testowanie dostępu sudo dla konta użytkownika vivek

I tak to zrobiłeś. Możesz teraz zezwolić innym użytkownikom na uruchamianie sudo na serwerze Ubuntu i przyznać użytkownikom prawa administratora.