Prijeđite na sadržaj

Postavke kolačića

Za svaku vrstu odaberite koje kolačiće dopuštate. Svoj odabir uvijek možete promijeniti putem poveznice Postavke kolačića na dnu svake stranice. Izjava o privatnosti

Nužni

Uvijek uključeni

Potrebni za prijavu, čuvanje košarice i pamćenje Vaših odabira. Uvijek su uključeni.

Koji kolačići?
  • weboke_sessie, weboke_klant, weboke_remember: Vaša sesija i to da ostanete prijavljeni
  • weboke_basket: Vaša košarica
  • wkBtwIncl: prikaz cijena s PDV-om ili bez njega
  • wok_cookies: Vaš odabir kolačića, 12 mjeseci

Mjeri koji oglas dovodi do posjeta ili narudžbe, kako ne bismo plaćali oglase koji ništa ne donose.

Koji kolačići?
  • Google Ads putem Google Tag Managera (_gcl_au, _gcl_aw), do 90 dana
  • OpenAI Ads, oglasi u ChatGPT-u
  • wok_aff: preko kojeg ste partnera došli k nama (partnerski program), 60 dana

4,6

Država i jezik

Svaka država ima vlastitu stranicu, s cijenama i PDV-om te države.

Pogledajte

sudo i minimalna prava

Modul 3: Korisnici, prava i sudo · Vrijeme čitanja: 11 minuta

Cilj učenja: Nakon ove lekcije moći ćete raditi kao običan korisnik sa sudo, sigurno dodati administratora, mijenjati postavke sudo tako da sami sebi ne zaključate pristup te objasniti zašto minimalna prava štite Vaš poslužitelj.

Ključni pojmovi: sudo, grupa sudo, grupa wheel, /etc/sudoers, /etc/sudoers.d, visudo, NOPASSWD, sudo -l, zaključavanje roota, zapisnik sudo, minimalna prava (least privilege), servisni korisnik

Zašto ne raditi jednostavno kao root?

Nakon instalacije često se prijavljujete kao root. To je praktično: sve je dopušteno. No upravo je to problem:

  • Dovoljna je jedna tipfelerska pogreška. rm -rf / home/anna/oud (obratite pozornost na razmak nakon prve kose crte) kao root briše cijeli Vaš poslužitelj. Kao običan korisnik dobit ćete poruku o pogrešci.
  • Sve se izvršava kao root. Skripta koju zalijepite s interneta, program koji testirate: sve dobiva puna prava.
  • Nema traga. Ako tri osobe rade kao root, naknadno nitko ne zna tko je što napravio.
  • Root je ime koje svaki napadač pokušava. Prijavu kao root najbolje je potpuno isključiti (lekcija 2.2), ali to možete tek kada imate drugi put do administratorskih prava.

Taj drugi put je sudo: prijavljujete se kao Vi sami i samo ispred naredbe kojoj trebaju administratorska prava stavljate sudo.

anna@web1:~$ apt update
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
anna@web1:~$ sudo apt update
[sudo] password for anna:
Hit:1 http://deb.debian.org/debian trixie InRelease
...

(Ubuntu od verzije 25.10 standardno koristi sudo-rs, novu implementaciju programa sudo. Za sve u ovoj lekciji radi jednako.)

sudo traži Vašu lozinku, a ne lozinku korisnika root. Nakon toga je standardno pamti četvrt sata, tako da je ne morate ponovno unositi kod svake naredbe. Svaka naredba koju izvršite sa sudo upisuje se u zapisnik.

Izrada administratora

Na sustavima Debian i Ubuntu svatko u grupi sudo smije sve putem sudo. To je zapisano u /etc/sudoers:

%sudo   ALL=(ALL:ALL) ALL

Čitajte to ovako: članovi grupe sudo (%) smiju na svim računalima (ALL) kao bilo koji korisnik i grupa ((ALL:ALL)) izvršiti bilo koju naredbu (ALL).

Dodavanje administratora stoga se odvija u dva koraka, kao root:

root@web1:~# adduser anna
root@web1:~# adduser anna sudo

Zatim stavite Annin javni ključ u /home/anna/.ssh/authorized_keys s ispravnim vlasnikom i pravima:

root@web1:~# mkdir -p /home/anna/.ssh
root@web1:~# cp /root/.ssh/authorized_keys /home/anna/.ssh/
root@web1:~# chown -R anna:anna /home/anna/.ssh
root@web1:~# chmod 700 /home/anna/.ssh
root@web1:~# chmod 600 /home/anna/.ssh/authorized_keys

Ne zaboravite chown: ako ju je kopirao root, datoteka pripada rootu i tada se Anna ne može prijaviti svojim ključem.

Sada, dok Vaša root sesija ostaje otvorena, testirajte u drugom prozoru:

anna@laptop:~$ ssh anna@192.0.2.10
anna@web1:~$ sudo -l
[sudo] password for anna:
User anna may run the following commands on web1:
    (ALL : ALL) ALL
anna@web1:~$ sudo whoami
root

Tek kada to radi, u SSH postavkama postavite PermitRootLogin no (lekcija 2.2). Od tada se uvijek prijavljujete kao Anna.

Jedno valja zapamtiti: Anni sada za sudo treba lozinka. Spremite je u svoj upravitelj lozinki. Prijava ide ključem, sudo lozinkom: dvije različite stvari koje provalnik mora imati obje.

Mijenjanje postavki sudo: uvijek s visudo

Pogreška u /etc/sudoers može značiti da sudo uopće više ne radi. Ako se ni root ne može prijaviti, zapeli ste. Zato postavke sudo nikada ne uređujete običnim uređivačem, nego s visudo. On otvara privremenu kopiju i provjerava sadržaj prije spremanja:

root@web1:~# visudo -f /etc/sudoers.d/backup

Kao i kod SSH, radije koristite vlastitu datoteku u /etc/sudoers.d/ nego glavnu datoteku. Obratite pozornost na dva pravila te mape:

  • Datoteke čiji naziv sadrži točku ili završava na ~ preskaču se. backup.conf stoga ne radi, a backup radi. To je zamišljeno kako bi se zanemarile kopije koje stvaraju uređivači, ali mnoge iznenadi.
  • Datoteka mora pripadati rootu i ne smije biti zapisiva za druge (uobičajeno je 440; visudo to sređuje).

Želite li provjeriti postojeću datoteku bez uređivanja: visudo -c provjerava sve.

NOPASSWD: praktično, ali znajte što radite

Uz NOPASSWD sudo više ne traži lozinku:

anna ALL=(ALL:ALL) NOPASSWD: ALL

Neke VPS slike to postavljaju za standardnog korisnika, tako da nakon prijave ključem odmah imate administratorska prava. Pomoću sudo -l provjerite što vrijedi kod Vas. Posljedica: tko ima Annin ključ, odmah je root. Više nema druge brave. Za osobni poslužitelj to možete odabrati, ali učinite to svjesno.

Puno je bolje NOPASSWD samo za jednu određenu naredbu, primjerice za skriptu za sigurnosno kopiranje koja se mora moći automatski pokretati:

backup ALL=(root) NOPASSWD: /usr/local/bin/maak-backup

Korisnik backup tada smije pokrenuti upravo tu jednu skriptu kao root, bez lozinke, i ništa drugo. Dvije zamke:

  • Uvijek koristite punu putanju. Uz samo maak-backup netko može staviti vlastiti program tog imena na početak svoje putanje.
  • Sama skripta ne smije biti zapisiva za tog korisnika. Inače je on može izmijeniti i zatim pokretati proizvoljne naredbe kao root. Isto vrijedi za naredbe koje same mogu otvoriti ljusku, poput uređivača (vim, nano) ili less: tko ih smije pokrenuti putem sudo, može iz programa otvoriti root ljusku. Takve naredbe nikada ne dopuštajte zasebno putem sudo.

Što se bilježi

Svaki put kada netko koristi sudo, u journal se upisuje redak (a na sustavima s rsyslogom i u /var/log/auth.log):

anna@web1:~$ sudo journalctl _COMM=sudo --since today
Nov 09 10:31:02 web1 sudo[2214]:     anna : TTY=pts/0 ; PWD=/home/anna ; USER=root ; COMMAND=/usr/bin/apt update

Vidite tko, gdje, kao tko i koju naredbu. To je jedan od razloga da više osoba ne radi kao root. Neuspjeli pokušaji sudo ("incorrect password attempts") s računa koji nije Vaš znak su za uzbunu.

Minimalna prava u širem smislu

sudo je jedna primjena općeg načela: minimalnih prava (least privilege). Svaki korisnik i svaka usluga dobiva točno ona prava koja su potrebna, i ništa više. Na poslužitelju to, među ostalim, znači:

  • radite kao običan korisnik i sudo koristite samo kada je potrebno;
  • svaka usluga radi pod vlastitim korisnikom bez ljuske (lekcija 3.1), a ne kao root;
  • web-aplikacija dobiva korisnika baze podataka koji smije koristiti samo svoju bazu, a ne administratora poslužitelja baze podataka;
  • skripta za sigurnosno kopiranje smije samo onu jednu naredbu koja joj treba (NOPASSWD s punom putanjom);
  • kolega koji samo ažurira web-stranicu dobiva pravo pisanja na /var/www/example.com putem grupe, a ne sudo.

Ideja: ako nešto pođe po zlu (propust u dodatku, ukradeni ključ), šteta ostaje ograničena na tog jednog korisnika ili uslugu. U načelima CIS-a i lekciji o hardeningu (10.1) to se stalno ponavlja.

Na AlmaLinuxu i Rocky Linuxu

Ondje se administratorska grupa zove wheel umjesto sudo: usermod -aG wheel anna. Redak u /etc/sudoers glasi %wheel ALL=(ALL) ALL. visudo i /etc/sudoers.d rade jednako. Poruke sudo ondje se nalaze i u /var/log/secure.

Sažetak

  • Radite kao običan korisnik i za administraciju koristite sudo; sudo traži Vašu vlastitu lozinku i bilježi svaku naredbu.
  • Izrada administratora: adduser anna, adduser anna sudo (wheel na sustavima sličnim RHEL-u), ključ s ispravnim vlasnikom i pravima, test u drugom prozoru, tek onda isključite root prijavu.
  • Pravila sudo uređujte samo s visudo, po mogućnosti u vlastitoj datoteci u /etc/sudoers.d/ bez točke u nazivu.
  • NOPASSWD za sve uklanja jednu bravu; radije ga koristite samo za jednu naredbu s punom putanjom koju korisnik ne može mijenjati.
  • Minimalna prava: svaki korisnik i usluga dobiva točno ono što je potrebno, kako bi pogreška ili propust ostali mali.

Kviz

1. Koju lozinku sudo standardno traži kada Anna upiše sudo apt update?



2. Izradili ste datoteku /etc/sudoers.d/backup.conf s valjanim retkom, ali ne radi. Zašto?



3. Zašto pravila sudo uređujete s visudo?



4. Koji redak korisniku za sigurnosno kopiranje daje najmanji rizik?



5. Kojim redoslijedom isključujete root prijavu, a da sami sebi ne zaključate pristup?



Zadatak

Zadatak O3.2: Administrator sa sudo ovlastima. Na svom poslužitelju izradite običnog administratora (na primjer anna), ispravno postavite svoj ključ, u drugom prozoru testirajte prijavu i sudo -l, a zatim isključite root prijavu putem SSH (PermitRootLogin no). Označite korake, zalijepite izlaz naredbe id (samo ime i grupe) i odgovorite na pitanja: koji redak Vašem administratoru daje prava, postoji li negdje NOPASSWD i kako ćete ući ako zaboravite lozinku?

Zadatak O3.2: Administrator sa sudo ovlastima

Ovaj zadatak rješavate sami; nitko ga ne provjerava. Označite što ste napravili i označite zadatak kao završen.




Vaše kvačice i bilješke ostaju samo u ovom pregledniku; ne šaljemo ih nikamo. Ako ste prijavljeni, u Moji tečajevi čuvamo samo podatak da ste zadatak završili.

Dodatno štivo

Koraci u ovim člancima vrijede za VPS poslužitelje tvrtke WebOké; kod drugih pružatelja usluga postupak je sličan.

Trenutak…

Postavite svoje domene

Za svaku domenu odredite nameservere, povezivanje s hostingom i tko postaje vlasnik.

Učitavanje Vaših domena…