Linux | Terminal - zarządzanie użytkownikami · Technik informatyk egzamin zawodowy

Soisk / Linux

Linux | Terminal - zarządzanie użytkownikami

Zarządzanie użytkownikami oraz grupami użytkowników z poziomu wiersza poleceń / terminala systemu Linux.

Identyfikacja obecnie zalogowanych użytkowników

who – lista aktualnie zalogowanych użytkowników

whoami – nazwa użytkownika na którego konto aktualnie jesteśmy zalogowani

who -a – informacje szczegółowe

student@student:~$ who
student  tty7         2018-03-17 20:16 (:0)
student@student:~$ whoami
student
student@student:~$ who -a
           start systemu 2018-03-17 20:15
           run-level 5  2018-03-17 20:15
LOGIN      tty1         2018-03-17 20:15               947 id=tty1
student  + tty7         2018-03-17 20:16 13:42        1311 (:0)
student@student:~$ id
uid=1000(student) gid=1000(student) grupy=1000(student),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)

 

Lokalizacja plików grup i użytkowników

grupy użytkowników: /etc/group

użytkownicy: /etc/passwd

student@student:~$ tail -15 /etc/group
whoopsie:x:117:
mlocate:x:118:
avahi-autoipd:x:119:
avahi:x:120:
bluetooth:x:121:
scanner:x:122:saned
colord:x:123:
pulse:x:124:
pulse-access:x:125:
rtkit:x:126:
saned:x:127:
student:x:1000:
sambashare:x:128:student
vboxadd:x:1001:
vboxsf:x:999:
student@student:~$ tail -15 /etc/passwd
lightdm:x:108:114:Light Display Manager:/var/lib/lightdm:/bin/false
whoopsie:x:109:117::/nonexistent:/bin/false
avahi-autoipd:x:110:119:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false
avahi:x:111:120:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
dnsmasq:x:112:65534:dnsmasq,,,:/var/lib/misc:/bin/false
colord:x:113:123:colord colour management daemon,,,:/var/lib/colord:/bin/false
speech-dispatcher:x:114:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/false
hplip:x:115:7:HPLIP system user,,,:/var/run/hplip:/bin/false
kernoops:x:116:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false
pulse:x:117:124:PulseAudio daemon,,,:/var/run/pulse:/bin/false
rtkit:x:118:126:RealtimeKit,,,:/proc:/bin/false
saned:x:119:127::/var/lib/saned:/bin/false
usbmux:x:120:46:usbmux daemon,,,:/var/lib/usbmux:/bin/false
student:x:1000:1000:student,,,:/home/student:/bin/bash
vboxadd:x:999:1::/var/run/vboxadd:/bin/false

 

root x 0 0 root /root /etc/bash
login hasło* id użytkownika id grupy komentarz katalog domowy shell

* jeśli użyty jest x, znaczy że hasło jest zaszyfrowane i przechowywane w pliku /etc/shadow

 

Utworzenie konta nowego użytkownika

sudo useradd nauczyciel
student@student:~$ tail -15 /etc/passwd
(...)
nauczyciel:x:1001:1002::/home/nauczyciel:
student@student:~$ tail -15 /etc/group
(...)
nauczyciel:x:1002:

Podczas tworzenia konta użytkownika powstaje grupa o tej samej nazwie.

 

Aby utworzyć nowego użytkownika możemy również wykorzystać polecenie adduser. Jest to skrypt napisany w perlu, który krok po kroku przeprowadzi nas przez utworzenie nowego konta.

sudo adduser student2
Dodawanie użytkownika "student2"...
Dodawanie nowej grupy "student2" (1002)...
Dodawanie nowego użytkownika "student2" (1001) w grupie "student2"...
Tworzenie katalogu domowego "/home/student2"...
Kopiowanie plików z "/etc/skel" ...
Proszę podać nowe hasło UNIX: 
Proszę ponownie podać hasło UNIX: 
passwd: hasło zostało zmienione
Zmieniam informację o użytkowniku student2
Wpisz nową wartość lub wciśnij ENTER by przyjąć wartość domyślną
  Imię i nazwisko []: Jan Kowalski
  Numer pokoju []: 128
  Telefon do pracy []: 
  Telefon domowy []: 
  Inne []: 
Czy informacja jest poprawna? [T/n] T

 

Utworzenie nowej grupy

sudo groupadd szkola

W pliku /etc/group doszedł nam nowy wpis:

szkola:x:1003:

 

Przydzielenie użytkownika do grupy

student@student:~$ sudo usermod -a -G szkola nauczyciel
student@student:~$ sudo usermod -a -G szkola student
student@student:~$ groups student
student : student adm cdrom sudo dip plugdev lpadmin sambashare szkola
student@student:~$ groups nauczyciel
nauczyciel : nauczyciel szkola

 

usermod – modyfikacja konta użytkownika

usermod --help
Usage: usermod [options] LOGIN
Options:
  -c, --comment COMMENT         new value of the GECOS field
  -d, --home HOME_DIR           new home directory for the user account
  -e, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
  -f, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -g, --gid GROUP               force use GROUP as new primary group
  -G, --groups GROUPS           new list of supplementary GROUPS
  -a, --append                  append the user to the supplemental GROUPS
                                mentioned by the -G option without removing
                                him/her from other groups
  -h, --help                    wyświetla tę wiadomość pomocy
  -l, --login NEW_LOGIN         new value of the login name
  -L, --lock                    lock the user account
  -m, --move-home               move contents of the home directory to the
                                new location (use only with -d)
  -o, --non-unique              allow using duplicate (non-unique) UID
  -p, --password PASSWORD       use encrypted password for the new password
  -R, --root CHROOT_DIR         directory to chroot into
  -s, --shell SHELL             new login shell for the user account
  -u, --uid UID                 new UID for the user account
  -U, --unlock                  unlock the user account
  -v, --add-subuids FIRST-LAST  add range of subordinate uids
  -V, --del-subuids FIRST-LAST  remove range of subordinate uids
  -w, --add-subgids FIRST-LAST  add range of subordinate gids
  -W, --del-subgids FIRST-LAST  remove range of subordinate gids
  -Z, --selinux-user SEUSER     new SELinux user mapping for the user account

groups – wypisuje przynależność do grup UŻYTKOWNIKA

 

Wypisanie użytkownika z grupy

groups nauczyciel
nauczyciel : nauczyciel szkola
sudo usermod -G nauczyciel nauczyciel
groups nauczyciel
nauczyciel : nauczyciel

Użytkownik nauczyciel przypisany był do dwóch grup. Chcąc pozostawić go tylko w jednej, konkretnej grupie wykorzystaliśmy polecenie usermod z opcja -G przypisania grupy i podaliśmy nazwę grupy. Przypisania do wszystkich pozostałych grup, do których przynależał użytkownik zniknęły.

 

Ustawienie hasła użytkownika

sudo passwd nauczyciel
Proszę podać nowe hasło UNIX: 
Proszę ponownie podać hasło UNIX: 
passwd: hasło zostało zmienione
student@student:~$ su nauczyciel
Hasło: 
nauczyciel@student:/home/student$

passwd nazwa_konta – utworzenie nowego hasła użytkownika

su nazwa_konta – przelogowanie w terminalu na konto dowolnego użytkownika

 

Hasła użytkownika przechowywane są w pliku /etc/shadow

student:$6$EwunYILA$P1JqFuZlk/aEtUylGbGL.qkdZLSXJzJuCQRurWDUdn5Fgw2hnbGEEuziDSv4/xy6wkMAM.ighT7b22z/Mh4gf/:17602:0:99999:7:::

 

Wpis dotyczący danego użytkownika zawiera:
nazwa_użytkownika : zakodowane hasło : data ostatniej zmiany hasła (liczona w dniach od 1 stycznia 1970) : minimalny okres pomiędzy zmianami hasła : maksymalny okres pomiędzy zmianami hasła : ile dni przed konieczną zmianą hasła ma się wyświetlić przypomnienie : ile dni po przeterminowaniu hasło jest nadal aktywne : termin ważności konta : miejsce zarezerwowane na przyszłe zmienne.

Aby edytować politykę haseł, edytujemy zawartość pliku tekstowego /etc/login.defs

Fragment pliku:

#
# Password aging controls:
#
#    PASS_MAX_DAYS    Maximum number of days a password may be used.
#    PASS_MIN_DAYS    Minimum number of days allowed between password changes.
#    PASS_WARN_AGE    Number of days warning given before a password expires.
#
PASS_MAX_DAYS    99999
PASS_MIN_DAYS    0
PASS_WARN_AGE    7

 

Do modyfikacji polityki haseł możemy wykorzystać polecenie chage

chage -l student
Ostatnia zmiana hasła                    : mar 12, 2018
Hasło traci ważność                    : nigdy
Hasło nieaktywne                    : nigdy
Konto traci ważność                    : nigdy
Minimalna ilość dni pomiędzy zmianami hasła        : 0
Maksymalna ilość dni pomiędzy zmianami hasła        : 99999
Liczba dni ostrzeżenia, zanim ważność hasła upłynie    : 7

 

chage --help
Usage: chage [options] LOGIN
Options:
  -d, --lastday LAST_DAY        set date of last password change to LAST_DAY
  -E, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
  -h, --help                    wyświetla tę wiadomość pomocy
  -I, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -l, --list                    show account aging information
  -m, --mindays MIN_DAYS        set minimum number of days before password
                                change to MIN_DAYS
  -M, --maxdays MAX_DAYS        set maximim number of days before password
                                change to MAX_DAYS
  -R, --root CHROOT_DIR         directory to chroot into
  -W, --warndays WARN_DAYS      set expiration warning days to WARN_DAYS

 

Przykładowo:

student@student:sudo chage -W 10 student
student@student:~$ chage -l student
Ostatnia zmiana hasła                    : mar 12, 2018
Hasło traci ważność                    : nigdy
Hasło nieaktywne                    : nigdy
Konto traci ważność                    : nigdy
Minimalna ilość dni pomiędzy zmianami hasła        : 0
Maksymalna ilość dni pomiędzy zmianami hasła        : 99999
Liczba dni ostrzeżenia, zanim ważność hasła upłynie    : 10

 

Usunięcie konta użytkownika

sudo userdel nauczyciel

 

Usunie konto użytkownika

sudo userdel -r nauczyciel

 

Analogicznie do tworzenia nowego konta użytkownika, tutaj również możemy wykorzystać skrypt, który przeprowadzi nas przez usunięcie konta użytkownika: deluser

 

sudo deluser student2
Usuwanie użytkownika "student2" ...
Ostrzeżenie: grupa "student2" nie ma już żadnych członków.
Gotowe.

 

Blokowanie konta użytkownika

passwd -l student

Zablokowanie konta użytkownika

 

passwd -u student

Odblokowanie konta użytkownika

 

Zablokowania konta użytkownika możemy również dokonać ręcznie edytując plik /etc/passwd

student:x:1000:1000:student,,,:/home/student:/bin/bash

 

odając przed x znak !. Zablokujemy w ten sposób hasło.

student:!x:1000:1000:student,,,:/home/student:/bin/bash

 

Ćwiczenia

  1. Utwórz konto użytkownika Banan wraz z katalogiem domowym
  2. Utwórz konto użytkownika Kiwi za pomocą skryptu adduser. Ustaw użytkownikowi Kiwi katalog domowy na /Owoce/Kiwi
  3. Zmodyfikuj odpowiedni plik, aby maksymalny okres pomiędzy zmianami hasła użytkownika Banan wynosiła 365 dni.
  4. Wykonaj odpowiednie polecenie, aby ustawić minimalny okres pomiędzy zmianami hasła użytkownika Kiwi wynosił 1 dzień.
  5. Utwórz grupę Owoce.
  6. Dodaj do grupy Owoce użytkowników Banan oraz Kiwi.
  7. Przenieś odpowiednim poleceniem katalog domowy użytkownika Banan do /Owoce/Banan.
  8. Zablokuj hasło użytkownikowi Kiwi.
  9. Usuń konto użytkownika Banan.

 

Ćwiczenia: Linux | Terminal - zarządzanie użytkownikami

🗸 Wypisz listę aktualnie zalogowanych użytkowników
Zaloguj się, aby sprawdzić odpowiedź.
🗸 Wypisz na ekran nazwę aktualnie zalogowanego użytkownika
Zaloguj się, aby sprawdzić odpowiedź.
Zaloguj się, aby zobaczyć pozostałe 13 ćwiczeń i zapisywać wyniki.