Zarządzanie kontami użytkowników obejmuje tworzenie, modyfikowanie, przypisywanie im haseł oraz kasowanie ich.
1 |
# useradd [opcje] nazwa_użytkownika |
Komenda dodaje wpisy do plików: passwd, group, shadow i gshadow dla każdego dodawanego użytkownika do systemu. Ponadto zakłada katalog domowy użytkownika i kopiuje pliki startowe z katalogu /etc/skel do katalogu domowego użytkownika. Najważniejsze opcje umieszczone zostały poniżej.
Opcja | Opis |
–b (–base-dir) | Absolutna ścieżka do katalogu bazowego, w którym założony zostanie katalog domowy użytkownika. |
–d (–home-dir) | Absolutna ścieżka do katalogu domowego użytkownika. |
–m (–create-home) | Tworzy katalog domowy użytkownika jeżeli jeszcze nie istnieje. |
–s (–shell) | Powłoka użytkownika. |
–G (–groups) | Grupa, której członkiem ma zostać użytkownik. |
–c (–comment) | Informacje o użytkowniku. |
–D (–defaults) | Wyświetla lub modyfikuje ustawienia domyślne. |
–r (–system) | Tworzy konto systemowe z UID mniejszym niż 1000 i nigdy niewygasającym hasłem. |
–e (–expiredate) | Data, po której konto użytkownika zostanie automatycznie wyłączone. Format daty RRRR-MM-DD. |
Opcje nie podane z linii komend useradd bierze z pliku /etc/default/useradd i /etc/login.def. Do pliku login.def odnoszą się w razie potrzeby także usermod, userdel, chage i passwd. Wyświetlanie ustawień domyślnych:
1 2 3 4 5 6 7 8 |
# useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes |
Wartości domyślne można modyfikować, np. zmieńmy położenie folderu dla katalogów domowych użytkowników:
1 |
# useradd –D –b /usr/home |
Z kolei plik /etc/login.defs
zawiera dodatkowe dyrektywy z ustawieniami domyślnymi:
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 201
SYS_UID_MAX 999
GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
1 |
# usermod [opcje] nazwa_użytkownika |
Modyfikuje atrybuty kont użytkowników. Składnia komendy jest bardzo podobna do składni useradd.
Opcje | Opis |
-a (–append) | Dodaje użytkownika do grupy |
–l (–login) | Nowy login dla użytkownika. |
–L (–lock) | Blokuje konto użytkownika wstawiając znak wykrzyknika na początku pola hasło w pliku shadow. |
–m (–move-home) | Tworzy nowy katalog domowy użytkownika i przenosi zawartość ze starego katalogu. |
–U (–unlock) | Odblokowuje konto użytkownika usuwając znak wykrzyknika z początku pola hasło w pliku shadow. |
1 |
# userdel [opcje] nazwa_użytkownika |
Usuwa wpisy związane z użytkownikiem ze wszystkich plików autentykacyjnych. Jeżeli użyta zostanie opcja -r to kasowany jest także katalog domowy użytkownika. Użycie opcji -f spowoduje wymuszenie usunięcia konta nawet jeżeli użytkownik jest zalogowany.
1 |
# chage [opcje] nazwa_użytkownika |
Komenda przeznaczona do ustawienia i zmiany czasu wygasania hasła użytkownika.
Opcje | Opis |
–d (–lastday) | Data w formacie RRRR-MM-DD lub numer dni od czasu kiedy plik był modyfikowany. Opcja -d 0 spowoduje, że klient będzie musiał zmienić hasło przy kolejnym logowaniu. Odnosi się do trzeciego pola w pliku shadow. |
–E (–expiredate) | Data w formacie RRRR-MM-DD lub ilość dni do czasu gdy konto zostanie wyłączone. Z parametrem -1 ta opcja zostaje wyłączona. Odnosi się do ósmego pola w pliku shadow. |
–I (–inactive) | Definiuje liczbę dni nieaktywności po której hasło wygasa a konto zostaje zablokowane. Z parametrem -1 ta opcja zostaje wyłączona. Odnosi się do siódmego pola w pliku shadow. |
–l | Wyświetla atrybuty wygasania hasła ustawione na koncie użytkownika. |
–m (–mindays) | Minimalna ilość dni jakie muszą minąć aby hasło mogło być zmienione. Wartość 0 tej opcji spowoduje, że hasło będzie mogło być wyłączone w dowolnym momencie. Odnosi się do czwartego pola w pliku shadow. |
–M (–maxdays) | Maksymalna ilość dni ważności hasła. Po tym okresie użytkownik otrzymuje ostrzeżenia o konieczności zmiany hasła. Z parametrem -1 ta opcja zostaje wyłączona. Odnosi się do piątego pola w pliku shadow. |
–W (–warndays) | Ilość dni po których użytkownik otrzymuje komunikaty o konieczności zmiany hasła z powodu jego wygaśnięcia. Odnosi się do szóstego pola w pliku shadow. |
1 |
# passwd [opcje] nazwa_użytkownika |
Polecenie używane do ustawiania i modyfikowania haseł użytkowników. Może być także używane do blokowania i odblokowania kont użytkowników oraz ustawienia atrybutów wygasania hasła.
Opcje | Opis |
–d (–delete) | Kasuje hasło bez wygaszenia konta użytkownika. |
–e (–expire) | Zmusza użytkownika do zmiany hasła przy następnym logowaniu. |
–i (–inactive) | Liczba dni nieaktywności, po których hasło wygasa a konto jest blokowane. Odnosi się do siódmego pola w pliku shadow. |
–k (–keep) | Reaktywuje wygaszone konto użytkownika bez zmiany hasła. |
–l (–lock) | Blokuje konto użytkownika. |
–n (–minimum) | Ilość dni jaka musi upłynąć aby hasło mogło być zmienione. Odnosi się do czwartego pola w pliku shadow. |
–u (–unlock) | Odblokowuje konto użytkownika. |
–w (–warning) | Ilość dni po który użytkownik otrzymuje komunikaty o konieczności zmiany hasła. Odnosi się do szóstego pola w pliku shadow. |
–x (maximum) | Maksymalna liczba dni ważności hasła, po których użytkownik otrzymuje komunikaty o konieczności zmiany hasła. Odnosi się do piątego pola w pliku shadow. |
Ćwiczenie 1. Utwórz konto użytkownika z domyślnymi ustawieniami.
Tworzenie konta z ustawieniami domyślnymi.
1 |
# useradd user2 |
Tworzenie hasła dla użytkownika.
1 2 3 4 |
# passwd user2 New password: Retype new password: passwd: all authentication tokens updated successfully. |
Grepowanie plików passwd, shadow, group i gshadow aby sprawdzić zmiany wniesione przez useradd.
1 2 3 4 5 6 |
# cd /etc # grep user2 passwd shadow group gshadow passwd:user2:x:1001:1001::/home/user2:/bin/bash shadow:user2:$6$GnGxfNMq$/WW79FsKs4dY2GuLPRfT31Q6/pBiavyjWiIDabw7fF6z3Ek6FainvuaZaGMc/Bk0EtWXuaUc1l3QQyyifFeSw0:16377:0:99999:7::: group:user2:x:1001: gshadow:user2:!:: |
Ćwiczenie 2. Tworzenie konta z wybranymi ustawieniami.
Tworzymy konto user3 z UID 1010 (-u), katalogiem domowym /home/user3, powłoką /bin/bash, grupą user3 z GID 1010 i domyślnymi plikami startowymi przekopiowanymi do katalogu domowego (-k):
1 |
# useradd -u 1010 -g 1001 -m -d /home/user3 -k /etc/skel -s /bin/bash user3 |
Ustawiamy hasło (sposób nie polecany bo widać hasło na konsoli):
1 |
# echo user123 | passwd --stdin user3 |
Grepowanie:
1 2 3 4 5 6 |
# cd /etc # grep user3 passwd shadow group gshadow passwd:user3:x:1010:1010::/home/user3:/bin/bash shadow:user3:$6$MA1lX3Qy$xhXx7oiEYDx1ELtGMxsovRnha7MHa5lRAhb8KUWJB2vh8zYFgDwR3TNExyluK0.Pz4rP2SzINXvMxr6P3yUky1:16377:0:99999:7::: group:user3:x:1010: gshadow:user3:!:: |
Testujemy konto logując się jako user3.
Ćwiczenie 3. Tworzenie konta użytkownika, który nie będzie miał możliwości zalogowania do systemu.
1 2 3 4 5 |
# useradd –s /sbin/nologin user4 # echo user123 | passwd --stdin user4 # cd /etc # grep user4 passwd passwd:user4:x:1011:1011::/home/user4:/sbin/nologin |
Próba przełączenia na konto user4 kończy się nie powodzeniem:
1 |
# su – user4 This account is currently not available |
Ćwiczenie 4. Ustawianie wygasania hasła.
Konfigurujemy wygasanie hasła dla użytkownika user2 na min. (-n) 7 dni i maks. (-x) 28 dni i czasem, po którym będą pojawiać się ostrzeżenia (-w) 5 dni:
1 2 |
# passwd –n 7 –x 28 –w 5 user2 Adjusting aging data for user user2. passwd: Success |
Potwierdzamy powyższe ustawienia komendą chage.
1 2 3 4 5 |
# chage –l user2 ... Minimum number of days between password change : 7 Maximum number of days between password change : 28 Number of days of warning before password expires : 5 |
Konfigurujemy wygasanie hasła dla użytkownika user3 na min. (-m) 10 dni i maks. (-M) 30 dni i czasem, po którym będą pojawiać się ostrzeżenia (-W) 7 dni. Wygaśnięcie konta ustawiamy na 2015-12-31.
1 |
# chage –m 10 –M 30 –W 7 –E 2015-12-31 user3 |
Sprawdzamy powyższe ustawienia.
1 2 3 4 5 6 |
# chage –l user3 ... Account expires : Dec 31, 2015 Minimum number of days between password change : 10 Maximum number of days between password change : 30 Number of days of warning before password expires : 7 |
Ćwiczenie 5. Modyfikowanie i kasowanie kont użytkowników.
Modyfikujemy login użytkownikowi user2 na user2new, UID na 2000 (-u), katalog domowy na /home/user2new (-m i -d) i powłokę na /sbin/nologin (-s):
1 |
# usermod –u 2000 –m –d /home/user2new –s /sbin/nologin –l user2new user2 |
Aby potwierdzić czy zmiany zostały dokonane informacje o koncie user2new uzyskujemy z pliku passwd:
1 2 |
# grep user2new /etc/passwd user2new:x:2000:1001::/home/user2new:/sbin/nologin |
Ustawiamy 29 luty 2016 jako nową datę wygaśnięcia konta user2new.
1 |
# usermod –e 2016-02-29 user2new |
Potwierdzamy:
1 2 3 |
# chage –l user2new ... Account expires : Feb 29, 2016 |
Modyfikujemy konto user3 tak aby hasło użytkownik musiał zmienić przy następnym logowaniu (-d) i żeby nie mógł zmienić hasła przez 5 dni od momentu ostatniej zmiany hasła (-m). Wyłączamy wygasanie konta (-E -1):
1 |
# chage –d 0 –m 5 –E -1 user3 |
Potwierdzamy zmiany:
1 2 3 4 5 6 7 8 |
# chage –l user3 Last password change : password must be changed Password expires : password must be changed Password inactive : password must be changed Account expires : never Minimum number of days between password change : 5 Maximum number of days between password change : 30 Number of days of warning before password expires : 7 |
Blokujemy konto user4:
1 2 |
# usermod –L user4 (or passwd –l user4) Locking password for user user4. passwd: Success |
Usuwamy konto user4 wraz z katalogiem domowym i spool (–r):
1 |
# userdel –r user4 |
Potwierdzamy usunięcie konta user4:
1 |
# grep user4 /etc/passwd |