Linux Ubuntu - zarządzanie użytkownikami
Zarządzanie użytkownikami GUI
Wchodzimy w ustawienia systemu => konta użytkowników
Musimy odblokować narzędzie
Uwierzytelniamy się
Dodajemy użytkownika
Konto zostało utworzone, ale jest wyłączone. Ustawimy hasło, odblokowując tym samym konto.
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
- Utwórz konto dla użytkownika Kermit wraz z katalogiem domowym.
- 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).
- Zmodyfikuj odpowiedni plik, aby maksymalny okres pomiędzy zmianami hasła dla użytkownika Piggy wynosił 365 dni.
- Zmodyfikuj odpowiedni plik, aby każde zakładane konto miało maksymalny okres pomiędzy zmianami hasła wynoszący 180 dni.
- Używająć odpowiedniej komendy (nie pliku) ustaw minimalny okres pomiędzy zmianami hasła dla użytkownika Piggy na 1 dzień.
- Skonfiguruj odpowiedni plik, aby używająć skryptu deluser, usuwany był katalog domowy użytkownika, ale po wcześniejszym backupie.
- Utwórz grupę muppety.
- Dodaj do grupy muppety użytkowników Kermit oraz Piggy.
- Przenieś odpowiednim poleceniem katalog domowy dla użytkownika Kermit na /muppety/Kermit.
- Zablokuj hasło użytkownikowi Piggy.