Zarządzanie użytkownikami i grupami, uprawnienia i atrybuty plików oraz umożliwianie dostępu Sudo na kontach - Część 8

Zarządzanie użytkownikami i grupami, uprawnienia i atrybuty plików oraz umożliwianie dostępu Sudo na kontach - Część 8

W sierpniu ubiegłego roku Fundacja Linux rozpoczęła LFCS certyfikacja (Sysadmin z certyfikatem Linux Foundation; podejmowanie decyzji, aby móc zdecydować, kiedy konieczne jest eskalacja problemów w zespołach wsparcia wyższego poziomu.

Certyfikowane sysadmin Linux Foundation - część 8

Proszę rzucić okiem na następujący film, który opisuje wprowadzenie do programu certyfikacji Fundacji Linux.

Ten artykuł znajduje się w części 8 10-tutoricalnej serii, tutaj w tej sekcji poprowadzimy Cię, w jaki sposób zarządzać uprawnieniami użytkowników i grup w systemie Linux, które są wymagane do egzaminu certyfikacyjnego LFCS.

Ponieważ Linux jest systemem operacyjnym wielu użytkowników (ponieważ umożliwia wielu użytkownikom na różnych komputerach lub terminach dostęp do jednego systemu), musisz wiedzieć, jak wykonać skuteczne zarządzanie użytkownikami: jak dodawać, edytować, zawiesić lub usuwać Konta użytkowników, wraz z przyznaniem im niezbędnych uprawnień do wykonania przypisanych zadań.

Dodawanie kont użytkowników

Aby dodać nowe konto użytkownika, możesz uruchomić jedno z dwóch następujących poleceń jako root.

# adduser [new_account] # useradd [new_account] 

Po dodaniu nowego konta użytkownika do systemu wykonywane są następujące operacje.

1. Jego katalog domowy jest tworzony (/Strona główna/nazwa użytkownika domyślnie).

2. Poniższe ukryte pliki są kopiowane do katalogu domowego użytkownika i będą używane do dostarczania zmiennych środowiskowych dla jego sesji użytkownika.

.bash_logout .bash_profile .Bashrc 

3. Szpula pocztowe jest tworzona dla użytkownika AT/var/Spool/Mail/nazwa użytkownika.

4. Grupa jest tworzona i nadaje tę samą nazwę co nowe konto użytkownika.

Zrozumienie /etc /passwd

Informacje o pełnym koncie są przechowywane w /etc/passwd plik. Ten plik zawiera rekord na konto użytkownika systemu i ma następujący format (pola są ograniczone przez dwukropek).

[Nazwa użytkownika]: [x]: [UID]: [GID]: [Komentarz]: [Directory Home Directory]: [Domyślna powłoka] 
  1. Pola [nazwa użytkownika] I [Komentarz] są wyjaśniające.
  2. X w drugim polu wskazuje, że konto jest chronione przez zacienione hasło (w /itp./Shadow), który jest potrzebny do zalogowania się jako [nazwa użytkownika].
  3. [UID] I [KOŁOWACIZNA] Pola to liczby całkowite reprezentujące identyfikację użytkownika i identyfikację grupy podstawowej, do której [nazwa użytkownika] należy odpowiednio.
  4. [Katalog domowy] wskazuje bezwzględną ścieżkę do [nazwa użytkownika]katalog domowy i
  5. [Domyślna powłoka] to powłoka, która zostanie udostępniona temu użytkownikowi, gdy on lub ona loguje system.
Zrozumienie /etc /grupa

Informacje grupowe są przechowywane w /etc/grupa plik. Każdy rekord ma następujący format.

[Nazwa grupy]: [Hasło grupy]: [GID]: [Członkowie grupy] 
  1. [Nazwa grupy] to nazwa grupy.
  2. Jakiś X W [Hasło grupy] Wskazuje, że hasła grupowe nie są używane.
  3. [KOŁOWACIZNA]: tak samo jak w /etc /passwd.
  4. [Członkowie grupy]: oddzielona przecinka lista użytkowników, którzy są członkami [Nazwa grupy].
Dodaj konta użytkowników

Po dodaniu konta możesz edytować następujące informacje (aby wymienić kilka pól) za pomocą Usermod polecenie, którego podstawowa składnia Usermoda jest następująca.

# Usermod [opcje] [nazwa użytkownika] 
Ustawienie daty wygaśnięcia konta

Użyj -Data ważności flaga, a następnie randka ROYYY-MM-DD format.

# Usermod-Expiredate 2014-10-30 Tecmint 
Dodanie użytkownika do grup uzupełniających

Użyj połączonego -Ag, Lub -dodać -grupy opcje, a następnie oddzielona przecinek grup grup.

# Usermod --pend -Groups Root, Użytkownicy Tecmint 
Zmiana domyślnej lokalizacji katalogu domowego użytkownika

Użyj -D, Lub -dom opcje, a następnie bezwzględna ścieżka do nowego katalogu domu.

# Usermod - -home /tmp tecmint 
Zmiana powłoki, której użytkownik użyje domyślnie

Używać -powłoka, a następnie ścieżka do nowej powłoki.

# Usermod -Shell /bin /sH Tecmint 
Wyświetlanie grup, użytkownik jest członkiem
# grupy tecmint # id tecMint 

Teraz wykonajmy wszystkie powyższe polecenia za jednym razem.

# Usermod-Expiredate 2014-10-30 --pend-Groups Root, Użytkownicy-Home /TMP-Shell /Bin /SH Tecmint 
Przykłady poleceń Usermod

W powyższym przykładzie ustawimy datę ważności Tecmint Konto użytkownika do 30 października 2014. Dodamy również konto do źródło i grupa użytkowników. Wreszcie ustawimy cii jako domyślna powłoka i zmień lokalizację katalogu domowego na /TMP:

Przeczytaj także:

  1. 15 Przykłady poleceń useradd w Linux
  2. 15 Przykłady poleceń Usermod w Linux

W przypadku istniejących kont możemy również wykonać następujące.

Wyłączanie konta poprzez blokowanie hasła

Użyj -L (wielki poziom l) lub -zamek opcja zablokowania hasła użytkownika.

# Usermod - -Lock Tecmint 
Odblokowanie hasła użytkownika

Użyj -u albo -odblokować Opcja odblokowania hasła użytkownika, które zostało wcześniej zablokowane.

# Usermod -Unlock Tecmint 
Zablokuj konta użytkowników
Tworzenie nowej grupy do odczytu i zapisu dostępu do plików, do których należy uzyskać dostęp do kilku użytkowników

Uruchom następującą serię poleceń, aby osiągnąć cel.

# grupaadd common_group # Dodaj nową grupę # chown: common_group common.txt # Zmień właściciela grupy Common.txt do common_group # Usermod -Ag common_group Użytkownik 1 # Dodaj użytkownik 
Usuwanie grupy

Możesz usunąć grupę z następującym poleceniem.

# grupa 

Jeśli istnieją pliki własności Nazwa grupy, Nie zostaną usunięte, ale właściciel grupy zostanie ustawiony na KOŁOWACIZNA grupy, która została usunięta.

Uprawnienia do plików Linux

Oprócz podstawowego odczytu, zapisu i wykonania uprawnień, które omówiliśmy w narzędziach archiwizacji i ustawianiu atrybutów plików - część 3 tej serii, istnieją inne mniej używane (ale nie mniej ważne) ustawienia uprawnień, czasem określane jako ”Specjalne uprawnienia".

Podobnie jak podstawowe uprawnienia omówione wcześniej, są one ustawione za pomocą pliku ósemkowego lub za pośrednictwem litery (notacja symboliczna), który wskazuje rodzaj uprawnienia.

Usuwanie kont użytkowników

Możesz usunąć konto (wraz z jego katalogiem domowym, jeśli jest własnością użytkownika, i wszystkich plików w nim przebywających, a także szpuli pocztowej) za pomocą użytkownik polecenie z -usunąć opcja.

# UserDel -Remove [nazwa użytkownika] 

Zarządzanie grupą

Za każdym razem, gdy nowe konto użytkownika jest dodawane do systemu, grupa o tej samej nazwie jest tworzona o nazwie użytkownika jako jedyny członek. Inni użytkownicy można później dodać do grupy. Jednym z celów grup jest wdrożenie prostej kontroli dostępu do plików i innych zasobów systemowych poprzez ustalenie odpowiednich uprawnień na te zasoby.

Załóżmy na przykład, że masz następujących użytkowników.

  1. User1 (grupa podstawowa: użytkownik 1)
  2. User2 (grupa podstawowa: user2)
  3. User3 (grupa podstawowa: user3)

Wszyscy potrzebują Czytać I pisać dostęp do pliku o nazwie wspólny.tekst znajdujący się gdzieś w systemie lokalnym, a może w sieci, udostępniając to użytkownik 1 stworzył. Możesz mieć ochotę zrobić coś takiego,

# CHMOD 660 Common.txt lub # chmod u = rw, g = rw, o = wspólne.txt [Zwróć uwagę na przestrzeń między ostatnim znakiem równości a nazwą pliku] 

To jednak zapewni tylko Czytać I pisać dostęp do właściciela pliku i użytkowników, którzy są członkami właściciela grupy pliku (użytkownik 1 w tym przypadku). Znowu możesz mieć pokusę, aby dodać Użytkownik2 I User3 do grupy użytkownik 1, Ale to zapewni im również dostęp do reszty plików należących do użytkownika użytkownik 1 i grupa użytkownik 1.

Tutaj przydają się grupy, a oto, co powinieneś zrobić w takim przypadku.

Zrozumienie setuid

Kiedy setuid Zezwolenie jest stosowane do pliku wykonywalnego, użytkownik uruchomiony program dziedziczy skuteczne uprawnienia właściciela programu. Ponieważ takie podejście może rozsądnie zwiększyć obawy dotyczące bezpieczeństwa, liczba plików z upewnieniem się setuid musi być ograniczona do minimum. Prawdopodobnie znajdziesz programy za pomocą tego zestawu uprawnień, gdy użytkownik systemu musi uzyskać dostęp do pliku należącego do Root.

Podsumowując, nie tylko użytkownik może wykonywać plik binarny, ale także może to zrobić z uprawnieniami Root. Na przykład sprawdźmy uprawnienia /bin/passwd. Ten plik binarny służy do zmiany hasła konta i modyfikuje /itp./Shadow plik. Superuser może zmienić hasło każdego, ale wszyscy inni użytkownicy powinni być w stanie tylko zmienić własne.

Przykłady polecenia PASSWD

Zatem każdy użytkownik powinien mieć zgodę na uruchomienie /bin/passwd, Ale tylko root będzie mógł określić konto. Inni użytkownicy mogą zmienić tylko odpowiednie hasła.

Zmień hasło użytkownika
Zrozumienie setgid

Kiedy setgid Bit jest ustawiony, skuteczny KOŁOWACIZNA prawdziwego użytkownika staje się właścicielem grupy. W ten sposób każdy użytkownik może uzyskać dostęp do pliku w ramach uprawnień przyznanych właścicielowi grupy takiego pliku. Ponadto, gdy bit setGID jest ustawiony w katalogu, nowo utworzone pliki dziedziczą tę samą grupę co katalog, a nowo utworzone podwodniki odziedziczą również bit setgid katalogu nadrzędnego. Najprawdopodobniej użyjesz tego podejścia, ilekroć członkowie określonej grupy potrzebują dostępu do wszystkich plików w katalogu, niezależnie od grupy głównej właściciela pliku.

# chmod g+s [nazwa pliku] 

Ustawić setgid W formie osławionej przygotuj liczbę 2 do obecnych (lub pożądanych) podstawowych uprawnień.

# CHMOD 2755 [Directory] 
Ustawienie setgid w katalogu
Dodaj setgid do katalogu
Zrozumienie lepkiego bitu

Kiedy "lepki kawałek”Jest ustawiony na plikach, Linux po prostu go ignoruje, podczas gdy w przypadku katalogów powoduje, że uniemożliwia użytkownikom usunięcie lub nawet zmianę nazwy zawartych plików, chyba że użytkownik jest właścicielem katalogu, pliku lub rootem.

# chmod o+t [katalog] 

Ustawić lepki kawałek W formie osławionej przygotuj liczbę 1 do obecnych (lub pożądanych) podstawowych uprawnień.

# CHMOD 1755 [Directory] 

Bez lepkiego bitu, każdy, kto może napisać do katalogu, może usunąć lub zmienić nazwę plików. Z tego powodu lepki bit jest powszechnie spotykany w katalogach, takich jak /TMP, które są na całym świecie.

Dodaj lepki do katalogu

Specjalne atrybuty pliku Linux

Istnieją inne atrybuty, które umożliwiają dalsze limity operacji, które są dozwolone w plikach. Na przykład zapobiegaj przemianowaniu pliku, przeniesienia, usunięcia, a nawet zmodyfikowaniu. Są ustawione za pomocą polecenia chattr i można je przeglądać za pomocą lsattr narzędzie w następujący sposób.

# chattr +i file1 # chattr +alep 

Po wykonaniu tych dwóch poleceń, plik 1 będzie niezmienne (co oznacza, że ​​nie można go przesuwać, przemianować, zmodyfikować lub usuwać), podczas gdy plik2 wprowadzi tryb tylko w dodatku (można otworzyć tylko w trybie dodatkowym do pisania).

Polecenie Chattr w celu ochrony plików

Dostęp do konta głównego i korzystanie z Sudo

Jednym ze sposobów, w jaki użytkownicy mogą uzyskać dostęp do konta głównego, jest wpisanie.

$ su 

a następnie wprowadzenie hasła Root.

Jeśli uwierzytelnianie się powiedzie, zostaniesz zalogowany jako źródło z obecnym katalogiem roboczym tak samo jak wcześniej. Jeśli zamiast tego chcesz zostać umieszczony w katalogu domowym Root, uruchom.

$ su - 

a następnie wprowadź hasło roota.

Włącz dostęp do użytkowników Sudo

Powyższa procedura wymaga, aby normalny użytkownik znał hasło Roota, co stanowi poważne ryzyko bezpieczeństwa. Z tego powodu sysadmin może skonfigurować sudo polecenie, aby umożliwić zwykłego użytkownika wykonywanie poleceń jako innego użytkownika (zwykle superuser) w bardzo kontrolowany i ograniczony sposób. Zatem na użytkownika można ustawić ograniczenia, aby umożliwić mu uruchomienie jednego lub bardziej specyficznych poleceń uprzywilejowanych i żadnych innych.

Przeczytaj także: Różnica między użytkownikiem SU i Sudo

Do uwierzytelnienia za pomocą sudo, Użytkownik używa własnego hasła. Po wejściu do polecenia zostaniemy poproszeni o nasze hasło (a nie superuser), a jeśli uwierzytelnianie się powiedzie (i jeśli użytkownik otrzymał uprawnienia do uruchomienia polecenia), określone polecenie zostanie przeprowadzone.

Aby przyznać dostęp do Sudo, administrator systemu musi edytować /etc/sudoers plik. Zaleca się edytowanie tego pliku za pomocą Visudo polecenie zamiast otwierać go bezpośrednio z edytorem tekstu.

# Visudo 

To otwiera /etc/sudoers plik za pomocą krzepa (Możesz śledzić instrukcje podane w instalacji i użyć VIM jako edytora - część 2 tej serii, aby edytować plik).

To są najbardziej odpowiednie linie.

Domyślnie Secure_Path = "/usr/sbin:/usr/bin:/sbin" root all = (all) All TecMint All =/bin/yum aktualizacja gacanepa all = nopasswd:/bin/aktualizateb %admin All = (all) Wszystkie 

Przyjrzyjmy się im bliżej.

Domyślnie Secure_Path = "/usr/sbin:/usr/bin:/sbin:/usr/local/bin" 

Ta linia pozwala określić katalogi, które będą używane sudo, i służy do zapobiegania użyciu katalogów specyficznych dla użytkownika, które mogą zaszkodzić systemowi.

Następne linie są używane do określenia uprawnień.

root all = (wszystkie) wszystkie 
  1. Pierwszy WSZYSTKO Słowo kluczowe wskazuje, że ta reguła dotyczy wszystkich hostów.
  2. Drugi WSZYSTKO Wskazuje, że użytkownik w pierwszej kolumnie może uruchamiać polecenia z uprawnieniami każdego użytkownika.
  3. Trzeci WSZYSTKO oznacza, że ​​można uruchomić dowolne polecenie.
aktualizacja TecMint All =/bin/yum 

Jeśli po żaden użytkownik nie jest określony po = Znak, Sudo zakłada użytkownika root. W takim przypadku użytkownik Tecmint będzie mógł biec Aktualizacja Yum jako root.

gacanepa all = nopasswd:/bin/aktualizateb 

Nopasswd Dyrektywa umożliwia uruchomienie użytkownika Gacanepa /bin/aktualizowanyb bez konieczności wprowadzania hasła.

%admin all = (wszystkie) wszystkie 

% Znak wskazuje, że ta linia dotyczy grupy o nazwie „Admin". Znaczenie reszty linii jest identyczne z znaczeniem zwykłego użytkownika. Oznacza to, że członkowie grupy „Admin”Może uruchamiać wszystkie polecenia jako każdy użytkownik na wszystkich hostach.

Aby zobaczyć, jakie przywileje są przyznawane przez Sudo, użyj „-L„Opcja ich wymienienie.

SUDO Reguły dostępu

PAM (moduły uwierzytelniania wtyczki)

Moduły uwierzytelniania wtyczki (PAM) Zapewnij elastyczność ustalania określonego schematu uwierzytelniania na podstawie zastosowania i / lub zasady dla usług przy użyciu modułów. To narzędzie obecne we wszystkich nowoczesnych dystrybucjach Linux pokonało problem często, przed którymi stoi programiści na początku Linux, kiedy każdy program wymagał uwierzytelnienia, musiał zostać skompilowany specjalnie, aby wiedzieć, jak uzyskać niezbędne informacje.

Na przykład w przypadku PAM nie ma znaczenia, czy twoje hasło jest przechowywane /itp./Shadow lub na osobnym serwerze wewnątrz sieci.

Na przykład, gdy program logowania musi uwierzytelnić użytkownika, PAM zapewnia dynamicznie bibliotekę zawierającą funkcje odpowiedniego schematu uwierzytelniania. Zatem zmiana schematu uwierzytelniania aplikacji logowania (lub dowolnego innego programu za pomocą PAM) jest łatwa, ponieważ wymaga jedynie edytowania pliku konfiguracyjnego (najprawdopodobniej pliku nazwanego na cześć aplikacji, znajdującej się w środku /etc/pam.D, i mniej prawdopodobne w /etc/pam.conf).

Pliki w środku /etc/pam.D Wskaż, które aplikacje używają natywnie Pam. Ponadto możemy stwierdzić, czy określona aplikacja używa PAM, sprawdzając, czy jest to biblioteka PAM (Libpam) został z tym powiązany:

# ldd $ (który login) | GREP Libpam # Login używa PAM # LDD $ (który na górze) | Grep libpam # top nie używa PAM 
Sprawdź bibliotekę Linux Pam

Na powyższym obrazie widzimy, że Libpam został powiązany z aplikacją logowania. Ma to sens, ponieważ ta aplikacja jest zaangażowana w działanie uwierzytelniania użytkownika systemu, podczas gdy TOP nie.

Sprawdźmy plik konfiguracyjny PAM dla Passwd - Tak, dobrze znana narzędzie do zmiany haseł użytkownika. Znajduje się na /etc/pam.d/passwd:

# cat /etc /passwd 
Plik konfiguracyjny PAM dla hasła Linux

Pierwsza kolumna wskazuje typ uwierzytelnienia do użycia z ścieżka modułu (trzecia kolumna). Gdy strzępek pojawia się przed typem, PAM nie zapisuje się do dziennika systemu, jeśli nie można załadować modułu, ponieważ nie można go było znaleźć w systemie.

Dostępne są następujące typy uwierzytelniania:

  1. konto: Ten typ modułu sprawdza, czy użytkownik lub usługa dostarczyło prawidłowe poświadczenia do uwierzytelnienia.
  2. Auth: Ten typ modułu weryfikuje, że użytkownik jest tym, kim twierdzi, że jest i daje wszelkie potrzebne uprawnienia.
  3. hasło: Ten typ modułu pozwala użytkownikowi lub usługę aktualizować hasło.
  4. sesja: Ten typ modułu wskazuje, co należy zrobić przed i/lub po uwierzytelnieniu.

Druga kolumna (nazywana kontrola) Wskazuje, co powinno się wydarzyć, jeśli uwierzytelnianie z tym modułem nie powiedzie się:

  1. wymagany: Jeśli uwierzytelnianie za pośrednictwem tego modułu nie powiedzie się, ogólne uwierzytelnianie zostanie natychmiast odrzucone.
  2. wymagany jest podobne do wymaganego, chociaż wszystkie inne wymienione moduły dla tej usługi zostaną wywołane przed odrzuceniem uwierzytelnienia.
  3. wystarczający: Jeśli uwierzytelnianie za pośrednictwem tego modułu nie powiedzie się, PAM nadal udzieli uwierzytelniania, nawet jeśli poprzednie oznaczone zgodnie z wymaganiami.
  4. opcjonalny: Jeśli uwierzytelnianie za pośrednictwem tego modułu nie powiedzie się lub się powiedzie, nic się nie dzieje, chyba że jest to jedyny moduł jego typu zdefiniowany dla tej usługi.
  5. włączać oznacza, że ​​linie danego typu powinny być odczytane z innego pliku.
  6. suback jest podobne do obejmuje, ale awarie uwierzytelnienia lub sukcesy nie powodują wyjścia z pełnego modułu, ale tylko subakcji.

Czwarta kolumna, jeśli istnieje, pokazuje argumenty, które mają zostać przekazane do modułu.

Pierwsze trzy linie w /etc/pam.d/passwd (pokazane powyżej), załaduj system systemu Moduł do sprawdzenia, czy użytkownik dostarczył prawidłowe poświadczenia (konto). Jeśli tak, pozwala mu to zmienić token uwierzytelniający (hasło), dając zgodę na użycie PASSWD (Auth).

Na przykład, jeśli dołączysz

Pamiętaj = 2 

do następującej linii

Hasło wystarczające Pam_Unix.Więc sha512 shadow nullok try_first_pass użyj_authtok 

W /etc/pam.D/System-Auth:

Hasło wystarczające Pam_Unix.więc sha512 shadow nullok try_first_pass użyj_authtok Pamiętaj = 2 

Dwa ostatnie hasła do każdego użytkownika są zapisane /etc/bezpieczeństwo/opasswd aby nie można ich było ponownie wykorzystać:

Pola hasła Linux

Streszczenie

Skuteczne umiejętności zarządzania użytkownikami i plikami są niezbędnymi narzędziami dla każdego administratora systemu. W tym artykule omówiliśmy podstawy i mamy nadzieję, że możesz go użyć jako dobre. Zostaw swoje komentarze lub pytania poniżej, a my szybko odpowiemy.

Zostań certyfikowanym administratorem systemu