Mine sisu juurde

Küpsiste seaded

Vali iga liigi kohta, milliseid küpsiseid lubad. Oma valikut saad alati muuta iga lehe allosas oleva lingi „Küpsiste seaded“ kaudu. Privaatsuspoliitika

Vajalikud

Alati sees

Vajalikud sisselogimiseks, ostukorvi säilitamiseks ja sinu valikute meelespidamiseks. Need on alati sees.

Millised küpsised?
  • weboke_sessie, weboke_klant, weboke_remember: sinu seanss ja sisselogituks jäämine
  • weboke_basket: sinu ostukorv
  • wkBtwIncl: hindade näitamine koos käibemaksuga või ilma
  • wok_cookies: sinu küpsisevalik, 12 kuud

Mõõdab, milline reklaam viib külastuse või tellimuseni, et me ei maksaks reklaamide eest, mis midagi ei anna.

Millised küpsised?
  • Google Ads Google Tag Manageri kaudu (_gcl_au, _gcl_aw), kuni 90 päeva
  • OpenAI Ads, reklaamid ChatGPT-s
  • wok_aff: millise partneri kaudu meie juurde jõudsid (partnerprogramm), 60 päeva

4,6

Riik ja keel

Igal riigil on oma sait, selle riigi hindade ja käibemaksuga.

Vaata

Kasutajad, grupid ja failiõigused

Moodul 3: Kasutajad, õigused ja sudo · Lugemisaeg: 12 minutit

Õpieesmärk: Pärast seda õppetundi oskad luua ja vaadata kasutajaid ja gruppe, lugeda faili või kausta õigusi käsu ls -l väljundist ning seada need käskudega chmod ja chown õigesti, ilma et teeksid kõik kõigile lahti.

Põhimõisted: root (UID 0), tavakasutaja, süsteemikasutaja, /etc/passwd, /etc/shadow, grupp, adduser, id, rwx, omanik, grupp, teised, kaheksandsüsteem (644, 755, 600), chmod, chown, umask, setuid, 777

Igaüks on number

Linux on algusest peale ehitatud nii, et ühel masinal on mitu kasutajat. Iga töötav protsess töötab mingi kasutaja nimel ja igal failil on omanik. Süsteemi jaoks on kasutaja eelkõige number, UID:

  • root on UID 0. Root võib kõike: lugeda ja muuta iga faili, peatada iga teenuse, luua iga kasutaja. Küsimust "oled sa kindel?" ei tule.
  • Tavakasutajad, näiteks anna, saavad Debianis ja Ubuntus UID alates 1000. Nad võivad kirjutada oma kodukausta ja muud vähe.
  • Süsteemikasutajatel on väike number ning tavaliselt pole neil parooli ega shelli. Teenused töötavad sellise kasutaja all: nginx kasutaja www-data all, PostgreSQL kasutaja postgres all. Kui selline teenus häkitakse, on sissetungijal ainult selle kasutaja õigused, mitte root'i omad.

Kes sa oled, näed käsuga id:

anna@web1:~$ id
uid=1000(anna) gid=1000(anna) groups=1000(anna),27(sudo),100(users)

Annal on UID 1000, oma grupp anna ning ta kuulub ka gruppidesse sudo ja users.

Kus kasutajad asuvad

Kasutajate loend on failis /etc/passwd, üks rida kasutaja kohta:

anna@web1:~$ grep -E '^(root|www-data|anna):' /etc/passwd
root:x:0:0:root:/root:/bin/bash
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
anna:x:1000:1000:Anna,,,:/home/anna:/bin/bash

Väljad, eraldatud koolonitega: nimi, x (parool on mujal), UID, põhigrupp, kirjeldus, kodukaust, shell. Kasutajal www-data on shelliks /usr/sbin/nologin: sisse logida ei saa.

Paroolid ise on krüptitult (räsina) failis /etc/shadow. Seda faili saab lugeda ainult root. ! või * paroolivälja alguses tähendab, et parooliga sisse logida ei saa. Nii on root Ubuntus vaikimisi lukus, ja Debianis siis, kui sa paigaldamisel root'i parooli ei andnud.

Kasutajate ja gruppide loomine

Debianis ja Ubuntus kasuta sõbralikku käsku adduser:

root@web1:~# adduser anna
info: Adding user `anna' ...
info: Adding new group `anna' (1000) ...
info: Adding new user `anna' (1000) with group `anna (1000)' ...
info: Creating home directory `/home/anna' ...
info: Copying files from `/etc/skel' ...
New password:
Retype new password:
...

adduser loob kasutaja, samanimelise oma grupi ja kodukausta ning küsib parooli. Olemas on ka madalama taseme useradd (AlmaLinuxis ja Rocky Linuxis on see tavaline käsk), kuid ilma suvanditeta teeb see vähem: parooli ei määra ja mõnes süsteemis kodukausta ei loo.

Grupp on viis anda õigusi mitmele kasutajale korraga. Kasutaja lisamine gruppi:

root@web1:~# adduser anna www-data
root@web1:~# usermod -aG www-data anna     # sama, töötab kõikjal

Pane tähele -a käsus usermod: ilma -a-ta asendad kõik kasutaja lisagrupid ainult selle ühega. Uus grupp hakkab kehtima alles pärast uuesti sisselogimist.

Konto sulgemine ilma seda kustutamata (näiteks endise kolleegi oma):

root@web1:~# usermod -L -e 1 jan

-L lukustab parooli, -e 1 laseb kontol aeguda. Tähelepanu: lukustatud parool ei peata alati SSH-võtit. Eemalda seega ka võtmed failist /home/jan/.ssh/authorized_keys (õppetund 2.3); aegunud konto (-e 1) lükkab sshd aga tagasi.

Õiguste lugemine

anna@web1:~$ ls -l /var/www/example.com
total 12
-rw-r--r-- 1 anna     www-data  1520 Nov  9 10:12 index.html
-rw-r----- 1 anna     www-data   412 Nov  9 10:14 config.php
drwxr-xr-x 2 anna     www-data  4096 Nov  9 10:15 images
drwxrwxr-x 2 www-data www-data  4096 Nov  9 10:20 uploads

Esimene kümnemärgiline plokk on kõige võti:

  • Märk 1: tüüp. - on tavaline fail, d kaust (directory), l otsetee (symlink).
  • Märgid 2 kuni 4: mida võib omanik.
  • Märgid 5 kuni 7: mida võib grupp.
  • Märgid 8 kuni 10: mida võivad teised (kõik ülejäänud).

Seejärel tulevad linkide arv, omanik, grupp, suurus ja kuupäev.

Tähed tähendavad faili puhul:

TähtTähendus faili puhul
rlugemine
wmuutmine
xkäivitamine programmi või skriptina

Ja kausta puhul veidi teisiti:

TähtTähendus kausta puhul
rkaustas olevate failide nimede küsimine
wfailide loomine, ümbernimetamine ja kustutamine kaustas
xkausta sisenemine ja selles olevate failide avamine

Viimane üllatab paljusid. Ilma kausta x-õiguseta ei pääse sa selles olevate failide juurde, isegi kui need ise on loetavad. Ja kellel on kaustal w, see saab selles faile kustutada, isegi kui need kuuluvad kellelegi teisele.

Näites: index.html võivad lugeda kõik; config.php (andmebaasi parooliga) võib Anna lugeda ja muuta, grupp www-data (ehk veebiserver) ainult lugeda ja ülejäänud ei saa midagi. Kausta uploads võib veebiserver kirjutada, sest sinna tulevad külastajate üleslaaditud failid.

Õigused numbrina

Õigusi kirjutatakse sageli kolme numbrina, kaheksandsüsteemis. Igal tähel on väärtus: r = 4, w = 2, x = 1. Liida iga rühma kohta kokku:

ÕigusedNumberKasutus
rw-r--r--644tavaline fail, mida kõik võivad lugeda
rw-r-----640fail omanikule ja grupile, näiteks parooliga konfiguratsioon
rw-------600salajane fail, näiteks authorized_keys või privaatvõti
rwxr-xr-x755kaust või programm, mida kõik võivad kasutada
rwx------700privaatne kaust, näiteks ~/.ssh

Õiguste muutmine: chmod ja chown

anna@web1:~$ chmod 640 /var/www/example.com/config.php
anna@web1:~$ chmod g+w /var/www/example.com/uploads
root@web1:~# chown anna:www-data /var/www/example.com/config.php

chmod muudab õigusi numbri või tähtedega (u, g, o omaniku, grupi ja teiste jaoks; + või - ja täht). chown eigenaar:groep muudab omanikku ja gruppi; seda võib teha ainult root. -R-ga töötavad mõlemad terve kausta peal, ja just seal läheb sageli valesti: chmod -R 644 kaustale muudab kõik alamkaustad kasutuskõlbmatuks, sest kaustad vajavad x-õigust. Terve puu jaoks kasuta parem find:

root@web1:~# find /var/www/example.com -type d -exec chmod 755 {} +
root@web1:~# find /var/www/example.com -type f -exec chmod 644 {} +

Mitte kunagi 777

"See ei töötanud, panin lihtsalt 777 peale." 777 tähendab: kõik serveris võivad seda lugeda, muuta ja käivitada. Kui mõni teenus või veebisait su serveris kunagi häkitakse, saab sissetungija kirjutada kõikjale, kus on 777, ka sinu PHP-failidesse. Tegelik probleem on peaaegu alati omanik või grupp: anna veebiserverile grupi kaudu täpselt see õigus, mida ta vajab, ja ainult kaustale, kus seda vaja on.

Vaikeõigused ja erilised bitid

Uued failid saavad oma õigused umask'i kaudu. Levinud umask'iga 022 saavad uued failid 644 ja uued kaustad 755. Oma umask'i näed käsuga umask.

Mõnikord näed x asemel s, näiteks failil /usr/bin/passwd (-rwsr-xr-x). See on setuid-bitt: programm töötab omaniku (root) õigustega ka siis, kui selle käivitab tavakasutaja. See on vajalik mõne süsteemiprogrammi jaoks, kuid ära pane seda kunagi ise skriptile. Ootamatu setuid-fail on tuntud sissemurdmise märk; käsuga find / -perm -4000 -type f 2>/dev/null näed neid kõiki.

AlmaLinuxis ja Rocky Linuxis

adduser on seal teine nimi käsule useradd; kasuta useradd -m anna ja seejärel passwd anna. Gruppe lisatakse käsuga usermod -aG. SELinux lisab selles õppetunnis kirjeldatud õiguste kõrvale veel ühe kihi: õigete õigustega fail võidakse siiski tagasi lükata, kui sellel on vale SELinuxi silt (ls -Z näitab seda).

Kokkuvõte

  • Igal kasutajal on UID; root (0) võib kõike, teenused töötavad oma süsteemikasutajate all ilma shellita.
  • Kasutajad on failis /etc/passwd, paroolide räsid failis /etc/shadow. Loo kasutajad käsuga adduser ja lisa gruppe käsuga usermod -aG.
  • ls -l näitab tüüpi, omaniku, grupi ja teiste õigusi ning seejärel omanikku ja gruppi. Kausta puhul tähendab x sisenemist ja w failide loomist ja kustutamist.
  • Levinud numbrid: 644 ja 755 avaliku jaoks, 640 saladusi sisaldava konfiguratsiooni jaoks, 600 ja 700 privaatse jaoks. Mitte kunagi 777.
  • Kasuta find, et seada õigused tervele puule; jälgi setuid-faile.

Test (quiz)

1. Mida tähendab -rw-r----- failil, mille omanik on anna ja grupp www-data?



2. Mis juhtub, kui kaustal on õigused drw-r--r-- (ehk kuskil pole x-i)?



3. Käivitad usermod -G www-data anna (ilma -a-ta). Mis on tagajärg?



4. Plugin ei saa kirjutada kausta /var/www/example.com/uploads. Mis on parim lahendus?



5. Miks töötab nginx kasutaja www-data all, mitte root'ina?



Ülesanne

Ülesanne Z3.1: Õiguste lugemine. Ava näidisfail rechten-1.txt: käsu id väljund kolme kasutaja kohta ja käsu ls -l väljund ühes veebikaustas. Vasta iga küsimuse puhul, kes mida võib (näiteks: "kas veebiserver saab muuta faili config.php?", "millisel failil on liiga laiad õigused?", "milline number vastab õigustele .env?"). Programm võrdleb su vastuseid kindla võtmega ja selgitab iga küsimuse juures, miks.

Ülesanne Z3.1: Õiguste lugemine

Selle ülesande fail: rechten-1.txt










Seda, mida sisestad, ja mida leiame, me ei salvesta. Su brauser jätab meelde su vastused ja selle, kas sooritasid ülesande. Kui oled sisse loginud, salvestame Minu kursustes ainult info, et sul oli ülesanne (peaaegu) õige; ka selle saad sealt kustutada.

Loe edasi

Nende artiklite sammud kehtivad WebOké majutuspakettide ja VPS-ide kohta; teiste teenusepakkujate juures toimib see sarnaselt.

Hetk…

Seadista oma domeenid

Määra iga domeeni jaoks nimeserverid, seos sinu majutusega ja kes saab omanikuks.

Laadin sinu domeene…