Postavljanje web stranice na studentski web server

1. Gdje se nalazi moja stranica?

Studentske stranice se nalaze na web serveru web.studenti.math.hr. Ako je Vaše korisničko ime (u računalnom sustavu fakulteta) username, onda se Vaša početna stranica nalazi na adresi http://web.studenti.math.hr/~username/, preciznije rečeno, Vaša početna stranica je http://web.studenti.math.hr/~username/index.html, no ako se u adresi ne navede dokument, onda većina web servera (pa tako i ovaj naš) pretpostavlja da se radi o dokumentu index.html unutar navedenog direktorija.

Stvarna lokacija direktorija http://web.studenti.math.hr/~username/ je public_html direktorij u home direktoriju korisnika username na računalu student.math.hr. Skraćena oznaka za home direktorij na UNIX-oidnim sustavima je ~. Kako bi imali funkcionalnu početnu stranicu, trebate kreirati direktorij ~/public_html i unutar njega imati datoteku index.html.

Ali, to nije sve! Kako bi svijet mogao pristupiti vašoj stranici, trebate postaviti odgovarajuća dopuštenja na svoj home direktorij, ~/public_html direktorij i sve datoteke i direktorije unutar ~/public_html direktorija.

2. Dopuštenja pristupa datotekama na UNIX-oidnim sustavima

2.1. Korisničke grupe i vlasništvo nad datotekom

Na UNIX-oidnim sustavima za svaku datoteku (direktoriji su posebna vrsta datoteka!) se zna kome ta datoteka pripada, odnosno tko je vlasnik (eng. owner) te datoteke. U pravilu, vlasnik datoteke je onaj tko je tu datoteku kreirao, no moguće je mijenjati vlasništvo nad datotekom. Za promjenu vlasništva koristi se naredba chown.

UNIX-oidni sustavi su višekorisnički, pa je stoga potrebno omogućiti da određenim sadržajima može pristrupiti više korisnika. (Npr. stranicu kolegija Mreže računala trebali bi moći uređivati svi nastavnici koji sudjeluju u izvođenju nastave iz tog kolegija.) Zbog toga su uvedene korisničke grupe. Korisničke grupe su skupovi korisnika, a glavna korist korisničkih grupa je to što se za svaku datoteku, uz to tko je njen vlasnik, zna i kojoj grupi korisnika pripada, pa se shodno tome mogu postavljati i posebna prava pristupa toj datoteci za korisnike koji pripadaju toj grupi. Za promjenu grupe kojoj pripada datoteka koristi se naredba chgrp.

Kako vidjeti tko su vlasnici datotekâ i kojim grupama te datoteke pripadaju? Popis datoteka u trenutnom direktoriju, zajedno s dodatnim informacijama o svakoj pojedinoj datoteci možemo dobiti pomoću naredbe ls -l. Evo i primjera jednog takvog ispisa (radi se o početnom diektoriju web stranice kolegija Mreže računala):

-rw-rw-r-- 1 zbujanov mreze  310 Oct  9  2007 footer.php
-rw-rw-r-- 1 zbujanov mreze 3.3K Oct  9  2007 header.php
drwxrwxr-x 4 zbujanov mreze 4.0K Nov 12  2007 images
-rw-rw-r-- 1 zbujanov mreze 2.9K Oct  9  2007 index.php
-rw-rw-r-- 1 mdoko    mreze 9.7K Nov 19 13:01 jmbags.php
drwxrwx--x 4 zbujanov mreze 4.0K Nov 29 02:16 kolokviji
-rw-rw-r-- 1 mdoko    mreze 4.2K Dec  1 16:40 kolokviji.php
-rw-rw-r-- 1 mdoko    mreze 6.2K Nov  6 03:39 linkovi.php
-rw-rw-r-- 1 mdoko    mreze  13K Dec  8 11:15 materijali.php
-rw-rw-r-- 1 mdoko    mreze 1.6K Nov  6 03:27 nastava.php
-rw-rw-r-- 1 mdoko    mreze  75K Nov 23 03:58 raspored_za_predaju_zadace.html
-rw-rw-r-- 1 zbujanov mreze  65K Nov 24  2007 salabahter.pdf
-rw-rw---- 1 zbujanov mreze 9.5K Nov 24  2007 salabahter.tex
drwxrwx--x 3 zbujanov mreze 4.0K Sep 24 16:44 slideovi
-rw-rw-r-- 1 zbujanov mreze 2.0K Oct  9  2007 style.css
-rw-rw-r-- 1 mdoko    mreze 7.3K Nov 23 04:06 zadace.php

U prvom stupcu nalazi se lista dopuštenja za svaku od datoteka (detaljno o ovome malo kasnije). U trećem stupcu je zapisan vlasnik datoteke (npr. vlasnik datoteke footer.php je korisnik zbujanov, dok je mdoko vlasik datoteke zadace.php), a u četvrtom stupcu piše grupa kojoj datoteka pripada (u ovom primjeru, sve datoteke pripadaju grupi mreze). U petom stupcu je zapisana veličina datoteke, nakon toga slijedi vrijeme zadnje promjene sadržaja datoteke i naziv datoteke.
(Broj u drugom stupcu odnosi se na broj hard linkova prema datoteci. Hard linkovi nisu vezani za dopuštenja, pa se nećemo upuštati u objašnjavanje tog pojma.)

Uočimo da u odnosu na svaku pojedinu datoteku, korisnike možemo podijeliti u tri skupine:

  1. vlasnik datoteke (eng. owner)
  2. članovi grupe kojoj datoteka pripada, a nisu vlasnici datoteke (eng. group)
  3. svi ostali korisnici (eng. others).

Za svaku od tih triju skupina korisnika, njen vlasnik može postaviti različite razine dopuštenja, odnosno odrediti što korisnici koji pripadaju pojedinoj skupini mogu raditi s tom datotekom.

2.2. Vrste dopuštenja

Na UNIX-oidnim sustavima postoje tri vrste dopuštenja (eng. permissions) za pristup datotekama. Svako od njih ima različitu interpretaciju u ovisnosti o tome radi li se o "običnoj" datoteci ili o direktoriju.

  1. dopuštenje čitanja (eng. read permission)
  2. dopuštenje pisanja (eng. write permission)
  3. dopuštenje izvršavanja (eng. execute permission)

Dopuštenja čitanja, pisanja i izvršavanja se kratko nazivaju r, w i x dopuštenja.

Neke stvari na koje treba obratiti pozornost vezano za dopuštenja su:

Vratimo se sada na primjer iz prethodnog poglavlja i skoncentrirajmo se na prvi stupac u kojem se nalazi lista dopušenja.

-rw-rw-r-- 1 zbujanov mreze  310 Oct  9  2007 footer.php
-rw-rw-r-- 1 zbujanov mreze 3.3K Oct  9  2007 header.php
drwxrwxr-x 4 zbujanov mreze 4.0K Nov 12  2007 images
-rw-rw-r-- 1 zbujanov mreze 2.9K Oct  9  2007 index.php
-rw-rw-r-- 1 mdoko    mreze 9.7K Nov 19 13:01 jmbags.php
drwxrwx--x 4 zbujanov mreze 4.0K Nov 29 02:16 kolokviji
-rw-rw-r-- 1 mdoko    mreze 4.2K Dec  1 16:40 kolokviji.php
-rw-rw-r-- 1 mdoko    mreze 6.2K Nov  6 03:39 linkovi.php
-rw-rw-r-- 1 mdoko    mreze  13K Dec  8 11:15 materijali.php
-rw-rw-r-- 1 mdoko    mreze 1.6K Nov  6 03:27 nastava.php
-rw-rw-r-- 1 mdoko    mreze  75K Nov 23 03:58 raspored_za_predaju_zadace.html
-rw-rw-r-- 1 zbujanov mreze  65K Nov 24  2007 salabahter.pdf
-rw-rw---- 1 zbujanov mreze 9.5K Nov 24  2007 salabahter.tex
drwxrwx--x 3 zbujanov mreze 4.0K Sep 24 16:44 slideovi
-rw-rw-r-- 1 zbujanov mreze 2.0K Oct  9  2007 style.css
-rw-rw-r-- 1 mdoko    mreze 7.3K Nov 23 04:06 zadace.php

Lista dopuštenja je niz od 10 znakova. Prvi znak u stvari nije dopuštenje, nego informacija radi li se o direktoriju [d] ili o običnoj datoteci [-]. (Postoje i drugi specijalni tipovi datoteka osim direktorija, no ukoliko se s njima susretnete, vjerojatno ćete već znati o čemu se radi, tako da o njima ovdje neće biti govora.) Preostalih 9 znakova su u stvari tri grupe od po tri znaka. Prva grupa se odnosi na dopuštenja vlasnika, druga na dopuštenja grupe, a treća na dopuštenja za ostale korisnika. U svakoj grupi znakovi imaju sljedeće značenje:

Pogledajmo dva primjera

2.2.1. Malo o notaciji

Dopuštenja na pojedinoj datoteci označavamo na dva načina. Prvi smo već vidjeli, to je način na koji to prikazuje naredba ls -l (tri grupe od tri znaka). Drugi način je malo kraći, a zasniva se na tome da svaku grupu od tri znaka shvatimo kao jedan troznamenkasti broj u binarnom zapisu tako što dopuštenja koja su postavljena shvaćamo kao 1, a ona koja nisu postavljena kao 0. Sjetimo se da se grupa od tri binarne znamenke odgovara jednoj oktalnoj znamenci i dobivamo skraćeni zapis u kojem dopuštenja na datoteci bilježimo s tri oktalne znamenke. Pogledajmo par primjera:

2.3. Postavljanje dopuštenja

Pravo postavljanja dopuštenja imju vlasnik daoteke i administrator sustava. Za postavljanje dopuštenja koristi se naredba chmod. Ovdje ćemo pokazati dva osnovna načina za postavljanje dopuštenja. Za dodatne informacije pogledajte man chmod.

2.3.1. Modificiranje dopuštenja

Ako želite samo modificirati već postojeća dopuštenja (npr. grupi oduzeti pravo modificiranja ili ostalima dati pravo čitanja), koristite simbolički mod naredbe chmod:
chmod kap datoteka
gdje je

Primjeri:

2.3.2. Eksplicitno postavljanje dopuštenja

Za eksplicitno postavljanje dopuštenja na točno specificirane postavke koristi se numerički mod naredbe chmod:
chmod xyz datoteka
gdje je xyz troznamenkasti broj u oktalnoj bazi koji predstavlja skraćeni zapis dopuštenja.
Primjer: chmod 604 datoteka – postavlja dopuštenja datoteke na 604.

3. Dopuštenja za web stranicu

Ovdje ćemo navesti najmanja dopuštenja koja trebaju imati Vaše datoteke kako biste imali funkcionalnu osobnu web stranicu na studentskom serveru. Dobro je uvijek imati postavljena najmanja dopuštenja potrebna da se ostvari željena funkcionalnost. Na taj način povećavate sigurnost i štitite svoju privatnost.

3.1. Ovlaštenja vlasnika

Vi kao vlasnik trebate imati maksimalna prava, pa tako za direktorije trebate imati rwx dopuštenja, a za obične datoteke rw- dopuštenja. Pravo izvršavanja vam ne treba, jer unutar web stranice (u pravilu) nećete imati nikakve aplikacije.

3.2. Ovlaštenja grupe

Kako se radi o osobnoj stranici, a ne o stranici koju održava više osoba, grupa ne treba imati nikakva prava pristupa datotekama vaše stranice.

3.3. Ovlaštenja za ostale korisnike

Korisnici koji putem Interneta pristupaju Vašoj stranici spadaju u kategoriju "ostalih korisnika", pa im prema tome morate dati pravo čitanja običnih datoteka (r), a u slučaju direktorija dovoljano je pravo izvršavanja (x), jer korisnici vaše stranice ne moraju moći vidjeti koje se sve datoteke nalaze u pojedinim direktorijima.

3.4. Kako na brzinu postaviti dopuštenja na web stranici

Kao što smo vidjeli, za funcionalnu stranicu, direktoriji (uključujuci ~ i ~/public_html) trebaju imati dopuštenja 701, a obične datoteke 604. Kako bi dopuštenja na direktorijima ~ i ~/public_html, kao i na svim datotekama i direktorijima koje se nalaze unutar ~/public_html postavili na 701, odnosno 604 (s obzirom na to radi li se o direktorijima ili običnim datotekama) dovoljno je izvršiti sljedeće tri naredbe:

chmod 701 ~ ~/public_html
find ~/public_html -type d -exec chmod 701 '{}' \;
find ~/public_html -type f -exec chmod 604 '{}' \;
Ako želite saznati više o naredbi find, pogledajte man find.