1. Unixin ja Linuxin suppea historia

Bellin laboratorioissa kehitettiin 1969 Multics-käyttöjärjestelmästä pienempi versio nimeltä Unics. Nimi vääntyi käyttäjien suussa muotoon Unix eikä muuttunut siitä enää sen enempää. Unixin kehitys jakaantui kahteen päähaaraan, System V- ja Berkeley- eli BSD-pohjaisiin variantteihin. Monet valmistajat ovat kehitelleet omia Unixejaan, esimerkkeinä mainittakoon vaikkapa HP:n HP-UX, Silicon Graphicsin Irix ja Sunin Solaris. Linux ei sijoitu selkeästi kumpaankaan päähaaraan vaan on yhdistelmä niistä.

Linuxin kehitys alkoi 1991, kun Helsingin Yliopiston tietojenkäsittelyopin opiskelija Linus Torvalds julkaisi vapaaseen levitykseen internetissä ensimmäiset versiot Linuxin kernelistä. Torvalds oli kyllästynyt tehottomiin käyttöjärjestelmiin, jotka eivät voineet hyödyntää 386-suorittimen ominaisuuksia kunnolla. Monet ohjelmoijat ja Unix-käyttäjät innostuivat vapaasti levitettävästä käyttöjärjestelmästä ja liittyivät mukaan kehitystyöhön. Käyttäjien nykyistä määrää on vaikea arvioida, mutta kuusi miljoonaa lienee oikeaa suuruusluokkaa, jopa kymmenestä miljoonasta on puhuttu.

Linuxin lisenssi on Free Software Foundationin General Public Licensen (GPL) alainen. Lyhyesti sanottuna tämä tarkoittaa sitä, että Linuxia saa kopioida ja jopa myydä vapaasti kunhan järjestelmän lähdekoodi on aina ilmaiseksi saatavilla. Linuxin kernel on suurimmalta osin kirjoitettu C-kielellä ja tämän ansiosta siitä on tehtykin useita eri porttauksia muille kuin Intel-pohjaisille laitteistoille kuten Alpha ja PPC.

Alkuaikojen hankala järjestelmän asennus ja ohjelmien saatavuus helpottuivat selvästi, kun alkoi ilmestyä erilaisia distribuutioita so. jakelupaketteja Linuxista. Vanhimpia ja vieläkin käyttökelpoinen on Slackware, joka sopii kuitenkin lähinnä edistyneelle ja viitseliäälle käyttäjälle. Muita tunnettuja ilmaiseksi saatavia distribuutioita ovat Debian, saksalainen SuSE ja tunnetuimpana Red Hat. Suomen ohjelmistotyö julkaisee Red Hatiin perustuvaa osittain suomennettua SOT-Linuxia. Tällä kurssilla käsitellään Red Hatin versiota 5.2.

2. Linuxin tarjoamia mahdollisuuksia

Linux on täysin 32-bittinen moniajava monen käyttäjän käyttöjärjestelmä. Muistinsuojaus estää virheellisesti toimivia ohjelmia sekoittamasta järjestelmää ja muita ohjelmia. Näennäismuistia voidaan jakaa usealle eri kiintolevylle ja muuttaa sen kokoa lennossa. Vakaa toiminta ja vähäinen käynnistelyn tarve ovat Linux-järjestelmälle luonteenomaisia. Tiedostojärjestelmän ominaisuuksia ovat tehokas tilankäyttö ja nopeat levytoiminnot.

Verkko-ominaisuudet ovat normaalia Unix-tasoa eli varsin monipuoliset. Tyypillisiä käyttökohteita ovatkin erilaiset verkkopalvelimet kuten WWW-, FTP-, uutisryhmä- ja sähköpostipalvelin. Kaikki tarpeellinen tulee distribuution mukana, ylimääräisiä kalliita ohjelmia ei tarvita. Ilman graafista käyttöliittymää jopa 386-tasoinen kone pystyy toimimaan pienimuotoisena palvelimena. Unix-verkkoon Linux sopii erityisen hyvin, sillä se osaa useita "suurempien" Unixien protokollia. Windows-verkossa Linux pystyy toimimaan palvelimena Samba-ohjelmiston avulla.

Tavanomainen Linux-distribuutio sisältää suuren joukon erityyppisiä yleensä vapaasti levitettäviä ohjelmia. Tiedostojen käsittelyyn, verkkokäyttöön, grafiikan käsittelyyn, ylläpitoon ja ohjelmointiin tarvittavat työkalut tulevat distribuution mukana. Peleistä kiinnostuneelle Linux ei ole (ainakaan tällä hetkellä) sopiva ratkaisu, vaikka esim. Id Softwaren kuuluisat pelit Doom ja Quake on sillekin saatavissa. Jo distribuution mukana tulevilla ohjelmilla pärjää pitkälle, mutta tarpeen vaatiessa on internetistä saatavilla suuria määriä ilmaisia työkaluja lisää.

Kaupallinen tuki Linuxille on vielä lapsenkengissään, mutta hiljattain suuret ohjelmistotalot ovat ilmoittaneet tukevansa Linuxia. Oracle on tehnyt tietokannastaan Linux-version ja Corel julkaissut Linux-versiot Word Perfectistä sekä Corel Draw:sta. Netscape-selaimen on saanut Linuxille jo kakkosversiosta lähtien. Muita tunnettuja Linuxia nykyisin tukevia yrityksiä ovat mm. Caldera (joka julkaisee myös omaa distribuutiotaan), Compaq ja Intel.

3. Peruskäsitteitä

Unix-järjestelmän rakenne poikkeaa oleellisesti muista tavanomaisista järjestelmistä kuten MS-DOS ja Windows. Unix suunniteltiin aikana, jolloin tietokoneet sekä niiden muisti olivat kalliita, jonka vuoksi useampi käyttäjä käytti samaa konetta edullisten päätteiden kautta. Unix-järjestelmän käyttö vaatii aina sisäänkirjautumisen ja samaa konetta voi käyttää samanaikaisesti useampi kuin yksi kirjautunut käyttäjä. Muut käyttäjät voivat olla järjestelmään vaikkapa pääteyhteydessä toiselta koneelta (Windowsinkin mukana tulee vakiona ohjelma Telnet, jolla pääteyhteyden voi muodostaa). Pääteyhteyden yli voi käyttää paitsi tekstipohjaisia, myös graafisia ohjelmia.

Unix-järjestelmän ylläpidosta huolehtii ylikäyttäjä eli root. Ylikäyttäjällä on oikeus tehdä käytännössä mitä tahansa, joten vahinkojen välttämiseksi ylläpitäjän tulee käyttää konetta tavallisella käyttäjätunnuksella muulloin kuin ylläpitotoimenpiteitä tehdessään. Jokaiseen käyttäjään liittyy käyttäjänumero, joka ylikäyttäjän tapauksessa on aina nolla.

Modulaarisuus on tärkeä osa Unixien filosofiaa, järjestelmä koostuu osista ja kerroksista, joista jokainen voidaan tarpeen tullen vaihtaa. Käyttöjärjestelmän päällä pyörii komentotulkki eli shell (joskus suomennettu "kuori") joka huolehtii käyttäjän komentojen käsittelystä. Komentotulkki voidaan haluttaessa vaihtaa, Linuxissa yleisimmin käytetty on bash eli Bourne again shell. Muita tavallisia ovat mm. tcsh ja zsh.

Graafinen käyttöliittymä Unixissa on kaksitasoinen, alemmalla tasolla on X Window System eli lyhemmin X. Itse X tarjoaa ainoastaan ruudulle tulostamiseen tarvittavat palvelut eikä varsinaista käyttöliittymää. X:n päällä toimii toinen prosessi, ikkunamanageri (window manager) joka vasta huolehtii X:n käyttöliittymästä. Ohjelmat itsessään eivät välitä ikkunamanagerista, vaan niidenkin käyttöliittymä on erillinen komponentti (tämän vuoksi monet graafiset Unix-ohjelmat ovat erilaisia käyttöliittymältään). Modulaarisen rakenteen johdosta ikkunamanageri voidaan vaihtaa toiseen jopa X:ää sulkematta. Ikkunamanagereita on joka lähtöön, paremmuusjärjestyksen päättäköön jokainen itse. Yleisesti käytettyjä ovat mm. kevyt Fvwm, graafisesti näyttävä Enlightenment ja helppokäyttöinen työpöytäympäristö KDE.

4. Hakemistopuu

Unixissa kaikki levyasemat ja niiden hakemistot, niin verkkolevyjen kuin paikallistenkin, näkyvät yhden suuren hakemistopuun alla. Mitään erillisiä levyasematunnuksia ei ole vaan jokaiseen paikkaan voidaan viitata hakemiston nimellä. Joillekin hakemistoille on varattu erityistehtäviä kuten laite- ja asetustiedostojen hakemistot. Hakemistot ja alihakemistot erotetaan toisistaan kauttaviivalla eikä kenoviivalla kuten esim. DOSissa. Oletushakemistoon viitataan kuten DOSissa pisteellä (.) ja alempaan hakemistoon kahdella pisteellä (..).


Kuva 4.1 Hakemistopuun hierarkia

Tavallisimpien hakemistojen kuvaukset:

/

Päähakemisto. Tämän kautta voidaan viitata kaikkiin muihin hakemistoihin. Täydellinen hakemistopolku sisältää aina ensimmäisenä merkkinään kauttaviivan.

/home

Käyttäjien kotihakemistot. Jokaisella käyttäjällä on täällä käyttäjänimeään vastaava alihakemisto kuten /home/marq. Kotihakemistoon voidaan aina viitata myös lyhenteellä ~ (tilde, mato). Internet-kotisivujen osoitteissa esiintyvä ~ tarkoittaa juurikin käyttäjän kotihakemistoa.

/etc

Asetustiedostojen hakemisto. Suurin osa koko järjestelmää koskevista asetustiedostoista ja -komentojonoista sijaitsee täällä.
Esim. /etc/inittab - järjestelmän pääkäynnistystiedosto ja
/etc/rc.d/rc.local - paikallisten asetusten komentojono

/tmp

Väliaikaistiedostoille tarkoitettu hakemisto.

/dev

Laitetiedostojen hakemisto. Kaikki järjestelmään asennetut laitteet (ja monta asentamatontakin) näkyvät tässä hakemistossa tiedostoina.
Esim. /dev/hda - ensimmäinen IDE-kiintolevy

/mnt

Hakemisto, johonka liitetään (mount) toisia tiedostojärjestelmiä yleensä väliaikaisesti.
Esim. /mnt/cdrom - CD-asema

/var

Järjestelmän ajon aikana päivittyviä tiedostoja. Mm. tulostusjonot ja lokitiedostot sijaitsevat täällä.

/proc

Järjestelmän tilatiedot. Täällä sijaitseviin tiedostoihin Linux päivittää tietoa toiminnastaan kuten käytössä olevista keskeytyksistä ja io-porteista.
Esim. /proc/interrupts - Linuxin käytössä olevat keskeytykset

/bin ja /sbin

Käynnistyksen yhteydessä tarvittavia komentoja ja ohjelmia

/lib

Järjestelmän kirjastoja.

/usr

Tavalliset ohjelmat, kirjastot ja ohjetiedostot sekä paljon muuta sisältävä hakemisto.

5. Peruskomennot

Graafisesta käyttöliittymästä huolimatta suuri osa toiminnoista on edelleen kätevää - tai jopa pakko - tehdä kirjoittamalla ne komentoriville. Komentoriviä voi hyödyntää yhtä hyvin konsolilla, X:n alla ikkunassa tai pääteyhteyden yli. Peruskomennot ovat samat kaikissa Unixeissa, komentojen parametreissa ja toiminnassa on jonkin verran eroja eri järjestelmien välillä. Tässä luvussa käsitellään tavanomaisimpia komentoja, lisää tulee myöhemmissä luvuissa sitä mukaa kun niitä tarvitaan.

Unixissa komentojen ja tiedostonimien kirjainten koolla on merkitystä. Komennot kirjoitetaan pienin kirjaimin. Tiedostot teksti.txt, Teksti.txt ja TEKSTI.TXT eivät ole sama asia. Jokerimerkkinä käytetään kuten DOSissakin asteriskia eli tähteä (*)korvaamaan osaa tiedostonimestä ja kysymysmerkkiä (?) korvaamaan yhtä kirjainta. Jokerien toiminta on muuten hieman DOSia monipuolisempaa.
Esim. *.txt - Kaikki .txt -päätteiset tiedostot ja
*a* - kaikki tiedostot joiden nimessä on kirjain a

logout

Komento, jolla kirjaudutaan järjestelmästä ulos tai suljetaan aktiivinen pääteyhteys. Linuxissa voi myös painaa tyhjällä rivillä Control-D (syötteen loppumerkki), mikä on kylläkin nopeampaa, mutta ei toimi välttämättä muissa järjestelmissä.

ls

Komento ls vastaa DOS-käyttäjille tuttua komentoa dir, eli se näyttää hakemistossa olevien tiedostojen tiedot. Monilla vivuilla eli komentoa ohjaavilla parametreilla saa muokattua ls:n antamaa listausta sopivampaan muotoon.
Esimerkkejä:

ls
Pelkkä ls antaa luettelon hakemistossa olevista tiedostoista.

ls -a 
Vipu -a aiheuttaa sen, että näytetään listassa kaikki tiedostot. Unixissa ei ole varsinaisia piilotiedostoja, mutta ls ei näytä pisteellä alkavia tiedostonimiä oletuksena. Pisteellä alkavia tiedostoja ovat käyttäjän kotihakemistossa olevat asetustiedostot (ns. rc-tiedostot) kuten .bashrc.

ls -l a*
Näyttää tarkemmat tiedot kaikista a-alkuisista tiedostoista ja alihakemistoista. Vivulla -l saa näkyviin huomattavasti tarkemmat tiedot tiedostoista kuten käyttöoikeudet, omistajan, koon ja päiväyksen. Jos listaukseen ei haluta a-alkuisissa alihakemistoissa olevista tiedostoista, voidaan käyttää vipua -d.

ls -ldS *p*
Äkkiseltään kryptisen näköinen rivi näyttää tarkemmat tiedot kaikista tiedostoista, joiden nimessä on p ja järjestää ne suuruusjärjestykseen. ls:n (ja monen muun komennon) vipuja voidaan yhdistää kuten tässä kirjoittamalla ne kaikki miinusmerkin perään tai sitten kirjoittamalla ne erikseen.

mkdir ja rmdir

Komennoilla mkdir ja rmdir voidaan luoda ja poistaa hakemistoja. Poistettavan hakemiston on oltava tyhjä.

cd

Vanhoille DOS-käyttäjille tutunnäköinen komento vaihtaa oletushakemiston. Ainoa tähän komentoon liittyvä erikoisominaisuus on se, että pelkkä cd ilman parametreja vaihtaa oletushakemistoksi käyttäjän kotihakemiston.

rm

Komento rm poistaa tiedostoja (kuten DOSin del). Parametriksi annetaan normaali tiedostonimi mahdollisine jokerimerkkeineen. Komennon käytössä kannattaa olla huolellinen, sillä poistettuja tiedostoja ei Unix-järjestelmissä yleensä pystytä palauttamaan muuten kuin varmuuskopioista.
Esimerkkejä:

rm *.txt
Poistaa kaikki .txt -päätteiset tiedostot.

rm -i *
Poistaa kaikki hakemiston tiedostot yksitellen interaktiivisesti. Jos tiedosto poistetaan, valitaan y [Enter], jos ei niin n [Enter].

rm -r /home/marq/temp
Poistetaan temp-niminen tiedosto tai hakemisto alihakemistoineen. Tehokas mutta vaarallinen vipu -r aiheuttaa sen, että rm ulottaa lonkeronsa myös alihakemistoihin. Vivulla -r saadaan poistettua nopeasti hakemisto alihakemistoineen, siksi sen käytössä kannattaa olla varovainen. Normaalisti rm ei poista hakemistoja.

Red Hatissa on turvallisuussyistä oletuksena päällä parametri -i, eli suuria vahinkoja ei pääse syntymään virheellisen komennon vuoksi. Jos moista holhoamista ei tunne tarvitsevansa, voi komentaa unalias rm.

echo

Komennolla echo voidaan tulostaa tekstiä. Echo tulostaa parametrina annetun tekstin. Jos tekstissä on ohjausmerkkejä (kts. ohjausmerkit), on teksti ympäröitävä hipsuilla (').
Esimerkki:

echo 'Tässä tekstissä >on< ohjausmerkkejä!'
Tulostaa parametrina annetun tekstin. Ilman hipsuja tulisi virheilmoitus.

cat

DOSin type-komentoa vastaava cat tulostaa parametrina annetun tiedoston. Parametriksi voidaan antaa paitsi yksi tiedosto, myös jokerimerkkejä tai useampi tiedosto.
Esimerkki:

cat teksti.*
Näyttää kaikkien teksti-alkuisten tiedostojen sisällön.

cp

cp vastaa DOS-käyttäjille tuttua copy-komentoa. Ensimmäisenä parametrina annetaan kopioitava tiedosto mahdollisine jokerimerkkeineen ja toisena parametrina kohdehakemisto tai -tiedosto, jos halutaan kopioida tiedosto toiselle nimelle. Oletushakemistoon voidaan kopioida antamalla kohteeksi piste (.). Vipu -r aiheuttaa rekursiivisen toiminnan.
Esimerkki:

cp -r /tmp/* .
Kopioi kaikki tiedostot ja alihakemistot hakemistosta /tmp oletushakemistoon.

Ohjausmerkit

Unixien komentorivi tarjoaa monipuoliset mahdollisuudet käsitellä komentojen tulostus- ja syötevirtoja. Ohjausmerkkejä käyttämällä saadaan esim. ohjattua toisen komennon tulostus toisen syötteeksi. Seuraavassa luettelossa on joitakin tavallisimpia ohjausmerkkejä:

Esimerkkejä ohjausmerkkien käytöstä:

cat eka.txt toka.txt > yhdistetty.txt
Tulostetaan cat-komennolla tiedostot eka.txt ja toka.txt ja ohjataan tulostus tiedostoon yhdistetty.txt. Tällä tavoin voidaan yhdistää tiedostoja.

ls -l | more
Näyttää pitkän hakemistolistauksen sivuittain. Komento more on ns. filtteri, joka näyttää saamansa syötteen sivuittain. Välilyönnillä saa uuden sivun ja enterillä uuden rivin. Toinen näppärä vastaava filtteri on less, jonka avulla tulostusta voidaan selata takaisinpäinkin.

mkdir aika ; date >aika/juurinyt.txt
Ensin tekee alihakemiston aika, tulostaa päiväyksen komennolla date ja ohjaa sen alihakemiston tiedostoon tervehdys.txt.

6. Ohjetiedostot ja -järjestelmät

Linuxin mukana tulee varsin kattava dokumentaatio, ongelmana onkin lähinnä löytää se ja osata käyttää sitä. Tavallisimpia avun lähteitä ovat manuaalisivut, ohjelmien omat dokumentit, komentoriviltä saatavat käyttöohjeet, HOWTO-tekstit ja internet.

man

Komennon man avulla voidaan hakea tietoa esim. halutun komennon käytöstä. Yksinkertaisimmillaan komento on muotoa man komento. Jos samalla nimellä löytyy useampia manuaalisivuja, voidaan niistä valita oikea antamalla sivun numero ensimmäisenä parametrina tyyliin man sivunumero komento. Manuaalisivuilta löytyy tavallisimmin apua komentojen käyttöön, järjestelmän asetustiedojen muokkaamiseen ja C-kielen funktioiden käyttöön.
Esimerkkejä:

man man
Näyttää man-komennon itsensä ohjeen. Hyödyllistä luettavaa.

man 2 exit
Näyttää toisen manuaalisivun aiheesta exit.

man -k login 
Näyttää luettelon kaikista manuaalisivuista, joissa on avainsana login. Luetteloa voi selata samoilla komennoilla kuin manuaalisivujakin. Komento apropos vastaa komentoa man -k.

Manuaalisivu jakaantuu osiin, joita ovat yleensä komennon nimi ja käyttötarkoitus, parametrit lyhyesti, parametrien tarkemmat selitykset, mahdollisten asetustiedostojen sisältö, ohjelman käyttämät tiedostot ja ympäristömuuttujat sekä luettelo muista aiheeseen liittyvistä manuaalisivuista.

Manuaalisivun selailussa voi käyttää seuraavia näppäimiä:


Xman

Graafinen liittymä manuaalisivuihin. Antaa valita manuaalisivun aiheittain jaotelluista luetteloista. Xman käynnistyy komennolla xman, ellei sitä löydy jo ikkunamanagerin valikoista.


Kuva 6.1 Xmanin pääikkuna

Ohjelmien oma dokumentaatio

Useimmat komennot antavat lyhyen kuvauksen parametreistaan tai ainakin luettelon niistä jos komennolle annetaan parametriksi --help. Tämä on GNU:n käytäntö. Varsinaiset ohjelman dokumentit asentuvat joko hakemistoon /usr/doc tai sitten ne ovat ohjelman omassa hakemistossa.

HOWTO-tekstit

Hakemistosta /usr/doc/HOWTO löytyy suuri määrä tekstimuotoisia ohjetiedostoja, joista on usein korvaamatonta apua järjestelmän asetusten kanssa. HOWTO- tekstit ovat syntyneet Linux Documentation Projectin (LDP) myötä. Teksteistä löytyy apua mm. laitteisto-ongelmiin, verkkopalveluiden asennukseen ja muihinkin järjestelmän osien konfigurointiin.
Esim. PPP-HOWTO - Ohjeita modeemi- ja muiden PPP-verkkoyhteyksien konfigurointiin.

7. Tiedoston ominaisuudet

Monen käyttäjän järjestelmissä tiedostojen suojaus on tärkeä ominaisuus tietoturvan kannalta. Unix ja niinollen myös Linux sisältää menetelmät tiedostojen erilaisten oikeuksien käsittelyyn. Tiedostoille ja hakemistoille voidaan määrätä omistaja, ryhmäomistaja ja niille oikeudet tiedoston erilaiseen käsittelyyn. Seuraavaksi tarkastellaan tarkemmin ls -komennolla saatuja tietoja muuan kuvatiedostosta:

-rw-r--r--   1 marq     users      153225 Jan 12  1998 kaunis.gif
Vasemmalta lukien nähdään tiedoston oikeusbitit, kovien linkkien määrä (ei järin tarpeellinen), omistaja, ryhmäomistaja, tiedoston koko tavuina, viimeisin muokkauspäivämäärä ja viimeisenä tiedostonimi.

chown ja chgrp

Komennoilla chown ja chgrp voidaan vaihtaa tiedoston omistajaa ja ryhmäomistajaa. Tavallinen käyttäjä ei voi vaihtaa tiedostojensa omistajaa ja ryhmäomistajaakin vain jos itse kuuluu kyseiseen ryhmään. Ylikäyttäjä voi vaihtaa tiedostojen omistajia ja ryhmäomistajia vapaasti. Vipu -R aiheuttaa rekursiivisen toiminnan eli kaikkien alihakemistojenkin oikeudet muutetaan.
Esimerkkejä:
chown root kaunis.gif
Vaihtaa tiedoston kaunis.gif omistajaksi ylikäyttäjän.

chgrp -R users /home/marq
Vaihtaa /home/marq -hakemiston ja sen alihakemistojen ja niiden sisältämien tiedostojen ryhmäomistajaksi ryhmän users.

Oikeusbitit

Tiedoston oikeudet sisältävä kenttä voidaan hajoittaa neljään kenttään: tyyppi, omistajan oikeudet, ryhmäoikeudet ja muiden oikeudet. Kentän ensimmäinen merkki kertoo tiedoston tyypin ja on tyhjä (-) tavallisille tiedostoille.
Muita tyypillisiä kirjaimia ovat:

Jokaisessa oikeuskentässä on kolme kohtaa, joilla voidaan määrätä tiedoston lukuoikeus (r), kirjoitusoikeus (w) ja suoritusoikeus (x). Tiedostoille lukuoikeus tarkoittaa oikeutta tarkastella tiedoston sisältöä, kirjoitusoikeus oikeutta muokata tiedostoa mutta ei poistaa sitä ja suoritusoikeus oikeutta käynnistää tiedosto (käytössä ohjelmilla ja komentojonoilla).

Mikäli tiedoston suoritusoikeuden kohdalla on s, se tarkoittaa, että tiedosto ajetaan tiedoston omistajan eikä käynnistäjän oikeuksin. Ominaisuus on joissakin harvoissa tilanteissa hyödyllinen tai jopa pakollinen, mutta huolimattomasti käytettynä vakava tietoturvariski.

Hakemiston oikeudet näkyvät listauksessa samanlaisina kuin tiedostonkin, mutta oikeuskentillä on hieman eri merkitykset. Lukuoikeus (r) tarkoittaa oikeutta lukea hakemistossa olevia tiedostoja, kirjoitusoikeus (w) oikeutta lisätä sekä poistaa tiedostoja ja suoritusoikeus (x) mahdollisuutta ottaa hakemistolistaus hakemistosta.

Hakemistojen kohdalla s-kirjaimella on hyödyllinen käyttötarkoitus: jos hakemiston ryhmäoikeuksissa on s-bitti päällä, niin kaikki sinne luotavat tiedostot saavat automaattisesti ryhmäomistajakseen kyseisen ryhmän. Ominaisuutta voidaan hyödyntää kun tehdään käyttäjäryhmille esim. projektihakemistoja.

chmod

Komennolla chmod voidaan muuttaa tiedostojen ja hakemistojen oikeusbittejä. Komennon yleinen muoto on chmod oikeudet tiedosto. Tiedostonimi voi sisältää normaaleja jokerimerkkejä ja vivulla -R voidaan käsitellä hakemistot rekursiivisesti kuten chown- ja chgrp -komennoillakin. Oikeudet sisältävä parametri koostuu kolmesta osasta: kenen oikeuksia muutetaan, miten muutetaan ja mitä oikeuksia muutetaan.

Parametrin ensimmäisen osan mahdolliset arvot ovat:

Toisessa osassa annetaan muutoksen tyyppi:

Kolmannessa osassa annetaan käsiteltävien oikeuksien kirjain kuten edellä esitettiin eli r, w, x tai s. S-bitti on hyödytön ilman x-bittiä, eli ne kannattaa asettaa kerralla. Kirjaimen puuttuminen tarkoittaa myös oikeuden puuttumista asetuksessa.
Esimerkkejä:

chmod a+rw linuxkurssi1.html
Lisää kaikille kirjoitus- ja lukuoikeudet tiedostoon linuxkurssi1.html.

chmod o= viiva.gif
Poistaa muilta kuin omistajalta ja ryhmäomistajalta kaikki oikeudet tiedostoon viiva.gif.

chmod g=rwxs /usr/projekti
Asettaa /usr/projekti -hakemiston oikeudet siten, että ryhmällä on sinne kaikki oikeudet ja sinne luotujen tiedostojen ryhmäoikeus asetetaan hakemiston ryhmäomistajaksi automaattisesti. Hyödyllinen esim. projektiryhmän hakemistojen kanssa käytettynä.