5.2 Lekcija 1
Sertifikat: |
Linux Essentials |
---|---|
Verzija: |
1.6 |
Tema: |
5 Sigurnost i dozvole nad datotekama |
Cilj: |
5.2 Kreiranje korisnika i grupa |
Lekcija: |
1 od 1 |
Uvod
Upravljanje korisnicima i grupama na Linux mašini, jedan je od ključnih aspekata sistemske administracije. U stvari, Linux je višekorisnički operativni sistem u kojem više korisnika može koristiti istu mašinu u isto vrijeme.
Informacije o korisnicima i grupama pohranjene su u četiri datoteke unutar stabla direktorija /etc/
:
/etc/passwd
-
datoteka od sedam polja razdvojenih dvotačkom koja sadrži osnovne informacije o korisnicima
/etc/group
-
datoteka sa četiri polja razdvojena dvotačkom koja sadrži osnovne informacije o grupama
/etc/shadow
-
datoteka od devet polja razdvojenih dvotačkom koja sadrži enkriptovane korisničke lozinke
/etc/gshadow
-
datoteka od četiri polja razdvojenih dvotačkom koja sadrži enkriptovane lozinke grupe
Svi ovi fajlovi su ažurirani paketom alata komandne linije za upravljanje korisnicima i grupama, o čemu ćemo raspravljati kasnije u ovoj lekciji. Njima se također može upravljati pomoću grafičkih aplikacija, specifičnih za svaku Linux distribuciju, koje pružaju jednostavnija i neposrednija upravljačka sučelja.
Warning
|
Iako su datoteke običan tekst, nemojte ih direktno uređivati. U tu svrhu uvijek koristite alate koje ste dobili uz vašu distribuciju. |
/etc/passwd
datoteka
/etc/passwd
je tekstualna datoteka koja sadrži listu korisnika, svaki na svojoj odvojenoj liniji:
frank:x:1001:1001::/home/frank:/bin/bash
Svaki red se sastoji od sedam polja razdvojenih dvotačkom:
- Username
-
Ime koje se koristi kada se korisnik prijavljuje na sistem.
- Password
-
Šifrovana lozinka (ili
x
ako se koriste lozinke u sjeni). - User ID (UID)
-
ID broj koji je dodijeljen korisniku u sistemu.
- Group ID (GID)
-
Broj primarne grupe korisnika u sistemu.
- GECOS
-
Opciono polje za komentar, koje se koristi za dodavanje dodatnih informacija o korisniku (kao što je puno ime). Polje može sadržavati više unosa razdvojenih zarezima.
- Home directory
-
Apsoultna putanja do korisničkog home direktorija.
- Shell
-
Apsolutna putanja programa koja se automatski pokreće kada se korisnik prijavi na sistem (obično interaktivni šel kao što je
/bin/bash
).
/etc/group
datoteka
/etc/group
je svjetski čitljiva datoteka koja sadrži listu grupa, svaka u zasebnom redu:
developer:x:1002:
Svaka se linija sastoji od četri kolone odvojene dvotačkom:
- Group Name
-
Naziv grupe.
- Group Password
-
Šifrovana lozinka grupe (ili
x
ako se koriste shadow lozinke). - Group ID (GID)
-
ID broj dodijeljen grupi u sistemu.
- Member list
-
Lista korisnika koji pripadaju grupi, razdvojena zarezima, osim onih kojima je ovo primarna grupa.
/etc/shadow
datoteka
`/etc/shadow`je datoteka koju mogu čitati samo root i korisnici s root privilegijama i sadrži šifrirane lozinke korisnika, svaki u zasebnom redu:
frank:$6$i9gjM4Md4MuelZCd$7jJa8Cd2bbADFH4dwtfvTvJLOYCCCBf/.jYbK1IMYx7Wh4fErXcc2xQVU2N1gb97yIYaiqH.jjJammzof2Jfr/:18029:0:99999:7:::
Svaka linija se sastoji od devet redova odvojenih dvotačkom:
- Username
-
Naziv korisnika koji se loguje na sistem.
- Encrypted password
-
Enkriptovana loznika korisnika (ako je vrijednost
!
, račun je zaključan). - Date of last password change
-
Datum posljednje promjene lozinke, kao broj dana od 01.01.1970. Vrijednost
0
znači da korisnik mora promijeniti lozinku pri sljedećem pristupu. - Minimum password age
-
Minimalni broj dana, nakon promjene lozinke, koji mora proći prije nego što će korisniku biti dozvoljeno da ponovo promijeni lozinku.
- Maximum password age
-
Maksimalan broj dana koji mora proći prije nego što je potrebna promjena lozinke.
- Password warning period
-
Broj dana prije isteka lozinke tokom kojih se korisnik upozorava da se lozinka mora promijeniti.
- Password inactivity period
-
Broj dana nakon isteka lozinke tokom kojih korisnik treba da ažurira lozinku. Nakon ovog perioda, ako korisnik ne promijeni lozinku, račun će biti onemogućen.
- Account expiration date
-
Datum, kao broj dana od 01.01.1970. godine, kada će korisnički račun biti onemogućen. Prazno polje znači da korisnički račun nikada neće isteći.
- A reserved field
-
Polje rezervisano za buduću upotrebu.
/etc/gshadow
datoteka
`/etc/gshadow`je datoteka koju može čitati samo root i korisnici s root privilegijama, a koja sadrži šifrirane lozinke za grupe, svaka u zasebnom redu:
developer:$6$7QUIhUX1WdO6$H7kOYgsboLkDseFHpk04lwAtweSUQHipoxIgo83QNDxYtYwgmZTCU0qSCuCkErmyR263rvHiLctZVDR7Ya9Ai1::
Svaka linija se sastoji od četri kolone razdvojene dvotačkom:
- Group name
-
Naziv grupe.
- Encrypted password
-
Šifrovana lozinka za grupu (koristi se kada korisnik, koji nije član grupe, želi da se pridruži grupi koristeći komandu
newgrp
— ako lozinka počinje sa!
, nikome nije dozvoljen pristup grupi pomoćunewgrp
). - Group administrators
-
Lista administratora grupe razdvojena zarezima (mogu promijeniti lozinku grupe i mogu dodavati ili uklanjati članove grupe pomoću komande
gpasswd
). - Group members
-
Lista članova grupe odvojenih zarezom.
Sada kada smo vidjeli gdje se pohranjuju podaci o korisnicima i grupi, hajde da pričamo o najvažnijim alatima komandne linije za ažuriranje ovih datoteka.
Dodavanje i uklanjanje korisničkih računa
U Linuxu, novi korisnički račun dodajete komandom useradd
, a brišete korisnički račun komandom userdel
.
Ako želite kreirati novi korisnički račun pod nazivom frank
sa zadanim postavkama, možete pokrenuti sljedeće:
# useradd frank
Nakon kreiranja novog korisnika, možete podesiti lozinku korištenjem passwd
:
# passwd frank Changing password for user frank. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
Obje ove komande zahtijevaju root ovlaštenje. Kada pokrenete komandu useradd
, informacije o korisniku i grupi pohranjene u bazama podataka lozinki i grupa ažuriraju se za novokreirani korisnički račun i, ako je navedeno, kreira se home direktorij novog korisnika kao i grupa s istim imenom kao korisnički nalog.
Tip
|
Zapamtite da uvijek možete koristiti uslužni program
li
da biste vidjeli osnovne informacije o novom računu |
Najvažnije opcije komande useradd
su sljedeće:
-c
-
Kreiraj novi korisnički račun sa prilagođenim komentarima (na primjer puno ime korisnika).
-d
-
Kreiraj novi korisnički račun sa prilagođenim home direktorijem.
-e
-
Kreiraj novi korisnički račun sa datumom nakon kojeg će isti biti onemogućen.
-f
-
Kreirajte novi korisnički račun tako što ćete postaviti broj dana nakon isteka lozinke tokom kojih korisnik treba da ažurira lozinku.
-g
-
Kreirajte novi korisnički račun sa željenim GID-om.
-G
-
Kreirajte novi korisnički račun dodavanjem u više sekundarnih grupa.
-m
-
Kreirajte novi korisnički račun sa njegovim home direktorijem.
-M
-
Kreirajte novi korisnički račun bez njegovog home direktorija.
-s
-
Kreirajte novi korisnički račun sa željenim login šelom.
-u
-
Kreirajte novi korisnički račun sa željenim UID-om.
Kada je novi korisnički račun kreiran, možete koristiti komande id
i groups
da saznate njegov UID, GID i grupe kojima pripada.
# id frank uid=1000(frank) gid=1000(frank) groups=1000(frank) # groups frank frank : frank
Tip
|
Ne zaboravite provjeriti i eventualno urediti datoteku |
Ako želite da izbrišete korisnički račun, možete koristiti komandu userdel
. Konkretno, ova komanda ažurira informacije pohranjene u bazama podataka računa, brišući sve unose koji se odnose na navedenog korisnika. Opcija -r
također uklanja korisnikov početni direktorij i sav njegov sadržaj, zajedno s korisnikovim spoolom pošte. Ostale datoteke, koje se nalaze na drugom mjestu, moraju se pretražiti i izbrisati ručno.
# userdel -r frank
Kao i prije, potrebne su vam root ovlasti za brisanje korisničkih naloga.
Skeleton direktorij
Kada dodate novi korisnički račun, čak i kreirajući njegov home direktorij, novokreirani home direktorij se popunjava datotekama i direktorijima koje se kopiraju iz skeletnog direktorija (podrazumjevano /etc/skel
). Ideja iza ovoga je jednostavna: administrator sistema želi da doda nove korisnike koji imaju iste datoteke i direktorije u svom domu. Stoga, ako želite prilagoditi datoteke i direktorije koji se automatski kreiraju u home direktoriju novih korisničkih računa, morate dodati te nove datoteke i direktorije u skelet direktorij.
Tip
|
Imajte na umu da su datoteke profila koje se obično nalaze u direktoriju skeleta skrivene datoteke. Stoga, ako želite da ispišete sve fajlove i fascikle u direktoriju skeleta, koji će biti kopirani u home dir novokreiranih korisnika, morate koristiti komandu |
Dodavanje i brisanje grupa
Što se tiče upravljanja grupama, možete dodavati ili brisati grupe koristeći komande groupadd
i groupdel
.
Ako želite kreirati novu grupu pod nazivom developer
, možete pokrenuti sljedeću komandu kao root:
# groupadd -g 1090 developer
Opcija -g
u ovoj komandi kreira željeni GID grupe.
Ako želite izbrisati grupu developer
, možete pokrenuti sljedeće:
# groupdel developer
Warning
|
Zapamtite da kada dodajete novi korisnički račun, primarna grupa i sekundarne grupe kojima pripada moraju postojati prije pokretanja komande |
passwd
komanda
Ova komanda se prvenstveno koristi za promjenu korisničke lozinke. Svaki korisnik može promijeniti svoju lozinku, ali samo root može promijeniti lozinku bilo kojeg korisnika.
Ovisno o korištenoj opciji passwd
, možete kontrolirati određene aspekte starenja lozinke:
-d
-
Izbrišite lozinku korisničkog računa (na taj način postavljajući praznu lozinku, čineći ga nalogom bez lozinke).
-e
-
Prisilite korisnički račun da promijeni lozinku.
-l
-
Zaključajte korisnički račun (šifrovana lozinka ima prefiks uzvika).
-u
-
Otključajte korisnički račun (uklanja uzvičnik).
-S
-
Izlaz informacija o statusu lozinke za određeni račun.
Ove opcije su dostupne samo za root. Da vidite potpunu listu opcija, pogledajte man stranice.
Vođene vježbe
-
Za svaki od sljedećih unosa navedite datoteku na koju se odnosi:
-
developer:x:1010:frank,grace,dave
-
root:x:0:0:root:/root:/bin/bash
-
henry:$1$.AbCdEfGh123456789A1b2C3d4.:18015:20:90:5:30::
-
henry:x:1000:1000:User Henry:/home/henry:/bin/bash
-
staff:!:dave:carol,emma
-
-
Obratite pažnju na sljedeće rezultate da odgovorite na sljedećih sedam pitanja:
# cat /etc/passwd | tail -3 dave:x:1050:1050:User Dave:/home/dave:/bin/bash carol:x:1051:1015:User Carol:/home/carol:/bin/sh henry:x:1052:1005:User Henry:/home/henry:/bin/tcsh # cat /etc/group | tail -3 web_admin:x:1005:frank,emma web_developer:x:1010:grace,kevin,christian dave:x:1050: # cat /etc/shadow | tail -3 dave:$6$AbCdEfGh123456789A1b2C3D4e5F6G7h8i9:0:20:90:7:30:: carol:$6$q1w2e3r4t5y6u7i8AbcDeFgHiLmNoPqRsTu:18015:0:60:7::: henry:!$6$123456789aBcDeFgHa1B2c3d4E5f6g7H8I9:18015:0:20:5::: # cat /etc/gshadow | tail -3 web_admin:!:frank:frank,emma web_developer:!:kevin:grace,kevin,christian dave:!::
-
Koji je ID korisnika (UID) i ID grupe (GID) za
carol
? -
Koji šel je postavljen za
dave
ihenry
? -
Koji je naziv primarne grupe za
henry
? -
Koji su članovi grupe
web_developer
? Ko su od ovih administratori grupe? -
Koji korisnik se ne može prijaviti na sistem?
-
Koji korisnik bi trebao promijeniti lozinku sljedeći put kada će se prijaviti na sistem?
-
Koliko dana mora proći prije nego što je potrebna promjena lozinke za
carol
?
-
Istraživačke vježbe
-
Radeći kao root, pokrenite komandu
useradd -m dave
da dodate novi korisnički račun. Koje operacije izvodi ova komanda? Pretpostavimo da suCREATE_HOME
iUSERGROUPS_ENAB
u/etc/login.defs
postavljeni na da. -
Sada kada ste kreirali
dave
račun, može li se ovaj korisnik prijaviti na sistem? -
Identifikujte korisnički ID (UID) i ID grupe (GID) za
dave
i sve članove grupedave
. -
Kreirajte grupe
sys_admin
,web_admin
idb_admin
i identificirajte njihove ID-ove grupa (GID-ove). -
Dodajte novi korisnički račun pod nazivom
carol
sa UID-om 1035 i postavitesys_admin
kao njegovu primarnu grupu iweb_admin
idb_admin
kao njegove sekundarne grupe. -
Izbrišite korisničke račune
dave
icarol
i grupesys_admin
,web_admin
idb_admin
koje ste prethodno kreirali. -
Pokrenite komandu
ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow
i opišite izlaz koji vam daje u smislu dozvola za fajl. Koji od ova četiri fajla su zasjenjeni iz sigurnosnih razloga? Pretpostavimo da vaš sistem koristi shadow lozinke. -
Pokrenite komandu
ls -l /usr/bin/passwd
. Koji je specijalni bit postavljen i koje je njegovo značenje?
Sažetak
U ovoj lekciji, ste naučili:
-
Osnove upravljanja korisnicima i grupama u Linuxu
-
Upravljanje korisničkim i grupnim informacijama pohranjenim u bazama podataka o lozinkama i grupama
-
Održavanje skeleton direktorij
-
Dodavanje i uklonjanje korisničkih računa
-
Dodavanje i uklonjanje grupnih računa
-
Promijena lozinke korisničkih računa
U ovoj lekciji raspravljane su sljedeće komande:
useradd
-
Kreiraj novi korisnički račun.
groupadd
-
Kreiraj novu korisničku grupu.
userdel
-
Obriši korisnički račun.
groupdel
-
Obriši grupni račun.
passwd
-
Promijenite lozinku korisničkih računa i kontrolirajte sve aspekte starenja lozinke.
Odgovori na vođene vježbe
-
Za svaki od sljedećih unosa navedite datoteku na koju se odnosi:
-
developer:x:1010:frank,grace,dave
/etc/group
-
root:x:0:0:root:/root:/bin/bash
/etc/passwd
-
henry:$1$.AbCdEfGh123456789A1b2C3d4.:18015:20:90:5:30::
/etc/shadow
-
henry:x:1000:1000:User Henry:/home/henry:/bin/bash
/etc/passwd
-
staff:!:dave:carol,emma
/etc/gshadow
-
-
Obratite pažnju na sljedeće rezultate da odgovorite na sljedećih sedam pitanja:
# cat /etc/passwd | tail -3 dave:x:1050:1050:User Dave:/home/dave:/bin/bash carol:x:1051:1015:User Carol:/home/carol:/bin/sh henry:x:1052:1005:User Henry:/home/henry:/bin/tcsh # cat /etc/group | tail -3 web_admin:x:1005:frank,emma web_developer:x:1010:grace,kevin,christian dave:x:1050: # cat /etc/shadow | tail -3 dave:$6$AbCdEfGh123456789A1b2C3D4e5F6G7h8i9:0:20:90:7:30:: carol:$6$q1w2e3r4t5y6u7i8AbcDeFgHiLmNoPqRsTu:18015:0:60:7::: henry:!$6$123456789aBcDeFgHa1B2c3d4E5f6g7H8I9:18015:0:20:5::: # cat /etc/gshadow | tail -3 web_admin:!:frank:frank,emma web_developer:!:kevin:grace,kevin,christian dave:!::
-
Koji je ID korisnika (UID) i ID grupe (GID) za
carol
?UID je 1051, a GID je 1015 (treće i četvrto polje u
/etc/passwd
). -
Koji je šel postavljen za
dave
ihenry
?dave
koristi /bin/bash ihenry
koristi /bin/tcsh (sedmo polje u/etc/passwd
). -
Koji je naziv primarne grupe za
henry
?Naziv grupe je
web_admin
(prvo polje u/etc/group
). -
Koji su članovi grupe
web_developer
? Ko su od ovih administratori grupe?Članovi su
grace
,kevin
ichristian
(četvrto polje u/etc/group
), ali samokevin
je administrator grupe (treće polje u/etc/gshadow
). -
Koji korisnik se ne može prijaviti na sistem?
Korisnički račun `henry`je zaključan (ima znak uzvika ispred heševa lozinke u `/etc/shadow`).
-
Koji korisnik bi trebao promijeniti lozinku sljedeći put kada će se prijaviti na sistem?
Ako je treće polje (datum posljednje promjene lozinke) u
/etc/shadow
0, korisnik bi trebao promijeniti svoju lozinku sljedeći put kada će se prijaviti na sistem. Stoga,dave
mora promijeniti svoju lozinku. -
Koliko dana mora proći prije nego što je potrebna promjena lozinke za
carol
?60 dana (peto polje u
/etc/shadow
).
-
Odgovori na istraživačke vježbe
-
Radeći kao root, pokrenite komandu
useradd -m dave
da dodate novi korisnički račun. Koje operacije izvodi ova komanda? Pretpostavimo da suCREATE_HOME
iUSERGROUPS_ENAB
u/etc/login.defs
postavljeni na da.Komanda dodaje novog korisnika, pod imenom
dave
, na listu korisnika u sistemu. Kreira se home direktorijdave
(podrazumjevano/home/dave
), a datoteke i direktoriji sadržani u skeleton direktoriju kopiraju se u home direktorij. Na kraju se kreira nova grupa sa istim imenom kao i korisnički račun. -
Sada kada ste kreirali
dave
račun, može li se ovaj korisnik prijaviti na sistem?Ne, jer je
dave
račun zaključan (vidi znak uzvičnika/etc/shadow
).# cat /etc/shadow | grep dave dave:!:18015:0:99999:7:::
Ako postavite lozinku za
dave
, račun će biti otključan. To možete učiniti pomoću komandepasswd
.# passwd dave Changing password for user dave. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
-
Identifikujte korisnički ID (UID) i ID grupe (GID) za
dave
i sve članove grupedave
.# cat /etc/passwd | grep dave dave:x:1015:1019::/home/dave:/bin/sh # cat /etc/group | grep 1019 dave:x:1019:
UID i GID
dave
su 1015 odnosno 1019 (treće i četvrto polje u/etc/passwd
), a grupadave
nema članova (četvrto polje u/etc/group
je prazno) . -
Kreirajte grupe
sys_admin
,web_admin
idb_admin
i identificirajte njihove ID-ove grupa (GID-ove).# groupadd sys_admin # groupadd web_admin # groupadd db_admin # cat /etc/group | grep admin sys_admin:x:1020: web_admin:x:1021: db_admin:x:1022:
GID-ovi za grupe
sys_admin
,web_admin
idb_admin
su 1020, 1021 i 1022 respektivno. -
Dodajte novi korisnički račun pod nazivom
carol
sa UID-om 1035 i postavitesys_admin
kao njegovu primarnu grupu iweb_admin
idb_admin
kao njegove sekundarne grupe.# useradd -u 1035 -g 1020 -G web_admin,db_admin carol # id carol uid=1035(carol) gid=1020(sys_admin) groups=1020(sys_admin),1021(web_admin),1022(db_admin)
-
Izbrišite korisničke račune
dave
icarol
i grupesys_admin
,web_admin
idb_admin
koje ste prethodno kreirali.# userdel -r dave # userdel -r carol # groupdel sys_admin # groupdel web_admin # groupdel db_admin
-
Pokrenite komandu
ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow
i opišite izlaz koji vam daje u smislu dozvola za fajl. Koji od ova četiri fajla su zasjenjeni iz sigurnosnih razloga? Pretpostavimo da vaš sistem koristi shadow lozinke.# ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow -rw-r--r-- 1 root root 853 mag 1 08:00 /etc/group -rw-r----- 1 root shadow 1203 mag 1 08:00 /etc/gshadow -rw-r--r-- 1 root root 1354 mag 1 08:00 /etc/passwd -rw-r----- 1 root shadow 1563 mag 1 08:00 /etc/shadow
Datoteke
/etc/passwd
i/etc/group
su čitljive širom svijeta i zasjenjene su iz sigurnosnih razloga. Kada se koriste shadow lozinke, možete vidjetix
u drugom polju ovih datoteka jer su šifrirane lozinke za korisnike i grupe pohranjene u/etc/shadow
i/etc/gshadow
, koje su čitljive samo od strane root i, u nekim sistemima, i od strane članova koji pripadaju grupishadow
. -
Pokrenite komandu
ls -l /usr/bin/passwd
. Koji je specijalni bit postavljen i koje je njegovo značenje?# ls -l /usr/bin/passwd -rwsr-xr-x 1 root root 42096 mag 17 2015 /usr/bin/passwd
Komanda
passwd
ima postavljen SUID bit (četvrti znak ovog reda), što znači da se komanda izvršava sa privilegijama vlasnika datoteke (dakle root). Ovako obični korisnici mogu promijeniti svoju lozinku.