Käyttäjätunnukset

Linuxissa, kuten Unixeissa yleensä, on käyttäjähallinta toteutettu käyttäjätunnuksilla ja käyttäjäryhmillä.

Käyttäjätunnukset

Käyttäjätunnus on tekstimuotoinen "lempinimi" käyttäjälle. Käyttäjä kirjautuu järjestelmään käyttäjätunnuksella ja salasanalla.

Järjestelmän sisäisesti käyttäjät tunnistetaan käyttäjänumerolla (uid, User id) ja kukin ihmisten luettavaksi tarkoitettu käyttäjätunnus on kytketty johonkin käyttäjänumeroon. Tiedostossa /etc/passwd on lueteltu vastaavuus käyttäjänimien ja -numeroiden välillä. Lisäksi tiedostossa on muun muassa tieto käyttäjän koko nimestä, kotihakemistosta ja käyttäjän oletus komentotulkki. Kunkin käyttäjän tiedot ovat tiedostossa yhdellä rivillä. Tiedoston rivit ovat muotoa:

pesasa:x:1000:1000:Petri Salmela,,,:/home/pesasa:/bin/bash

Käyttäjien salasanat on oletuksena tallennettu "tiivisteinä" tiedostoon /etc/shadow. Tässä tiedostossa rivit ovat muotoa:

pesasa:$6$mE/6BCoS$oV7b2d2//73dGtKHL.G9ezHgFQ9/kJcJVmqiP8YRiS7T76uRxU3oxx0P/uuYfwtgHxd4/1015dFRB.wJNYhI/.:15595:0:99999:7:::

Käyttäjäryhmät

Käyttäjille voidaan antaa oikeuksia erilaisiin toimintoihin liittämällä heidät ryhmiin, joilla on kyseinen oikeus. Esimerkiksi Ubuntu-pohjaisissa järjestelmissä ylläpitäjät ovat ryhmässä nimeltä sudo.

Käyttäjä voi olla yhtä aikaa useammassa ryhmässä. Järjestelmä tunnistaa käyttäjäryhmän sisäisesti ryhmän numerolla (gid, Group id). Ryhmän nimen ja numeron välinen kytkentä löytyy tiedostosta /etc/group. Tiedostossa on yksi rivi per ryhmä ja samalla rivillä luetellaan lisäksi kaikki kyseiseen ryhmään kuuluvat käyttäjät.

Tiedoston rivit ovat muotoa:

audio:x:29:pulse,timidity

Käyttäjätunnuksen ja ryhmän avulla käyttäjälle voidaan antaa oikeuksia toimintoihin ja tiedostoihin.

Käyttäjätunnuksesta ja ryhmistä saa tietoa komentorivillä komennolla id. Esimerkiksi:

$ id
uid=1000(pesasa) gid=1000(pesasa) ryhmät=1000(pesasa),4(adm),7(lp),24(cdrom),27(sudo),30(dip),46(plugdev),115(lpadmin),130(sambashare)

Tulosteessa kerrotaan käyttäjän uid ja käyttäjätunnus sekä ryhmät, jossa käyttäjä on, ryhmänumeroina ja -niminä.

Pääkäyttäjä

Unix-tyyppisissä järjestelmissä on ylin ylläpitovalta on pääkäyttäjällä, jonka käyttäjätunnus on root ja jonka käyttäjänumero on 0. root-käyttäjällä on täysi oikeus tehdä järjestelmässä mitä tahansa. Normaalisti tavallinen järjestelmän käyttö tehdään tavallisella ei-root-tunnuksella ja root-tunnuksella tehdään vain välttämättömät ylläpitotoimet. Joissain Linux-jakeluissa on sisäänkirjautuminen root-tunnuksella estetty kokonaan ja ylläpitotehtävät suoritetaan tavallisena käyttäjänä, mutta erillistä sudo-komentoa käyttäen.

Sudo

Monissa Linux-jakeluissa on käytettävissä sudo-komento, jolla tavallinen käyttäjä voi suorittaa ylläpitotoimia käyttäen väliaikaisesti root-käyttäjän oikeuksia. Komennon nimi tulee sanoista super user do, eli "tee pääkäyttäjän oikeuksilla". Tämän komennon käyttö edellyttää, että käyttäjälle on annettu oikeus sen käyttöön ja määritelty, mitä toimintoja sillä saa tehdä. Tyypillisesti sudo-komennon rajoittamaton käyttöoikeus on annettu niille käyttäjille, jotka ovat jossain ylläpitäjille tarkoitetussa ryhmässä. Ubuntussa ja sen johdannaisissa tämä ryhmä on tyypillisesti sudo, RedHatin ja Fedoran johdannaisissa puolestaan wheel.

Ylläpitokomentoja annettaessa niiden eteen laitetaan sudo-komento, jolloin järjestelmä tietää, että ne pitää yrittää suorittaa root-käyttäjänä. Esimerkiksi ohjelman Inkscape asennus Ubuntussa tapahtuu seuraavalla komennolla:

sudo apt-get install inkscape

Tämän jälkeen sudo varmistaa käyttäjän henkilöllisyyden kysymällä tämän omaa salasanaa. Jos salasanan kirjoittaa oikein ja käyttäjällä oli oikeus sudo-komennon käyttöön, suoritetaan käsketty toiminto root-käyttäjänä. Onnistuneen salasanatunnistautumisen sudo muistaa oletuksena seuraavat 15 minuuttia eikä kysy tänä aikana salasanaa uudelleen uusien sudo-komentojen yhteydessä.

Yksi suurimmista hyödyistä sudo-komennon käytöstä verrattuna root-käyttäjänä kirjautumiseen on se, että ylläpito-oikeuksia voidaan antaa useammalle ylläpitäjälle niin, että he tekevät ylläpitotoimet kuitenkin omalla identiteetillään ja salasanallaan. Näin vältytään yhteisen root-tunnuksen ja salasanan käytöltä. Käytetyistä sudo-komennoista pidetään kirjaa, jolloin tiedetään, kuka on tehnyt mitäkin. Lisäksi sudo-komennolla voidaan käyttäjälle antaa oikeuksia hienovaraisemmin kuin vain "kaikki root-käyttäjän oikeudet". Käyttäjälle voidaan siis antaa vain rajoitetut ylläpito-oikeudet johonkin järjestelmän osaan.

Käyttäjän lisääminen

Käyttäjätunnuksia lisätään, poistetaan ja muokataan User Accounts -työkalulla.

Ubuntun järjestelmäasetukset

Käyttäjätunnuksia lisätään, poistetaan ja muokataan User Accounts -työkalulla.

Käyttäjätunnuksen lisääminen

Salasanan asettaminen

Ubuntussa ja monessa muussa Linux-järjestelmässä käyttäjä, jolla on ylläpito-oikeudet, voi lisätä ja poistaa käyttäjiä asetustyökalun käyttäjienhallinnalla.

Työkalun lukitus avataan käyttäjän omalla salasanalla, jotta saadaan käyttöön ylläpito-oikeudet. Uutta käyttäjää lisättäessä:

  • Valitaan uuden käyttäjän tyyppi (Standard / Administrator)
    • Käyttäjä lisätään tyypin mukaan tiettyihin ryhmiin.
    • Standard: vain saman niminen ryhmä kuin käyttäjätunnus
    • Administrator: lisäksi ryhmä sudo
  • Annetaan salasana joko käsin syötettynä tai automaattisesti generoituna.
  • Valitaan, halutaanko Automatic login, eli halutaanko, että järjestelmä kirjautuu käynnistymisen jälkeen suoraan sisään tällä tunnuksella.

Myöhemmin kurssilla käsitellään käyttäjätunnusten hallintaa komentoriviltä käsin.