Przejdź do głównej zawartości

Linux RHCSA cz.28 - Użytkownicy - konta, dodawanie, modyfikacja , usuwanie

Każdy system operacyjny powinien umożliwiać założenie konta użytkownikowi oraz umożliwiać mu efektywną w nim pracę. W tym rozdziale omówię zagadnienie pracy administratora związanej z użytkownikami w systemie, czyli dodawanie kont nadawanie uprawnień, tworzenie grup itd. Każdy administrator systemu spędza sporo czasu zarządzając kontami i grupami użytkowników. Dzieje się tak ponieważ ustawienia te określają do jakich plików i katalogów dany użytkownik, czy grupa mają dostęp i określają poziom tego dostępu. Możliwe jest również gromadzenie użytkowników w grupy na przykład do pracy nad wspólnym projektem. W momencie tworzenia konta użytkownika utworzony zostaje również standardowy zestaw plików. Pliki te określają środowisko i miejsce pracy danego użytkownika. W dużych systemach z dużą rotacją użytkowników administratorzy zazwyczaj opracowują automatyzację pracy z kontami użytkowników stosując uprzednio przygotowane skrypty. Do tej pory wszystko wydaje się oczywiste póki praca ogranicza się do jednej maszyny co jednak zrobić jeżeli mamy do czynienia z większą ilością hostów w sieci? Czy na każdym z osobna trzeba tworzyć odrębnie tych samych użytkowników? Rozwiązaniem problemu jest dodanie systemu do domeny zawierającej wszystkie konta użytkowników wraz z grupami w centralnej bazie umożliwiając tym samym łatwiejszą organizację i pracę z kontami użytkowników. 

UŻYTKOWNICY I GRUPY 

W środowisku RedHat istnieją trzy różne typy kont użytkowników: 
  • root
  • zwykły użytkownik 
  • użytkownik systemowy (pseudo użytkownik) 
Konto "root" jest kontem równoważnym z Windowsową wersją Enterprise Administrator. Jest to konto posiadające największe uprawnienia w systemie i ma dostęp do wszystkiego co się w nim znajduje. Właśnie z powodu mocy jakie posiada to konto nie powinno się go NIGDY używać!

W momencie instalacji środowiska RedHat zostajemy zapytani o utworzenie pierwszego konta użytkownika (jeżeli instalacja przebiega z desktop manager) w innym wypadku jeżeli instalacja przebiega przez sieć lub z pominięciem kreatora pierwsze konto należy utworzyć samemu. Tak czy inaczej chodzi o to by stworzyć dla siebie konto użytkownika i nadać mu takie uprawnienia by można by było przy jego pomocy wykonywać swoje zadania administratora. 

W dalszej części zobaczysz w jaki sposób przekazać kontrolę nad administracją w systemie specjalnie utworzonemu użytkownikowi lub każdemu innemu użytkownikowi aby mógł wykonać przydzielone zadania do których uprawnienia posiada tylko konto "root". 

Działania takie nie tylko powoduję, że system jest bardziej bezpieczny, ale dzięki takiemu podejściu łatwiej zarządzać odpowiedzialnością konkretnych użytkowników za to co dzieje się w systemie (wiadomo co kto robił). Zwykłe konto użytkownika nie możliwości zapisu, nigdzie w systemie poza własnym katalogiem domowym ( może jedynie przeglądać strukturę katalogów) dopiero administrator może nadać odpowiednie uprawnienia do pozostałych miejsc w systemie. 

Konto systemowe jest bardzo podobne do konta zwykłego użytkownika. Różnica polega na tym, iż konto systemowe nie posiada katalogu domowego i nie loguje się do systemu tak jak zwykły użytkownik. Konta takie wykorzystywane są na potrzeby programów oraz usług systemowych umożliwiając im działanie. Dlaczego właśnie tak zostało to rozwiązane? Dla przykładu serwer (usługa) Apache ( serwer stron WWW) posiada własnego użytkownika i jeżeli ktoś przejął by nad nim kontrole mógł by jedynie uzyskać dostęp do tej konkretnej usługi i jej plików konfiguracyjnych . Jeżeli by zezwolić by serwis ten działał z uprawnieniami root w razie wystąpienia ataku atakujący zyskał by pełne prawa do całego środowiska. Jest to również odpowiedź na pytanie dlaczego nie należy używać konta root w systemie. 

UŻYTKOWNICY

Pracując z użytkownikami musimy mieć możliwość założenia im konta zabezpieczonego hasłem ( oraz zarządzań ustawieniami haseł), edycji i konfiguracji konta i uprawnień oraz usunięcia konta, gdy nie będzie już dłużej potrzebne. Do zarządzania kontami użytkowników stosujemy polecenia: 
  • useradd        - Utworzenie użytkownika i jego konta
  • usermod       - Modyfikowanie konta użytkownika
  • userdel         - Usunięcie konta z systemu
Wyobraźmy sobie sytuację, gdy do administratora w biurze przychodzi pracownik i mówi: " Potrzebuję zalogować się do jednego z serwerów by zainstalować na nim nowe oprogramowanie i je przetestować". Nie można dać mu własnych uprawnień, gdyż to my jesteśmy administratorem i rozdawanie własnego pełno prawnego konta jest wykluczone. Potrzebujemy konta użytkownika dla tego człowieka na danym serwerze. Dla ćwiczeń utworzymy 5 kont użytkowników i poznamy różne opcję dostępne przy tworzeniu konta. W tym celu skorzystamy z polecenia "useradd" : 

Składnia polecenia useradd: # useradd [opcje] LOGIN

Opcje polecenia useradd: 
  • -b   - Ustawienie katalogu bazowego dla nowego konta ( katalog domowy) 
  • -c COMMENT  - Utworzenie opisu dla nowego konta 
  • -e EXPIRE_DATE  - Utworzenie daty wygaśnięcia konta
  • -m    - Utworzenie katalogu domowego użytkownika 
  • -r      - Utworzenie konta systemowego 
  • -s SHELL - Zdefiniowanie z jakiego wiersza poleceń będzie korzystał użytkownik 
  • -u UID   - Ustawienie UID dla użytkownika
Utwórzmy pierwsze konto : 

# useradd -c “Avg Joe” -m -s /bin/bash user02

Utworzone w ten sposób konto ma nazwę oraz katalog domowy - "user02", ustawiono wiersz poleceń jaki będzie dostępny po zalogowaniu na /bin/bash czyli BASH oraz dodano opis informujący iż konto należy do "Avg Joe". Reszta dzieje się w tle. 

Wszyscy użytkownicy posiadają unikalny numer ID czyli UID oraz ID grupy czyli GID. W RedHat numery UID rozpoczynają się od wartości 500 dla normalnych użytkowników których może być tysiące. Dla kont systemowych zarezerwowano wartości od 1 do 499

Zobaczmy utworzone katalogi użytkowników: 

# ls /home
user01 user02

Teraz dodajmy kolejnego użytkownika z jego katalogiem domowym :

# useradd -m user03

Dobrą praktyką jest dodawanie opisów dla każdego z kont by nie zapomnieć po co dane konto zostało stworzone. 

Teraz, gdy konto zostało utworzone, zobaczmy w jaki sposób możemy nim administrować i dokonywać na nim zmian. Dodajmy opis do konta. Modyfikacje wykonujemy poleceniem "usermod".

Składnia polecenia usermod: # usermod [opcje] LOGIN

Opcje polecenia usermod: 
  • -c COMMENT - Ustawienie nowej wartości opisu 
  • -d HOME-DIR - Ustawienie nowej lokalizacji katalogu domowego
  • -g GROUP - Ustawienie nowej grupy dla użytkownika 
  • -G GROUPS - Przypisanie użytkownika do wielu grup 
  • -l NEW_LOGIN - Zmiana loginu użytkownika 
  • -L - Zablokowanie konta użytkownika 
  • -s SHELL - Zmiana wiersza poleceń dla użytkownika
  • -u UID - Ustawienie nowej wartości UID dla użytkownika
  • -U - Odblokowanie konta użytkownika
Tak więc by dodać opis dla konta użytkownika : 

# usermod -c “Third User” user03

Ostatnim zadaniem dotyczącym kont użytkowników jest : usunięcie konta. To zagadnienie może być troszkę trudniejsze niż się wydaje ponieważ polecenie "userdel" nie działa tak jak można by się tego spodziewać. Utwórzmy użytkownika o nazwie "user05"  następnie usuńmy go : 

# useradd user05

By wykonać kasowanie konta skorzystamy z polecenia "userdel"

Składnia polecenia userdel : # userdel [opcje] LOGIN

Opcje polecenia userdel:
  • -f  - Usunięcie użytkownika nawet jeżeli jest zalogowany
  • -r - Usunięcie użytkownika wraz z katalogiem domowym i wiadomościami e-mail
Usuwamy użytkownika User05: 

# userdel user05

W takim wypadku jeżeli przejdziemy do katalogów domowych użytkowników katalog User05 nadal tam będzie : 

# ls /home
user01 user02 user05

Katalog nie został usunięty ponieważ nie zastosowano przełącznika "-r" który spowoduje usunięcie wszystkich plików danego użytkownika. 

Wiedza na temat usuwania kont użytkowników wraz z ich plikami może być przydatna na egzaminie jednak w rzeczywistym świecie istnieje wiele wewnętrznych zasad firmowych informujących co należy robić z plikami użytkowników i w jaki sposób je przechowywać w 99% nie zostają one usunięte. Dobrą praktyką jest przeniesienie plików do katalogu z uprawnieniami "root" i umożliwienie ich odczytu wybranym lub wszystkim użytkownikom. Dzięki czemu gdyby pliki były potrzebne ponownie np z powodu przywrócenia konta będzie można zrobić to w prosty sposób. 

Chociaż do przechowywania swoich plików każdy użytkownik ma swój katalog domowy często dzieje się tak , że użytkownicy zapisują swoje pliki w różnych miejscach i aby dokładnie posprzątać system po danym użytkowniku warto wyszukać wszystkie jego pliki : 

# find / -user user05

Teraz można przenieść je do jednej lokalizacji i zarchiwizować. 

Komentarze

Najczęściej czytane w tym miesiącu

50 popularnych pytań dotyczących systemu Linux zadawanych na rozmowach kwalifikacyjnych. (Pytania & Odpowiedzi)

Jak dodać użytkownika w systemie Windows z poziomu konsoli CMD? (net user, net localgroup)

Generowanie testowych plików o określonej wielkości