Przejdź do głównej zawartości

Linux RHCSA cz.29 - Użytkownicy - Hasła

Z pewnością zauważyliście że poprzednim rozdziale podczas tworzenia użytkowników nie ustawiono im żadnego hasła. Czy to oznacza, że na utworzone konta może zalogować się każdy? Otóż zalogować się na te konta nie można do czasu ustawienia im haseł konta pozostają zablokowane. Do zarządzania hasłami wykorzystuje się następujące polecenia: 
  • passwd   - Ustawienie lub zmiana hasła dla użytkownika
  • chage      - Konfiguracja parametrów haseł ( złożoność , czas w jakim trzeba je zmienić) 
  • pwck      - Weryfikacja spójności wszystkich haseł
W momencie tworzenia użytkownika można użyć przełącznika "-p" by od razu przypisać mu hasło wymaga to jednak wpisania hasła otwartym tekstem na ekranie i ktoś przechodząc obok mógł by takie hasło zobaczyć. Lepszą metodą jest skorzystanie z polecenia "passwd": 

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

Opcje polecenie passwd: 
  • -l   - Zablokowanie konta użytkownika
  • -u  - Odblokowanie konta użytkownika
  • -s  - Ustawienie statusu hasła dla konta
Ustawmy nowe hasło : 

# passwd user02
Changing password for user user02.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

Teraz użytkownik User02 będzie proszony o podanie hasła w momencie logowania do systemu. Jest to indywidualne konto na danym systemie i tylko w nim lokalnie. Jeżeli użytkownik będzie potrzebował się logować na inny system tam również musi mieć założone konto i hasło. 

By umożliwić tworzenie kont użytkowników w jednej centralnej bazie dając tym samym możliwość logowania się we wszystkich systemach w danej sieci można skorzystać z dodatkowego oprogramowania takiego jak OpenLDAP oraz RedHat Directory Server. 

W tej chwili nie będziemy omawiać systemów logowania w domenie itp. Dobrą wiadomością jest fakt, iż utworzone konta użytkowników mogą zostać wykorzystane do pracy z usługami SSH i FTP jeżeli zostaną uruchomione w danym systemie. Teraz stało się jasne w jaki sposób uruchomić i zabezpieczyć konto użytkownika.

GDZIE SĄ HASŁA ? - PLIKI HASEŁ

Hasła w systemie RedHat i innych systemach Linux przechowywane są w plikach :
  • /etc/passwd
  • /etc/shadow
Struktura pliku /etc/passwd : 

<username>:<password placeholder>:<UID>:<GID>:<comments>:<home dir>:<shell>

Dla User02 wygląda następująco: 

# cat /etc/passwd | grep user02
user02:x:501:501:Avg Joe:/home/user02:/bin/bash

Tworząc nowego użytkownika systemu można zawsze sprawdzić zawartość tego pliku i sprawdzić czy został poprawnie utworzony. Widać tutaj wszystkie opcje ustawione w momencie utworzenia użytkownika. W miejscu hasła widać symbol ":x:" faktycznie znajduje się ono w innym miejscu w /etc/shadow.

Struktura pliku /etc/shadow :

<username>:<encrypted password>:<last passwd change>:<min>:<max>:<warn>:<inactive>:<expires>:<not used>

By zobaczyć informacje dotyczące konkretnego użytkownika : 

# cat /etc/shadow | grep user02
user02:$1$cMT6t6Ld$OXCCg5Pm2v2/YXxEjmz9O1:14767:0:99999:7:::

Widzimy nazwę użytkownika i zaszyfrowane hasło. Następna kolumna "14767" jest liczbą dni od kiedy hasło nie było zmieniane. Kolejne pola to liczba dni do zmiany hasła "0" i liczba dni ważności hasła "99999". Wartości te mogą być modyfikowane poleceniem chage

Składnia polecenia chage: # chage [opcje] Użytkownik

Opcje polecenia chage: 
  • -d LAST_DAY - Liczba dni do zmiany hasła
  • -E EXPIRE_DATE - Data wygaśnięcia konta
  • -I INACTIVE - Zmiana hasła zanim konto wygaśnie 
  • -l  - Informacje na temat starzenia się konta
  • -m MIN_DAYS - Minimalna liczba dni pomiędzy zmianami hasła
  • -M MAX_DAYS - Maksymalna ilość dni gdy hasło jest ważne
  • -W WARN_DAYS - Liczba dni przed którymi pojawiać się będzie ostrzeżenie o wygaśnięciu hasła
Krok 1 - Sprawdzenie informacji na temat hasła dla danego użytkownika : 

# chage -l user03
Last password change : Oct
26, 2010
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7

Krok 2 - Ustawienie wygaśnięcia konta na konkretną datę : 

# chage -E 2011-10-28 user03

Krok 3 - Sprawdzenie wprowadzonych zmian : 

# chage -l user03
Last password change : Oct
26, 2011
Password expires : never
Password inactive : never
Account expires : Oct 28, 2011
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7

W czwartej linii widać ustawioną datę wygaśnięcia konta. 

Podczas dodawania i usuwania użytkowników może się zdarzyć tak, że coś nie działa prawidłowo i powodem tego jest fakt iż hasła mogą nie być spójne. Aby zweryfikować spójność haseł zastosujmy polecenie "pwck". 

# pwck
user adm: directory /var/adm does not exist
user news: directory /etc/news does not exist
user uucp: directory /var/spool/uucp does not exist
pwck: no changes

Jeżeli w firmie mają pojawić się nowi pracownicy i szef zażąda by wcześniej przygotować im konta tak by nie musieli na nic czekać po przyjściu do pracy. Wiemy już że tworzenie kont użytkowników bez haseł nie jest najlepszym rozwiązaniem i dobrą praktyką jest utworzyć konta z umówionymi hasłami domyślnymi i je zablokować. 

Krok 1 - Tworzenie nowego konta 

# useradd -c “New User” user06

Krok 2 - Utworzenie domyślnego hasła 

# passwd user06
Changing password for user user06.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

Krok 3 - Zablokowanie konta 

# usermod -L user06 (dodanie "!" przed hasłem /etc/shadow)
lub 
# usermod -s /bin/nologin user06 (zmiana w /etc/passwd)

Krok 4 - Sprawdzenie czy konto zostało zablokowane 

# cat /etc/shadow | grep user06
user06:!$1$t9WeO2v2$MQb3YrqtNPp6n96ALudti0:14805:0:99999:7:::
lub 
# cat /etc/passwd | grep user06 ( /bin/nologin)

Krok 5 - Odblokowanie konta 

# usermod -U user06

Krok 6 - Sprawdzenie konta 

# cat /etc/shadow | grep user06
user06:$1$t9WeO2v2$MQb3YrqtNPp6n96ALudti0:14805:0:99999:7:::

Różnice widać w pojawiającym i znikającym znaku wykrzyknika "!". Jeżeli go nie ma użytkownik powinien zalogować się bez problemu. W dalszych częściach pokazane zostanie jak takie z automatyzować ten proces wykorzystując narzędzie cron

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