Linux Professional Institute Learning Logo.
Preskoči na glavni sadržaj
  • Home
    • Svi resursi
    • LPI materijali za učenje
    • Postanite saradnik
    • Izdavači partneri
    • Postanite izdavački partner
    • O nama
    • FAQ
    • Saradnici
    • Roadmap
    • Kontaktiraj nas
  • LPI.org
5.1 Lekcija 1
Tema 1: Linux zajednica i open sors karijera
1.1 Evolucija Linux-a i popularni operativni sistemi
  • 1.1 Lekcija 1
1.2 Glavne open sors aplikacije
  • 1.2 Lekcija 1
1.3 Softver otvorenog koda i licenciranje
  • 1.3 Lekcija 1
1.4 ICT vještine i rad sa Linux-om
  • 1.4 Lekcija 1
Tema 2: Kretanje kroz Linux sistem
2.1 Osnove komande linije
  • 2.1 Lekcija 1
  • 2.1 Lekcija 2
2.2 Upotreba komande linije u traženju pomoći
  • 2.2 Lekcija 1
2.3 Korištenje direktorija i izlistavanje podataka
  • 2.3 Lekcija 1
  • 2.3 Lekcija 2
2.4 Kreiranje, premještanje i brisanje podataka
  • 2.4 Lekcija 1
Tema 3: Moć komandne linije
3.1 Arhiviranje podataka uz pomoć komande linije
  • 3.1 Lekcija 1
3.2 Pretraživanje i ekstrakcija informacija iz podataka
  • 3.2 Lekcija 1
  • 3.2 Lekcija 2
3.3 Pretvaranje komandi u skriptu
  • 3.3 Lekcija 1
  • 3.3 Lekcija 2
Tema 4: Linux operativni sistem
4.1 Odabir operativnog sistema
  • 4.1 Lekcija 1
4.2 Razumijevanje računalnog hardvera
  • 4.2 Lekcija 1
4.3 Gdje se smještaju podaci
  • 4.3 Lekcija 1
  • 4.3 Lekcija 2
4.4 Računalo na mreži
  • 4.4 Lekcija 1
Tema 5: Sigurnost i prava nad podacima
5.1 Osnovna sigurnost i identifikacija vrste korisnika
  • 5.1 Lekcija 1
5.2 Kreiranje korisnika i grupa
  • 5.2 Lekcija 1
5.3 Upravljanje pravima i ovlastima nad podacima
  • 5.3 Lekcija 1
5.4 Specijalni direktoriji i podaci
  • 5.4 Lekcija 1
How to get certified
  1. Tema 5: Sigurnost i prava nad podacima
  2. 5.1 Osnovna sigurnost i identifikacija vrste korisnika
  3. 5.1 Lekcija 1

5.1 Lekcija 1

Sertifikat:

Linux Essentials

Verzija:

1.6

Tema:

5 Sigurnost i dozvole nad podacima

Cilj:

5.1 Osnovna sigurnost i identifikacija tipova korisnika

Lekcija:

1 od 1

Uvod

Ova lekcija će se fokusirati na osnovnu terminologiju računa, kontrolu pristupa i sigurnost lokalnih Linux sistema, alate interfejsa komandne linije (CLI) u Linux sistemu za osnovne sigurnosne kontrole pristupa i osnovne datoteke za podršku korisničkih i grupnih računa, uključujući one koji se koriste za eskalaciju elementarnih privilegija.

Osnovna sigurnost u Linux sistemima je modelirana prema Unix kontrolama pristupa koje su, uprkos tome što su stare skoro pedeset godina, prilično efikasne u poređenju sa nekim popularnim operativnim sistemima za potrošače mnogo novijeg porijekla. Čak i neki drugi, popularni operativni sistemi, bazirani na Unixu, imaju tendenciju da "uzimaju slobode" koje su fokusirane na “lakoću pristupa”, dok Linux to ne čini.

Moderna Linux desktop okruženja i interfejsi pojednostavljuju kreiranje i upravljanje korisnicima i često automatizuju dodjelu kontrola pristupa kada se korisnik prijavi — na primjer, na ekran, audio i druge usluge — ne zahtjevajući praktično nikakvu ručnu intervenciju administratora sistema. Međutim, važno je razumjeti osnovne koncepte Linux operativnog sistema.

Računi

Sigurnost uključuje mnoge koncepte, a jedan od najčešćih je opći koncept kontrole pristupa. Prije nego što se može pozabaviti kontrolama pristupa datotekama kao što su vlasništvo i dozvole, mora se razumjeti osnovni koncept Linux korisničkih računa (eng. accounts), koji su podijeljeni u nekoliko tipova.

Svaki korisnik na Linux sistemu ima pridruženi račun koji osim podataka za prijavu (kao što su korisničko ime i lozinka) također definira kako i gdje korisnik može komunicirati sa sistemom. Privilegije i kontrole pristupa definisane su onim što nazivamo “boundaries” ili granice unutar kojih svaki korisnik može djelovati.

Identifkatori (UIDs/GIDs)

Korisnički i Grupni identifikatori (UIDs/GIDs) su osnovne, nabrojane reference za račune. Rane implementacije su bile ograničene 16-bitne (vrijednosti od 0 do 65535) cijelih brojeva, ali sistemi 21. stoljeća podržavaju 64-bitne UID-ove i GID-ove. Korisnici i grupe se nabrajaju nezavisno, tako da isti ID može predstavljati i korisnika i grupu.

Svaki korisnik ima ne samo UID, već i primarni GID. Primarni GID za korisnika može biti jedinstven samo za tog korisnika i može završiti tako da ga drugi korisnici ne koriste. Međutim, ova grupa može biti i grupa koju dijele brojni korisnici. Pored ovih primarnih grupa, svaki korisnik može biti i član drugih grupa.

Podrazumjevano, na Linux sistemima, svaki korisnik je dodijeljen grupi s istim imenom kao i njegovo korisničko ime i istim GID-om kao njegov UID. Na primjer, kreirajte novog korisnika pod imenom newuser i, podrazumjevano, njegova zadana grupa je također newuser.

Račun superkorisnika

Na Linuxu je račun superkorisnika root, koji uvijek ima UID 0. Superkorisnik se ponekad naziva sistemski administrator, i ima neograničen pristup i kontrolu nad sistemom, uključujući kontrolu drugih korisnika.

Zadana grupa za superkorisnika ima GID 0 i također se zove root. Početni direktorij za superkorisnika je namjenski direktorij najvišeg nivoa, /root, kojem pristupa samo root korisnik.

Standardni korisnički računi

Svi računi osim root su tehnički regularni ili obični korisnički računi, ali na Linux sistemu kolokvijalni izraz korisnički račun često znači “običan” (neprivilegovani) korisnički račun. Obično imaju sljedeća svojstva, uz odabrane izuzetke:

  • UID-ovi počinju od 1000 (4 cifre), iako neki stari sistemi mogu početi od 500.

  • Definirani home direktorij, obično poddirektorij /home, ovisno o lokalnoj konfiguraciji web-mjesta.

  • Definisani šel za prijavu. U Linuxu je zadani šel obično Bourne Again Shell (/bin/bash), iako mogu biti dostupni i drugi.

Ako korisnički račun nema valjan šel u svojim atributima, korisnik neće moći otvoriti interaktivni šel. Obično se /sbin/nologin koristi kao nevažeći šel. Ovo može biti svrsishodno, ako će korisnik biti autentificiran samo za usluge koje nisu konzole ili SSH pristup, na primjer, samo siguran FTP (sftp) pristup.

Note

Da bi se izbjegla zabuna, termin korisnički račun će se ubuduće primjenjivati ​​samo na standardne ili obične korisničke račune. Npr., sistemski račun će se koristiti za objašnjenje Linux korisničkog računa koji je tipa sistemskog korisničkog računa.

Sistemski računi

Sistemski računi se obično unaprijed kreiraju u vrijeme instalacije sistema. Namjenjeni su za objekte, programe i servise koji neće raditi kao superkorisnik. U idealnom svijetu, sve bi to bili objekti operativnog sistema.

Sistemski računi se razlikuju, ali njihovi atributi uključuju
  • UID-ovi su obično ispod 100 (2-cifrene) ili 500-1000 (3-cifrene).

  • Ili ne namjenski home direktorij ili direktorij koji se obično ne nalazi pod /home.

  • Nema važećeg šela za prijavu (obično /sbin/nologin), uz rijetke izuzetke.

Većina sistemskih računa na Linuxu se nikada neće prijaviti i ne treba im definisan šel u svojim atributima. Mnogi procesi koje posjeduju i izvode sistemski računi se račvaju u sopstveno okruženje od strane menadžmenta sistema, koji rade sa navedenim, sistemskim računom. Ovi računi obično imaju ograničene ili, češće nego, ne privilegije.

Note

Sa stanovišta LPI Linux Essentials, sistemski računi su UID-ovi <1000, sa 2 ili 3-cifrenim UID-ovima (i GID-ovima).

Općenito, sistemski računi ne bi trebali ne imati ispravan šel za prijavu. Suprotno bi bilo sigurnosno pitanje u većini slučajeva.

Servisni računi

Servisni računi se obično kreiraju kada se servisi instaliraju i konfigurišu. Slično sistemskim računima, oni su namjenjeni za objekte, programe i servise koji neće raditi kao superkorisnik.

U velikom broju dokumentacije, sistemski i servisni računi su slični i često se mijenjaju. Ovo uključuje lokaciju home direktorija koji se obično nalazi izvan /home, ako je uopće definiran (servisni računi često imaju veću vjerovatnoću da imaju home direktorij, u poređenju sa sistemskim računima), i bez ispravnog šela za prijavu. Iako ne postoji stroga definicija, primarna razlika između sistemskih i servisnih računa se svodi na UID/GID.

Sistemski računi

UID/GID <100 (2-cifre) ili <500-1000 (3-cifre)

Servisni računi

UID/GID >1000 (4+ cifre), ali ne “standardan” ili “običan” korisnički račun, nego račun za servise, sa UID/GID >1000 (4+ cifre)

Neke Linux distribucije još uvijek imaju unaprijed rezervirane servisne račune pod UID-om <100, a oni se također mogu smatrati sistemskim računom, iako nisu kreirani prilikom instalacije sistema. Npr., na Fedora baziranim (uključujući Red Hat) Linux distribucijama, korisnik za Apache web server ima UID (i GID) 48, što je jasno sistemski račun, uprkos tome što ima home direktorij (obično na /usr/share/httpd ili /var/www/html/).

Note

Sa stanovišta LPI Linux Essentials, sistemski računi su računi sa UID <1000, a obični korisnički računi su računi sa UID >1000. Pošto je uobičajeni korisnički račun >1000, ovi UID-ovi mogu uključivati ​​i servisne račune.

Login šelovi i home direktoriji

Neki računi imaju šel za prijavu, dok drugi nemaju iz sigurnosnih razloga jer im nije potreban interaktivni pristup. Zadani šel za prijavu u većini Linux distribucija je Bourne Again Shell ili bash, ali mogu biti dostupni i drugi šelovi, poput C šel (csh), Korn šel (ksh) ili Z šel (zsh ), da spomenemo samo neke.

Korisnik može promijeniti svoj šel za prijavu koristeći komandu chsh. Podrazumjevano, komanda se izvodi u interaktivnom načinu i prikazuje prompt koji pita koji šel treba da se koristi. Odgovor bi trebao biti potpuna putanja do binarnog šela, kao dole:

$ chsh

Changing the login shell for emma
Enter the new value, or press ENTER for the default
	Login Shell [/bin/bash]: /usr/bin/zsh

Također možete pokrenuti komandu u neinteraktivnom načinu rada, s parametrom -s nakon kojeg slijedi putanja do binarnog direktorija, na sljedeći način:

$ chsh -s /usr/bin/zsh

Većina računa ima definiran home direktorij. Na Linuxu, ovo je obično jedina lokacija na kojoj taj korisnički račun ima zagarantovan pristup pisanju, uz neke izuzetke (npr. prostor privremenih sistemskih datoteka). Međutim, neki računi su namjerno podešeni da nemaju pristup pisanju čak ni svom vlastitom home direktoriju, iz sigurnosnih razloga.

Prikaz informaciju o vašim korisnicima

Prikaz osnovnih korisničkih informacija je uobičajena, svakodnevna praksa na Linux sistemu. U nekim slučajevima, korisnici će morati promijeniti korisnike i povećati privilegije da bi izvršili privilegovane zadatke.

Čak i korisnici imaju mogućnost prikaza atributa i pristupa iz komandne linije, koristeći komande ispod. Osnovne informacije u ograničenom kontekstu nisu privilegovane operacija.

Prikaz trenutnih informacija o korisniku u komandnoj liniji je jednostavno kao dvoslovna komanda, id. Izlaz će se razlikovati ovisno o vašem ID-u za prijavu:

$ id
uid=1024(emma) gid=1024(emma) 1024(emma),20(games),groups=10240(netusers),20480(netadmin) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

U prethodnom prikazu, korisnik (emma) ima identifikatore koji su raščlanjeni na sljedeći način:

  • 1024 = ID korisnika (UID), nakon čega slijedi korisničko ime (uobičajeno ime ili ime za prijavu) u zagradi.

  • 1024 = primarni ID grupe (GID), praćen imenom grupe (uobičajeno ime) u zagradi.

  • Spisak dodatnih GID-ova (imena grupa) kojima korisnik takođe pripada.

Prikaz kada su se korisnici zadnji put prijavili na sistem se vrši pomoću komande last:

$ last
emma     pts/3        ::1              Fri Jun 14 04:28   still logged in
reboot   system boot  5.0.17-300.fc30. Fri Jun 14 04:03   still running
reboot   system boot  5.0.17-300.fc30. Wed Jun  5 14:32 - 15:19  (00:46)
reboot   system boot  5.0.17-300.fc30. Sat May 25 18:27 - 19:11  (00:43)
reboot   system boot  5.0.16-100.fc28. Sat May 25 16:44 - 17:06  (00:21)
reboot   system boot  5.0.9-100.fc28.x Sun May 12 14:32 - 14:46  (00:14)
root     tty2                          Fri May 10 21:55 - 21:55  (00:00)
	...

Informacije navedene u kolonama mogu se razlikovati, ali neki značajni unosi u prethodnom prikazu su:

  • Korisnik (emma) se prijavio preko mreže (pseudo TTY pts/3) i još uvijek je prijavljen.

  • Navedeno je vrijeme trenutnog pokretanja, zajedno sa kernelom. U gornjem primjeru, oko 25 minuta prije nego što se korisnik prijavio.

  • Superkorisnik (root) se prijavio preko virtuelne konzole (TTY tty2), nakratko, sredinom maja.

Varijanta komande last je komanda lastb, koja prikazuje sve posljednje loše (neuspjele) pokušaje prijave.

Komande who i w će prikazati jedino aktivne prijave na sistem:

$ who
emma  pts/3        2019-06-14 04:28 (::1)

$ w
 05:43:41 up  1:40,  1 user,  load average: 0.25, 0.53, 0.51
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
emma  pts/3     04:28    1:14m  0.04s  0.04s -bash

Obje komande navode neke od istih informacija. Na primjer, jedan korisnik (emma) je prijavljen sa pseudo TTY uređajem (pts/3) i vrijeme prijave je 04:28.

Komanda w prikazuje više informacija, uključujući sljedeće:

  • Trenutno vrijeme i koliko dugo sistem radi

  • Koliko je korisnika povezano

  • Prosjek opterećenja za posljednjih 1, 5 i 15 minuta

I dodatne informacije za svaku aktivnu korisničku sesiju.

  • Odaberite, ukupno vrijeme korištenja CPU-a (IDLE, JCPU i PCPU)

  • Trenutni proces (-bash). Ukupno vrijeme korištenja CPU-a tog procesa je posljednja stavka (PCPU).

Obje komande imaju sljedeće opcije za prikaz različitih, dodatnih informacija.

Promjena korisnika i eskalacija privilegija

U idealnom svijetu, korisnici nikada ne bi morali eskalirati privilegije da bi izvršili svoje zadatke. Sistem bi uvijek “samo radio” i sve bi bilo konfigurirano za različite pristupe.

Srećom po nas, Linux –- iz kutije -– radi ovako za većinu korisnika koji nisu sistemski administratori, uprkos tome što uvijek slijede sigurnosni model najmanje privilegije.

Međutim, postoje komande koje omogućavaju eskalaciju privilegija kada je to potrebno. Dvije najvažnije su su i sudo.

Na većini Linux sistema danas, komanda su se koristi samo za eskalaciju privilegija za root, koji je zadani korisnik ako korisničko ime nije navedeno iza imena komande. Iako se može koristiti za prebacivanje na drugog korisnika, to nije dobra praksa: korisnici bi se trebali prijaviti s drugog sistema, preko mreže ili fizičke konzole ili terminala na sistemu.

emma ~$ su -
Password:
root ~#

Nakon unošenja lozinke superkorisnika (root), korisnik ima šel superkorisnika (obratite pažnju na # na kraju komandne linije) i on je, za sve namjere i svrhe, superkorisnik (root).

Dijeljenje lozinki je vrlo loša sigurnosna praksa, tako da bi trebalo biti vrlo malo, ako uopće ima, potrebe za komandom su u modernom Linux sistemu.

Simbol dolara ($) bi trebao prekinuti prompt komandne linije za šel neprivilegovanog korisnika, dok bi simbol funte (#) trebao prekinuti prompt komandne linije za prompt šela superkorisnika (root). Toplo je preporučljivo da se završni karakter bilo kojeg prompta nikada ne mijenja iz ovog "univerzalno razumljivog" standarda, budući da se ova nomenklatura koristi u materijalima za učenje, uključujući i ove.

Warning

Nikada se nemojte prebacivati ​​na superkorisnika (root) bez prolaska šel parametra za prijavu (-). Osim ako izričito nije drugačije naloženo od strane OS-a ili dobavljača softvera kada je potrebno su, uvijek izvršite su - sa izuzetno ograničenim izuzecima. Korisnička okruženja mogu uzrokovati neželjene promjene konfiguracije i probleme kada se koriste u načinu pune privilegije kao superkorisnik.

Koji je najveći problem s korištenjem su za prebacivanje na superkorisnika (root)? Ako je obična korisnička sesija kompromitovana, lozinka superkorisnika (root) može biti uhvaćena. Tu dolazi “Switch User Do” (ili “Superuser Do”):

$ cat /sys/devices/virtual/dmi/id/board_serial
cat: /sys/devices/virtual/dmi/id/board_serial: Permission denied

$ sudo cat /sys/devices/virtual/dmi/id/board_serial
[sudo] password for emma:
/6789ABC/

U prethodnom prikazu, korisnik pokušava pronaći serijski broj svoje matične ploče. Međutim, dozvola je odbijena, jer je ta informacija označena kao privilegovana.

Međutim, koristeći sudo, korisnik unosi vlastitu lozinku kako bi potvrdio autentičnost. Ako je bio ovlašten u konfiguraciji sudoers da pokrene tu komandu s privilegijom, sa dozvoljenim opcijama, to će raditi.

Tip

Podrazumjevano, prva ovlaštena komanda sudo će autentifikovati sljedeće komande sudo za (vrlo kratak) vremenski period. Ovo može da konfiguriše administrator sistema.

Datoteke kontrole pristupa

Gotovo svi operativni sistemi imaju skup mjesta koja se koriste za pohranjivanje kontrola pristupa. U Linuxu su to obično tekstualne datoteke koje se nalaze u direktoriju /etc, gdje se trebaju pohranjivati ​​datoteke za konfiguraciju sistema. Prema zadanim postavkama, ovaj direktorij je čitljiv za svakog korisnika na sistemu, ali u njega može pisati samo root.

Glavne datoteke koje se odnose na korisničke računa, atribute i kontrolu pristupa su:

/etc/passwd

Ova datoteka pohranjuje osnovne informacije o korisnicima na sistemu, uključujući UID i GID, home direktorij, šel, itd. Uprkos nazivu, ovdje se ne pohranjuju lozinke.

/etc/group

Ova datoteka pohranjuje osnovne informacije o svim korisničkim grupama na sistemu, kao što su naziv grupe, GID i članovi.

/etc/shadow

Ova datoteka pohranjuje korisničke lozinke. One su heširane zbog sigurnosti.

/etc/gshadow

Ova datoteka pohranjuje detaljnije informacije o grupama, uključujući heširanu lozinku koja omogućava korisnicima da privremeno postanu članovi grupe, listu korisnika koji mogu postati članovi grupe u određeno vrijeme i listu administratora grupe.

Warning

Ove datoteke nisu dizajnirane i nikada se ne smiju direktno uređivati. Ova lekcija pokriva samo informacije pohranjene u ovim datotekama, ali ne i uređivanje ovih datoteka.

Podrazumjevano, svaki korisnik može pristupiti u /etc i pročitati datoteke /etc/passwd i /etc/group. Isto tako, podrazumjevano, nijedan korisnik, osim root, ne smije čitati datoteke /etc/shadow ili /etc/gshadow.

Postoje i datoteke uključene u eskalaciju osnovnih privilegija na Linux sistemima, kao što su komande su i sudo. Prema zadanim postavkama, njima može pristupiti samo root korisnik.

/etc/sudoers

Ova datoteka kontrolira ko može koristiti komandu sudo i kako.

/etc/sudoers.d

Ovaj direktorij može sadržavati datoteke koje dopunjuju postavke u datoteci sudoers.

Sa stanovišta LPI Linux Essentials ispita, samo znajte putanju i ime konfiguracijske sudo datoteke, /etc/sudoers. Njena konfiguracija je izvan okvira ovih materijala.

Warning

Iako je /etc/sudoers tekstualna datoteka, nikada ju ne bi trebalo direktno uređivati. Ako su potrebne bilo kakve promjene u njegovom sadržaju, treba ih izvršiti pomoću uslužnog programa visudo.

/etc/passwd

Datoteka /etc/passwd`se obično naziva “datoteka lozinke”. Svaki red sadrži više polja koja su uvijek razgraničena dvotačkom (:`). Uprkos nazivu, stvarna jednosmjerna hash lozinka danas nije pohranjena u ovoj datoteci.

Tipična sintaksa redova ove datoteke je:

USERNAME:PASSWORD:UID:GID:GECOS:HOMEDIR:SHELL

Gdje je:

USERNAME

Korisničko ime aka (ime) prijave, kao root, nobody, emma.

PASSWORD

Naslijeđena lokacija hash lozinke. Gotovo uvijek x, što ukazuje da je lozinka pohranjena u datoteci /etc/shadow.

UID

Korisnički ID (UID), kao 0, 99, 1024.

GID

Podrazumjevani ID grupe (GID), kao 0, 99, 1024.

GECOS

CSV lista korisničkih informacija uključujući ime, lokaciju, broj telefona. Na primjer: Emma Smith,42 Douglas St,555.555.5555

HOMEDIR

Putanja korisničkog home direktorija, kao /root, /home/emma, etc.

SHELL

Podrazumjevani šel korisnika, kao /bin/bash, /sbin/nologin, /bin/ksh, itd.

Naprimjer, sljedeći red opisuje korisnika emma:

emma:x:1000:1000:Emma Smith,42 Douglas St,555.555.5555:/home/emma:/bin/bash
Razumijevanje GECOS polja

GECOS polje sadrži tri (3) ili više polja, razdvojenih zarezom (,), odnosno listu Comma Separated Values (CSV) ili vrijednosti odvojene zarezom. Iako ne postoji nametnuti standard, polja su obično u sljedećem redoslijedu:

NAME,LOCATION,CONTACT

Gdje je:

NAME

je korisnikovo “puno ime”, ili “softversko ime” u slučaju servisnog računa.

LOCATION

obično je fizička lokacija korisnika unutar zgrade, broj sobe ili kontakt odjela ili osobe u slučaju servisnog računa.

CONTACT

navodi kontakt informacije kao što su kućni ili poslovni broj telefona.

Dodatna polja mogu uključivati ​​dodatne kontakt informacije, kao što su kućni broj ili adresa e-pošte. Za promjenu informacija u polju GECOS, koristite komandu chfn i odgovorite na pitanja, kao u nastavku. Ako nema korisničkog imena iza imena komande, promijenit ćete informacije za trenutnog korisnika:

$ chfn

Changing the user information for emma
Enter the new value, or press ENTER for the default
	Full Name: Emma Smith
	Room Number []: 42
	Work Phone []: 555.555.5555
	Home Phone []: 555.555.6666

/etc/group

Datoteka /etc/group sadrži polja koja su uvijek razgraničena dvotačkom (:), pohranjujući osnovne informacije o grupama u sistemu. Ponekad se naziva i “group file”. Sintaksa za svaki red je:

NAME:PASSWORD:GID:MEMBERS

Gdje je:

NAME

naziv grupe, kao root, users, emma, etc.

PASSWORD

naslijeđena lokacija opcionalne grupne hash lozinke. Gotovo uvijek x, što ukazuje da je lozinka (ako je definirana) pohranjena u datoteci /etc/gshadow.

GID

ID grupe (GID), kao 0, 99, 1024.

MEMBERS

popis korisničkih imena odvojenih zarezima koji su članovi grupe, kao jsmith,emma.

Primjer ispod prikazuje red koji sadrži informacije o students groupi:

students:x:1023:jsmith,emma

Korisnik ne mora biti naveden u polju za članove kada je grupa primarna grupa za korisnika. Ako je korisnik naveden, onda je on suvišan - tj. nema promjene u funkcionalnosti, bio naveden ili ne.

Note

Upotreba lozinki za grupe je izvan opsega ovog odjeljka, međutim, ako je definirana, hash lozinka se pohranjuje u datoteci /etc/gshadow. Ovo je također izvan okvira ovog odjeljka.

/etc/shadow

Sljedeća tabela navodi atribute pohranjene u datoteci /etc/shadow, koja se obično naziva “shadow file”. Datoteka sadrži polja koja su uvijek razgraničena dvotačkom (:). Iako datoteka ima mnogo polja, većina je izvan opsega ove lekcije, osim prva dva.

Osnovna sintaksa redova datoteke je:

USERNAME:PASSWORD:LASTCHANGE:MINAGE:MAXAGE:WARN:INACTIVE:EXPDATE

Gdje je:

USERNAME

Korisničko ime (isto kao /etc/passwd), kao root, nobody, emma.

PASSWORD

Jednosmjerna hash lozinka. Na primjer: !!, !$1$01234567$ABC…​, $6$012345789ABCDEF$012…​.

LASTCHANGE

Datum zadnje promjene lozinke u danima nakon “epohe”, kao što je 17909.

MINAGE

Minimalna starost lozinke u danima.

MAXAGE

Maximalna starost lozinke u danima.

WARN

Period upozorenja prije isteka loznike, u danima.

INACTIVE

Maximalna starost lozinke nakon isteka, u danima.

EXPDATE

Datum isteka lozinke, u danima nakon “epohe”.

U primjeru ispod, možete vidjeti uzorak unosa iz datoteke /etc/shadow. Imajte na umu da su neke vrijednosti, poput INACTIVE i EXPDATE nedefinirane.

emma:$6$nP532JDDogQYZF8I$bjFNh9eT1xpb9/n6pmjlIwgu7hGjH/eytSdttbmVv0MlyTMFgBIXESFNUmTo9EGxxH1OT1HGQzR0so4n1npbE0:18064:0:99999:7:::

“epoha” POSIX sistema je ponoć (0000), univerzalno koordinatno vrijeme (UTC), četvrtak, 1. januara 1970. Većina POSIX datuma i vremena je u sekundama od “epohe”, ili u slučaj datoteke /etc/shadow, dana od “epohe”.

Note

Shadow datoteka je dizajnirana tako da ju može čitati samo superkorisnik i odabrani, osnovni sistemski servisi za autentifikaciju koji provjeravaju jednosmjernu heš lozinku prilikom prijave ili drugog vremena provjere autentičnosti.

Iako postoje različita rješenja za autentifikaciju, osnovna metoda pohrane lozinke je jednosmjerna hash funkcija. Ovo je učinjeno tako da se lozinka nikada ne pohranjuje u čistom tekstu na sistemu, jer funkcija heširanja nije reverzibilna. Možete pretvoriti lozinku u hash, ali (idealno) nije moguće pretvoriti hash natrag u lozinku.

Najviše, potrebna je metoda grube sile za heširanje svih kombinacija lozinke, sve dok se jedna podudari. Da bi ublažili problem hakovanja lozinke na jednom sistemu, Linux sistemi koriste nasumični “sol” (eng.salt) na svakom hešu lozinke za korisnika. Dakle, heš za korisničku lozinku na jednom Linux sistemu obično neće biti isti kao na drugom Linux sistemu, čak i ako je lozinka ista.

Unutar datoteke /etc/shadow, lozinka može imati nekoliko formi. Te forme tipično uključuju sljedeće:

!!

Ovo predstavlja “onemogućen” (eng.disabled) račun (bez moguće autentifikacije), bez pohranjene hash lozinke.

!$1$01234567$ABC…​

Ovo predstavlja “onemogućen” račun (zbog početnog znaka uzvika), s prethodnom hash funkcijom, pohranjenim hash sol i hash stringom.

$1$0123456789ABC$012…​

Ovo predstavlja “omogućen” račun, s hash funkcijom, pohranjenim hash sol-om i hash stringom.

Hash funkciji, hash sol i hash niz su prethođeni i razgraničeni simbolom dolara ($). Dužina heš sol-a mora biti između osam i šesnaest (8-16) znakova. Primjeri tri najčešća su sljedeći:

$1$01234567$ABC…​

Heš funkcija MD5 (1), s primjerom dužine heša od osam.

$5$01234567ABCD$012…​

Heš funkcija SHA256 (5), s primjerom dužine heša od dvanaest.

$6$01234567ABCD$012…​

Heš funkcija SHA512 (6), sa primjerom dužine heša od dvanaest.

Note

MD5 heš funkcija se smatra kriptografski nesigurnom s današnjim (2010-te i kasnije) nivoom ASIC-a, pa čak i općim računarskim SIMD performansama. Na primjer, američki federalni standardi za obradu informacija (FIPS) ne dozvoljavaju korištenje MD5 za bilo kakve kriptografske funkcije, samo za vrlo ograničene aspekte validacije, ali ne i za integritet digitalnih potpisa ili slične svrhe.

Sa stajališta LPI Linux Essentials ciljeva i ispita, samo shvatite da je heš lozinke za lokalnog korisnika pohranjen samo u datoteci /etc/shadow koja samo odabire, da servisi provjere autentičnosti mogu čitati ili superkorisnik može modificirati putem drugih komandi.

Vođene vježbe

  1. Razmotrite sljedeći izlaz id komande:

    $ id emma
    uid=1000(emma) gid=1000(emma) groups=1000(emma),4(adm),5(tty),10(uucp),20(dialout),27(sudo),46(plugdev)

    U kojim datotekama su pohranjeni sljedeći atributi?

    UID and GID

    Groups

    • Dodatno, u kojoj datoteci je pohranjena korisnička lozinka?

  2. Koja od sljedećih vrsta kriptografije se po defaultu koristi za lokalno pohranjivanje lozinki na Linux sistemu?

    • Asymmetric

    • One-way Hash

    • Symmetric

    • ROT13

  3. Ako račun ima korisnički ID (UID) naveden ispod 1000, koji je to tip računa?

  4. Kako možete prikazati listu aktivnih prijava u vašem sistemu, kao i njihov broj?

Koristeći komandu grep, dobili smo rezultat ispod sa informacijama o korisniku emma.

+

$ grep emma /etc/passwd
emma:x:1000:1000:Emma Smith,42 Douglas St,555.555.5555,:/home/emma:/bin/ksh

+ Popunite prazna polja na grafikonu odgovarajućim informacijama koristeći izlaz prethodne komande.

+

Username

Password

UID

Primary GID

GECOS

Home Directory

Shell

Istraživačke vježbe

  1. Uporedite rezultate last sa w i who. Koji detalji nedostaju u svakoj od komandi u odnosu jedne na drugu

  2. Probajte izvršiti komande who i w -his.

    • Koje informacije su uklonjene iz izlaza komande w s opcijama “no header” (-h) i “short” (-s)?

*Koje informacije su dodane u izlaz komande w s opcijom “ip address” (-i)?

+

  1. Koja je datoteka je datoteka koja pohranjuje jednosmjernu heš lozinku korisničkog računa?

  2. Koja datoteka sadrži listu grupa kojoj korisnički nalog pripada? Koja logika bi se mogla koristiti za sastavljanje liste grupa kojoj korisnički nalog pripada?

  3. Jednu ili više (1+) sljedećih datoteka prema zadanim postavkama ne mogu čitati redovni, neprivilegirani korisnici. Koje od njih?

    • /etc/group

    • /etc/passwd

    • /etc/shadow

    • /etc/sudoers

  4. Kako biste promijenili trenutni korisnički šel za prijavu u Korn Shell (/usr/bin/ksh) u neinteraktivnom načinu?

  5. Zašto home direktorij root korisnika nije smješten u /home direktorij?

Sažetak

U ovoj lekciji smo otkrili korisničke i grupne baze podataka Linuxa. Naučili smo najvažnija svojstva korisnika i grupa, uključujući njihova imena i njihove numeričke ID-ove. Također smo istražili kako heširanje lozinki funkcionira na Linuxu i kako su korisnici dodijeljeni grupama.

Sve ove informacije pohranjene su u sljedeće četiri datoteke, koje pružaju najosnovnije, lokalne sigurnosne kontrole pristupa na Linux sistemu:

/etc/passwd

Svi POSIX atributi lokalnog korisničkog računa, osim hash lozinke, koji su čitljivi za sve.

/etc/group

Svi POSIX atributi računa sistemske lokalne grupe, koji su čitljivi za sve.

/etc/shadow

Svi hešovi lozinki lokalnog korisnika (i informacije o isteku), nečitljivi za bilo koji (samo odabrani procesi).

/etc/sudoers

Sve informacije o eskalaciji/dozvolama lokalnih privilegija na sistemu komandom sudo.

Sljedeće komande su raspravljanje u ovoj lekciji:

id

Navedite stvarne (ili efektivne) ID-ove korisnika i grupa.

last

Prikaži korisnike koji su se posljednji prijavili.

who

Prikaži korisnike koji su trenutno prijavljeni.

w

Slično who ali sa dodatnim kontekstom.

su

Prebacite se na drugog korisnika sa šelom za prijavu ili pokrenite komande kao taj korisnik, prosljeđivanjem lozinke tog korisnika.

sudo

Promjeni korisnika (ili superkorisnika) Uradite, ako ima pravo, trenutni korisnik unese sopstvenu lozinku (ako je potrebno) da podigne privilegiju.

chsh

Promijeniti šel korisnika.

chfn

Promijenite korisničke informacije GECOS polja.

Odgovori na vođene vježbe

  1. Razmotrite sljedeći izlaz id komande:

    $ id emma
    uid=1000(emma) gid=1000(emma) groups=1000(emma),4(adm),5(tty),10(uucp),20(dialout),27(sudo),46(plugdev)

    U kojim datotekama su pohranjeni sljedeći atributi?

    UID and GID

    /etc/passwd

    Groups

    /etc/group

    • Dodatno, u kojoj datoteci je pohranjena korisnička lozinka?

      Heširana korisnička lozinka je pohranjena u datoteci /etc/shadow.

  2. Koja od sljedećih vrsta kriptografije se po defaultu koristi za lokalno pohranjivanje lozinki na Linux sistemu?

    Podrazumjevano, jednosmjerni heš se koristi za pohranjivanje lozinki.

  3. Ako račun ima korisnički ID (UID) naveden ispod 1000, koji je to tip računa?

    Računi sa UID manjom od 1000 su generalno sistemski računi.

  4. Kako možete prikazati listu aktivnih prijava u vašem sistemu, kao i njihov broj?

    Koristite komandu w. Osim liste svih aktivnih prijava, također će prikazati informacije o tome koliko je korisnika prijavljeno, uz opterećenje sistema i vrijeme rada.

Koristeći komandu grep, dobili smo rezultat ispod sa informacijama o korisniku emma.

+

$ grep emma /etc/passwd
emma:x:1000:1000:Emma Smith,42 Douglas St,555.555.5555,:/home/emma:/bin/ksh

+ Popunite prazna polja na grafikonu odgovarajućim informacijama koristeći izlaz prethodne komande.

+

Username

emma

Password

x - should always be x for a valid, active user login

UID

1000

Primary GID

1000

GECOS

Emma Smith,42 Douglas St,555.555.5555

Home Directory

/home/emma

Shell

/bin/ksh

Odgovori na istraživačke vježbe

  1. Uporedite rezultate last sa w i who. Koji detalji nedostaju u svakoj od komandi u odnosu jedne na drugu?

    Alati w i who navode samo trenutne korisnike koji su prijavljeni na sistem, dok last također navodi korisnike koji su prekinuli vezu. Komanda w navodi korištenje sistema, dok who ne navodi.

  2. Probajte izvršiti komande who i w -his.

    • Koje informacije su uklonjene iz izlaza komande w s opcijama “no header” (-h) i “short” (-s)?

      Zaglavlje nije ispisano, što je korisno za raščlanjivanje, a vrijeme prijave i informacije o odabiru CPU-a nisu navedene, respektivno.

    • *Koje informacije su dodane u izlaz komande w s opcijom “ip address” (-i)?

      Ovo štampa IP adresu, umjesto pokušaja DNS rezolucije, štampa ime hosta. Ova opcija za w bolje odgovara zadanom izlazu komande last.

Koja je datoteka je datoteka koja pohranjuje jednosmjernu heš lozinku korisničkog računa?

+ Datoteka /etc/shadow pohranjuje jednosmjernu heš lozinku korisničkog računa, budući da je ne može čitati običan, neprivilegirani korisnički račun, za razliku od datoteke /etc/passwd.

  1. Koja datoteka sadrži listu grupa kojoj korisnički nalog pripada? Koja logika bi se mogla koristiti za sastavljanje liste grupa kojoj korisnički nalog pripada?

    Datoteka /etc/group ima CSV listu korisničkih imena u posljednjem polju, “members” ili članovi, bilo kojeg reda za grupu.

    Bilo koji red u datoteci /etc/group gdje je korisnik naveden u završnom polju, “members”, značio bi da je korisnik član te grupe - pod pretpostavkom da je ispravno formatirana (CSV razgraničeno). Dodatno, članstvo u primarnoj grupi korisnika u datoteci /etc/passwd također će imati odgovarajući unos u datoteci /etc/group i za ime grupe i za GID.

  2. Jednu ili više (1+) sljedećih datoteka prema zadanim postavkama ne mogu čitati redovni, neprivilegirani korisnici. Koje od njih?

    • /etc/group

    • /etc/passwd

    • /etc/shadow

    • /etc/sudoers

      Datoteke /etc/shadow i /etc/sudoers nisu čitljivi prema zadanim postavkama, osim odabranim servisima ili superkorisnikom. Ovi odgovori će biti prilagođeni na osnovu sistema i korisničkih imena koja se koriste u laboratoriji.

  3. Kako biste promijenili trenutni korisnički šel za prijavu u Korn Shell (/usr/bin/ksh) u neinteraktivnom načinu?

    $ chsh -s /usr/bin/ksh
  4. Zašto home direktorij root korisnika nije smješten u /home direktorij?

    Zato što je root račun potreban za otklanjanje problema i ispravljanje grešaka, što može uključivati ​​probleme sa sistemom datoteka u vezi sa direktorijem /home. U takvim slučajevima, root bi trebao biti potpuno funkcionalan čak i kada /home sistem datoteka još nije dostupan.

Linux Professional Insitute Inc. Sva prava zadržana. Posjeti web stranicu materijala za učenje: https://learning.lpi.org
Ovaj rad je licenciran pod Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License

Sljedeća lekcija

5.2 Kreiranje korisnika i grupa (5.2 Lekcija 1)

Pročitaj narednu lekciju

Linux Professional Insitute Inc. Sva prava zadržana. Posjeti web stranicu materijala za učenje: https://learning.lpi.org
Ovaj rad je licenciran pod Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License

LPI je neprofitna organizacija.

© 2023 Linux Profesional Institut (LPI) je globalni certifikacijski standard, podrške za karijeru, te vodeća organizacija za open sors profesionalce. Sa više od 200.000 certificiranih ljudi, prvi je najveći, svjetski vendor za Linux i open sors certifikaciju. LPI trenutno ima certificirane profesionalce u 180 zemalja širom svijeta, dostavlja testove na više jezika, te ima oko stotine trening partnera.

Naša svrha je omogućiti ekonomske i kreativne prilike za svakog, čineći dostupnim certifikaciju u open sors znanju i vještinama svima.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Kontaktirajte nas
  • Privatnost i politika kolačića

Primijetili ste grešku ili želite pomoći poboljšati ovu stranicu? Molimo prijavite nam!.

© 1999–2023 The Linux Professional Institute Inc. Sva prava zadržana.