Linux Ubuntu - zarządzanie użytkownikami

Z SOISK systemy operacyjne i sieci komputerowe
Skocz do: nawigacja, szukaj


Zarządzanie użytkownikami GUI

Wchodzimy w ustawienia systemu => konta użytkowników

Ubuntukonta1.png

Musimy odblokować narzędzie

Ubuntukonta2.png

Uwierzytelniamy się

Ubuntukonta3.png

Dodajemy użytkownika

Ubuntukonta4.png

Ubuntukonta5.png

Konto zostało utworzone, ale jest wyłączone. Ustawimy hasło, odblokowując tym samym konto.

Ubuntukonta6.png

Ubuntukonta7.png

Plik /etc/passwd

Plik passwd jest plikiem tekstowym ASCII, który zawiera listę użytkowników systemu wraz z istotnymi informacjami, jak na przykład nr użytkownika czy grupy.

Poniżej fragment pliku passwd.

uczen@linux:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
uczen:x:1000:1000:uczen,,,:/home/uczen:/bin/bash
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

Plik /etc/shadow

W pliku shadow przechowywane są hasze haseł (tych poniżej nie ukrywałem, gdyż są z maszyny wirtualnej) oraz ustawienia konta.

Jak widać plik jest na tyle ważny, ze musimy użyć sudo

uczen@linux:~$ cat /etc/shadow
cat: /etc/shadow: Brak dostępu
uczen@linux:~$ sudo cat /etc/shadow
[sudo] password for uczen: 
root:$6$4LzEEeAa$jBf6yGHmzNk3CD9EUneW1i39wcKjjVA240nek1zZ5xr3ltV1Ql9wiz20k3G/TUu/j8iyui62pV0cCo1f3Wlk20:16863:0:99999:7:::
daemon:*:16273:0:99999:7:::
bin:*:16273:0:99999:7:::
sys:*:16273:0:99999:7:::
sync:*:16273:0:99999:7:::
games:*:16273:0:99999:7:::
man:*:16273:0:99999:7:::
lp:*:16273:0:99999:7:::
uczen:$6$NCf1zH8A$KJleJ77z9F8I8WES.FOU280tPOtL0hQYEne..Ecea.jyQRgpeASd0dKzqLsqr2t07qq01bKFFymSq6eaYCSsi.:16822:0:99999:7:::
uczen login
$6$NCf1zH8A$KJleJ77z9F8I8WES itd. hasz hasła
16822 data ostatniej zmiany hasła, liczone w dniach od 1 stycznia 1970 roku
0 minimalny okres pomiędzy zmianami hasła
99999 maksymalny okres pomiędzy zmianami hasła
7 na ile dni przed upływem terminu przypominać o zmianie hasła
ile dni po przeterminowaniu hasła konto jest aktywne
termin ważności konta
miejsce zarezerwowane na przyszłe zmienne

/etc/login.defs

Plik /etc/login.defs definiuje konfigurację pakietu shadow login. Zmian dokonujemy edytując plik tekstowy. Pamiętajmy, że # oznacza komentarz i linia nie jest przetwarzana. Poniżej zaledwie 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

#
# Min/max values for automatic uid selection in useradd
#
UID_MIN			 1000
UID_MAX			60000

Widoczne w pliku PASS_MAX_DAYS, PASS_MIN_DAYS, PASS_WARN_AGE określają wartości widoczne później w /etc/shadow. A widoczne w dolnej części UID_MIN i UID_MAX określają identyfikatory użytkownika. Tutaj akurat przy tworzeniu użytkownika poprzez useradd użytkownicy będą mieli nadawane UID od 1000 do 60000.

chage

Polecenie chage zmienia liczbę dni pomiędzy zmianami hasła i datę ostatniej zmiany hasła. Zamiast edytować plik /etc/shadow można użyć tego polecenia.

Przykład chage -l uczen, czyli wyświetlenie informacji dotyczącej wieku hasła użytkownika uczen

uczen@linux:~$ chage -l uczen
Ostatnia zmiana hasła					: mar 14, 2016
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

Poniżej zmieniono maksymalną ilość dni pomiędzy zmianami hasła dla użytkownika uczen

uczen@linux:~$ sudo chage -M 1000 uczen
[sudo] password for uczen: 
uczen@linux:~$ chage -l uczen
Ostatnia zmiana hasła					: mar 14, 2016
Hasło traci ważność					: gru 09, 2018
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		: 1000
Liczba dni ostrzeżenia, zanim ważność hasła upłynie	: 7
uczen@linux:~$ 

Jeśli chcemy ustawić wszystkie opcje to wpisujemy sudo chage uczen

useradd

Polecenie useradd służy do dodawania użytkowników.

useradd janek tworzy konto dla użytkownika janek

useradd -m franek tworzy konto dla użytkownika franek wraz z katalogiem domowym /home/franek

adduser

Wygodniej od useradd jest użyć adduser, który nie jest nowym poleceniem, tylko skryptem napisanym w perlu, który automatyzuje użycie useradd. Poniżej dodano konto dla użytkownika student.

uczen@linux:~$ sudo adduser student
Dodawanie użytkownika "student"...
Dodawanie nowej grupy "student" (1002)...
Dodawanie nowego użytkownika "student" (1002) w grupie "student"...
Tworzenie katalogu domowego "/home/student"...
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 student
Wpisz nową wartość lub wciśnij ENTER by przyjąć wartość domyślną
	Imię i nazwisko []: student
	Numer pokoju []: 
	Telefon do pracy []: 
	Telefon domowy []: 
	Inne []: 
Czy informacja jest poprawna? [T/n] t
uczen@linux:~$ 

/etc/adduser.conf

Plikiem konfiguracyjnym skryptu adduser jest /etc/adduser.conf

passwd

Polecenie passwd służy do ustawiania haseł.

passwd zmnieni hasło zalogowanemu użytkownikowi

sudo passwd franek zmieni hasło użytkownikowi franek

sudo passwd -x 30 franek maksymalna ilość dni pomiędzy zmianami hasła dla użytkownika franek wynosi 30

sudo passwd -n 2 franek minimalna ilość dni pomiędzy zmianami hasła dla użytkownika franek wynosi 2

userdel

Polecenie userdel służy do usuwania kont użytkowników.

userdel janek usuwa konto użytkownika janek

userdel -r franek usuwa konto użytkownika franek wraz z katalogiem domowym

deluser

Deluser jest skryptem, który automatyzuje użycie userdel

uczen@linux:~$ sudo deluser student
Usuwanie użytkownika "student" ...
Ostrzeżenie: grupa "student" nie ma już żadnych członków.
Gotowe.

/etc/deluser.conf

Plikiem konfiguracyjnym skryptu deluser jest /etc/deluser.conf

Blokowanie konta

Kiedy zachodzi potrzeba uniemożliwienia logowania się użytkownikowi w systemie, możemy zablokować mu hasło

passwd -l student zablokowanie hasła użytkownikowi student

passwd -u student odblokowanie hasła użytkownikowi student

Możemy również wyedytować plik /etc/passwd, dodając przed znak ! przed x. W ten sposób zablokujemy hasło.

puchatek:!x:1001:1001:Kubuś Puchatek,,,:/home/puchatek:/bin/bash

groups

Polecenie groups służy do sprawdzenia do jakich grup należy użytkownik.

Poniżej sprawdzenie do jakich grup należy zalogowany użytkownik

uczen@linux:~$ groups
uczen adm cdrom sudo dip plugdev lpadmin sambashare

Poniżej sprawdzenie do jakich grup należy inny użytkownik

uczen@linux:~$ groups puchatek
puchatek : puchatek

Plik /etc/group

Plik /etc/group zawiera informację o istniejących grupach. Wyświetla nazwę grupy, hasło (jeśli x to jest przechowywane w /etc/gshadow), identyfikator grupy, członków grupy

uczen@linux:~$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,uczen
uczen:x:1000
sambashare:x:124:uczen
vboxsf:x:999:
puchatek:x:1001

groupadd

Polecenie groupadd dodaje grupę

sudo groupadd studenci dodanie grupy studenci

addgroup

Zamiast groupadd można użyć skryptu addgroup

uczen@linux:~$ sudo addgroup pracownicy
Dodawanie grupy "pracownicy" (GID 1003)...
Gotowe.

groupdel

Polecenie groupdel służy do usuwania grupy

sudo groupdel studenci usunięcie grupy studenci

delgroup

Zamiast groupdel można użyć skryptu delgroup

uczen@linux:~$ sudo delgroup pracownicy
Usuwanie grupy "pracownicy" ...
Gotowe.

usermod

Polecenie usermod służy do modyfikowania kont użytkowników.

sudo usermod -l misiek puchatek zmiana nazwy użytkownika z puchatek na misiek

Dodanie użytkownika misiek do grupy uczen

uczen@linux:~$ sudo usermod -G uczen misiek
uczen@linux:~$ groups misiek
misiek : puchatek uczen

groupmod

Polecenie groupmod służy do modyfikowania grup.

sudo groupmod -n misiek puchatek zmiana nazwy grupy z puchatek na misiek

uczen@linux:~$ groups misiek
misiek : puchatek uczen
uczen@linux:~$ sudo groupmod -n misiek puchatek
uczen@linux:~$ groups misiek
misiek : misiek uczen

Ćwiczenia

  1. Utwórz konto dla użytkownika Kermit wraz z katalogiem domowym.
  2. Utwórz konto dla użytkownika Piggy wykorzystując skrypt adduser, ale katalog domowy ma być ustawiony na /muppety/Piggy (skonfiguruj wcześniej odpowiedni plik).
  3. Zmodyfikuj odpowiedni plik, aby maksymalny okres pomiędzy zmianami hasła dla użytkownika Piggy wynosił 365 dni.
  4. Zmodyfikuj odpowiedni plik, aby każde zakładane konto miało maksymalny okres pomiędzy zmianami hasła wynoszący 180 dni.
  5. Używająć odpowiedniej komendy (nie pliku) ustaw minimalny okres pomiędzy zmianami hasła dla użytkownika Piggy na 1 dzień.
  6. Skonfiguruj odpowiedni plik, aby używająć skryptu deluser, usuwany był katalog domowy użytkownika, ale po wcześniejszym backupie.
  7. Utwórz grupę muppety.
  8. Dodaj do grupy muppety użytkowników Kermit oraz Piggy.
  9. Przenieś odpowiednim poleceniem katalog domowy dla użytkownika Kermit na /muppety/Kermit.
  10. Zablokuj hasło użytkownikowi Piggy.