<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fi">
	<id>https://www.linux.fi/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jem</id>
	<title>Linux.fi - Käyttäjän muokkaukset [fi]</title>
	<link rel="self" type="application/atom+xml" href="https://www.linux.fi/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jem"/>
	<link rel="alternate" type="text/html" href="https://www.linux.fi/wiki/Toiminnot:Muokkaukset/Jem"/>
	<updated>2026-06-09T21:07:15Z</updated>
	<subtitle>Käyttäjän muokkaukset</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=HST&amp;diff=47905</id>
		<title>HST</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=HST&amp;diff=47905"/>
		<updated>2017-11-15T14:49:41Z</updated>

		<summary type="html">&lt;p&gt;Jem: Kumottu muokkaus 47904, jonka teki Jem (keskustelu) Väärä hälytys, sori siitä.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Väestörekisterikeskus tarjoaa Suomessa  [http://www.vaestorekisterikeskus.fi/default.aspx?id=134 henkilön sähköisen tunnistamisen] (&#039;&#039;HST, eng FINEID&#039;&#039;) ratkaisua sirullisella henkilökortilla. Kortin myöntää poliisi. Henkilökortilla on [[wikipedia:fi:PKI|julkisen avaimen menetelmään]] perustuva laatuvarmenne. Varmenteen avulla voi tunnistautua, allekirjoittaa ja salata dokumentteja ja viestiliikennettä.&lt;br /&gt;
&lt;br /&gt;
HST-kortin etuina on vahvan salauksen käyttö yhdistettynä vaatimukseen fyysisen esineen (&amp;quot;token&amp;quot;) hallussapitoon. Toisin sanoen, niin kauan kuin esine (kortti) on hallussasi, kukaan ei pysty käyttämään väärin korttiin liittyvää sähköistä identiteettiä. Kortti on maksukortin kokoinen, helposti mukana pidettävä ja sen käyttö on suojattu PIN-koodilla. PIN-koodi on aina sama, riippumatta mihin palveluun kortilla tunnistaudutaan.&lt;br /&gt;
&lt;br /&gt;
== Peruskäyttäjän tehtävälista ==&lt;br /&gt;
&lt;br /&gt;
Vaikka sivulla on paljon asiaa, ei tämä oikeasti niin vaikeaa ole, lyhyesti:&lt;br /&gt;
&lt;br /&gt;
# Hanki henkilökortti. Sitä voi anoa&lt;br /&gt;
#* paikalliselta poliisilta, toimitusaika kaksi vkoa.&lt;br /&gt;
#* [https://poliisi.fi/henkilokortti/henkilokortin_hakeminen Poliisin sähköisessä asiointipalvelussa] mikäli käytössä on pankkitunnukset tai mobiilivarmenne tai voimassaoleva henkilökortti. Vaatii valokuvaamolta saatavan kuvatunnuksen.&lt;br /&gt;
# Hanki kortin lukijalaite, tarkasta tuetut mallit ennen ostamista.&lt;br /&gt;
# Tutustu Linux-jakelukohtaisiin ohjeisiin mahdollisten lisäohjelmistojen asentamiseksi (lisätietoja alla).&lt;br /&gt;
# Tarvittaessa asenna vaaditut paketit ja konfiguroi ne (lähinnä vanhat lukijat).&lt;br /&gt;
# Käy tarvitsemasi sovellukset läpi ([[HST#Firefox_2|Firefox]] jne) ja konfiguroi ne.&lt;br /&gt;
# Testaa ja käytä. Testaamiseen voit käyttää  [http://fineid.fi/default.aspx?docid=2245&amp;amp;site=9&amp;amp;id=0 fineid.fi testisivua].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Huom! Poliisilla käyvälle:&#039;&#039;&#039; Varmista kun anot korttia, että virkailija täyttää hakemukseen myös sähköpostiosoitteesi &amp;amp;ndash; oletuksena hän jättää tämän kentän tyhjäksi, jolloin sähköpostiosoitetta ei tule varmenteeseen. Osoite varmenteessa ei ole välttämätön kun korttia käytetään tunnistautumiseen, mutta siitä voi olla hyötyä sähköpostin salauksessa ja se kuuluu kortin hintaan.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Huom! Verkosta haettaessa:&#039;&#039;&#039; Mikäli haluat henkilökorttiisi Kela-tiedot (viivakoodi taakse), pyydä sitä kun käyt allekirjoittamassa henkilökortin, verkkohakemuksesta puuttuu kohta sille, mutta allekirjoittaessa se voidaan lisätä.&lt;br /&gt;
&lt;br /&gt;
== Laitteet ==&lt;br /&gt;
&lt;br /&gt;
Korttia varten tarvitaan kortinlukija ja lukijaan sopiva ajuri. Lukijoita on pääasiassa kahta tyyppiä. Ulkoinen, tyypillisesti USB-väylään liitettävä lukija, sekä joissakin kannettavissa tietokoneissa oleva sisäinen lukija. Toiset esim kannettavan tietokoneen laajennuskorttipaikkaan sopivat lukijat näkyvät USB-väylässä ja toimivat sen mukaisesti. Hinnat vaihtelevat mallista ja ostopaikasta riippuen, nykyaikaisen USB-lukijan hinta vaihtelee kuuden ja 25 euron välillä.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&lt;br /&gt;
[[Tiedosto:Cm 3021 190px.jpg]][[Tiedosto:CardMan4321 190px.jpg]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lukijalaitteita on myös omalla fyysisellä näppäimistöllä varustettuna jota käytetään pin-koodien syöttämiseen. Tällöin koodeja käsitellään ainoastaan lukijassa eivätkä ne siten altistu mahdollisille tietokoneen haittaohjelmille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Nykyaikaiset lukijat ==== &lt;br /&gt;
&lt;br /&gt;
Kun on hankkimassa USB-lukijaa, kannattaa valita ns. &#039;&#039;CCID&#039;&#039; (Circuit Card Interface Device) -speksin mukainen lukija. CCID on USB-väylän yhteyteen määritelty ns. Device Class -määrittely, joka määrittelee yhteisen protokollan eri valmistajien USB-lukijoille. &lt;br /&gt;
&lt;br /&gt;
Esimerkkejä CCID-protokollan mukaisista lukijoista ovat:&lt;br /&gt;
&lt;br /&gt;
* [http://www.hidglobal.com/omnikey/ Omnikey] 1021, 3021, 3121, 4321 ym (4040 varauksella).&lt;br /&gt;
* [http://www.scmmicro.com/security/view_product_en.php?PID=4 SCM SCR 3310]&lt;br /&gt;
* Dellin tiettyjen USB-näppäimistömallien integroidut lukijat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Vanhemmat lukijat ==== &lt;br /&gt;
&lt;br /&gt;
Aikanaan valtaosa ensimmäisistä älykorttilukijoista oli RS-232 pohjaisia ja siten niiden käyttöönotto oli myös hieman työläämpää. Ensimmäiset USB-lukijat olivat myös RS-232 laitteita, niissä oli vain sisäinen USB-RS232 adapteripiiri (usein Prolific PL2303, pl2303 ajuri) joten laite lopulta näkyy yhtenä ttyUSB&amp;lt;n&amp;gt;-laitteena ajurinsa perusteella ja pitää siten ottaa käsin käyttöön.&lt;br /&gt;
&lt;br /&gt;
Ennen USB-laitteiden CCID-määrittelyn valmistumista jokainen valmistaja käytti omaa protokollaa; näitä vanhempia lukijoita näkee vielä silloin tällöin.&lt;br /&gt;
&lt;br /&gt;
* Towitoko ChipdDrive-micro 130 - USB-RS232 emulaatiolla oleva ihan toimiva lukija jos jakelu tukee.&lt;br /&gt;
* Towitoko ChipDrive Extern 330 - Sama sähköisesti kuin ChipDrive-micro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tietyt lukijalaitteiden brändit ovat vaihtuneet kun firmat ovat ostelleet toisiaan.&lt;br /&gt;
&lt;br /&gt;
=== Towitoko ChipDrive ===&lt;br /&gt;
&lt;br /&gt;
[[Tiedosto:Towitoko.chipdrive.JPG]]&lt;br /&gt;
&lt;br /&gt;
Ei asennu automaattisesti, tehtävä seuraavat toimenpiteet käsin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;openct&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Poista &amp;lt;code&amp;gt;/etc/openct.conf&amp;lt;/code&amp;gt; tiedostosta kommentointi seuraavan lohkon osalta:&lt;br /&gt;
  #reader towitoko {&lt;br /&gt;
  #       driver = towitoko;&lt;br /&gt;
  #       device = serial:/dev/ttyS0;&lt;br /&gt;
  #};&lt;br /&gt;
&lt;br /&gt;
Varmistu, että &#039;&#039;device&#039;&#039; osoittaa oikeaan laitteeseen. (esim ttyUSB0). Käynnistä openct palvelu uudelleen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pcscd&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
?&lt;br /&gt;
&lt;br /&gt;
== Ohjelmistot ==&lt;br /&gt;
&lt;br /&gt;
===  Arkkitehtuuri ===&lt;br /&gt;
&lt;br /&gt;
Sovellusohjelma tarvitsee ohjelmointirajapinnan (API) pystyäkseen keskustelemaan älykortin kanssa. RSA Laboratories on määritellyt C-ohjelmointirajapinnan niin sanotuille kryptograafisille tokeneille nimeltä &#039;&#039;[http://www.cryptsoft.com/pkcs11doc/v230/ PKCS#11]&#039;&#039;. Se on 11. osa RSA Laboratoriesin sarjassa Public Key Cryptography Standards ja tunnetaan myös lempinimellä &#039;&#039;Cryptoki&#039;&#039; (väännös sanoista Cryptographic Token Interface). Cryptoki on tyypillisesti toteutettu ns. pluginina (.so-tiedosto). Useampi sovellus voi käyttää Cryptoki-rajapintaa rinnakkain; kirjaston tehtävänä on synkronoida pääsy yksittäiselle tokenille. Cryptoki pystyy myös hallitsemaan useampaa järjestelmään liitettyä tokenia. OpenSC-ohjelmisto sisältää Cryptoki-toteutuksen jaettuna kirjastona nimellä opensc-pkcs11.so.&lt;br /&gt;
&lt;br /&gt;
PKCS#11-kirjaston ja lukijan välille tarvitaan vielä ns. middleware, josta on avoimena lähdekoodina kaksi vaihtoehtoista toteutusta: &#039;&#039;PCSC-lite&#039;&#039; tai &#039;&#039;OpenCT&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PC/SC&#039;&#039;&#039; (Personal Computer/Smart Card) on alun perin Microsoftilta tullut aloite, joka määrittelee yhtenäisen, laitteistosta riippumattoman, rajapinnan älykorteille. PC/SC:n ja Cryptokin erona on, että PC/SC määrittelee alemman tason rajapinnan älykorteille yleensä, kun taas Cryptoki määrittelee rajapinnan julkisen avaimen cryptotokeneille, jotka eivät välttämättä ole edes toteutettu älykortteina.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OpenCT&#039;&#039;&#039; on OpenSC:n kehittäjien kehittämä &amp;quot;liima&amp;quot; ylemmän tason Cryptoki-kirjaston ja laitteiston välillä. OpenCT on suoraviivaisempi vaihtoehto PC/SC:lle. Se pystyy käsittelemään lukijoita suoraan, kun taas PC/SC (PCSC-lite) tarvitsee erikseen vielä lukijalle ajurin. USB-lukijoilla käytetään &#039;&#039;CCID&#039;&#039;-ajuria. Toisaalta OpenCT ei toteuta PC/SC-rajapintaa, joten sitä ei voi käyttää jos sovellus on kirjoitettu käyttämään PC/SC-rajapintaa. Nykyään sen kehitys on pysähtynyt ja siten laitteisto- ja yhteisötuki on heikentynyt.&lt;br /&gt;
&lt;br /&gt;
Alla on esitetty kaavioina yllä mainitut kaksi ohjelmistovaihtoehtoa:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Tiedosto:openct.png]]   &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;   [[Tiedosto:pcsc-lite.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ajurit ja middleware===&lt;br /&gt;
&lt;br /&gt;
Kortin käyttö edellyttää kortinlukijaa sekä asennettua kortinlukijaohjelmistoa. Ohjelmistoksi on olemassa kaksi rinnakkaista vaihtoehtoa:&lt;br /&gt;
* Avoin &#039;&#039;OpenSC&#039;&#039; sekä siihen liittyvät työkalut ja kirjastot&lt;br /&gt;
* Kaupallinen &#039;&#039;mPollux Digisign Client&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====OpenSC====&lt;br /&gt;
&lt;br /&gt;
Avoimessa projektissa kehitettävä [http://www.opensc-project.org/ OpenSC]-ohjelmisto on maailmanlaajuisesti käytössä oleva älykorttiohjelmisto. Se tukeutuu yleensä &lt;br /&gt;
[http://pcsclite.alioth.debian.org/ pcsc-lite] laitteistorajapintaan joka toteuttaa PC/SC määritykset. Projektin oma vastaava rajapinta [http://www.opensc-project.org/openct/ openct] on nykyään jo harvemmin käytössä.&lt;br /&gt;
&lt;br /&gt;
Joissakin Linux-jakeluissa on älykorttien käsittely on integroitu toimivaksi kokonaisuudeksi, joiden käyttöönotto parhaimmillaan edellyttää ainoastaan lukijan kytkentää ja WWW-selaimen asetusten asettamista.&lt;br /&gt;
&lt;br /&gt;
==== mPollux Digisign Client ====&lt;br /&gt;
&lt;br /&gt;
Väestörekisterikeskus tarjoaa maksutta Fujitsu Services Oy:n [https://eevertti.vrk.fi/Default.aspx?id=247 mPollux Digisign Client] -kortinlukijaohjelmiston henkilökortin käyttäjille. VRK:n WWW-sivuilta on mahdollista ladata ohjelmisto RHELille, Suselle ja Ubuntulle 32- ja 64-bittisenä versioina. Paketit toiminevat myös monissa niille sukua olevissa jakeluissa.&lt;br /&gt;
&lt;br /&gt;
Ohjelmistosta joulukuussa 2011 julkistettu 64-bittinen versio, mutta sitä ei tiettävästi ole saatavilla minkään Linux-jakelun virallisesta paketinhallinnasta. Käyttäjän tulee huolehtia päivityksistä manuaalisesti kyläilemällä Väestörekisterikeskuksen sivuilla säännöllisesti. mPollux-ohjelmistosta ei ole lähdekoodia saatavilla.&lt;br /&gt;
&lt;br /&gt;
===Sovellusohjelmien tuki===&lt;br /&gt;
&lt;br /&gt;
Sovellustuki voi olla joko suora tai perustua kirjastoon joka on säädetty tukemaan kortinlukijaa ja sen varmenteita.&lt;br /&gt;
&lt;br /&gt;
==== Firefox ====&lt;br /&gt;
&lt;br /&gt;
Palvelun niin vaatiessa, mahdollisuus muodostaa ns client-side varmennetta vaativa SSL-yhteys jossa palvelupää tunnistaa selaimen käyttäjän kortin esimmäisellä varmenteella. Tällöin käyttäjän tiedot löydetään palvelun tietokannoista sähköisellä asiointitunnuksella.&lt;br /&gt;
&lt;br /&gt;
Palvelu voi pyytää käyttäjää allekirjoittamaan sisältöä kortin toisella varmenteella. Teknisiä toteutustapoja on lukuisia ja erityisesti vanhat Java-pohjaiset toimivat huonosti. Uusimmat toteutukset käyttävät C-kielellä toteutettua selaimen pluginia joka tulee asentaa käyttäjän tietokoneeseen ennen palvelun käyttöä.&lt;br /&gt;
&lt;br /&gt;
==== Opera ====&lt;br /&gt;
&lt;br /&gt;
Selain (versio 11.60) ei tue pkcs#11 moduleita eikä siten myös älykortteja.&lt;br /&gt;
&lt;br /&gt;
==== PAM ====&lt;br /&gt;
&lt;br /&gt;
PAM (&#039;&#039;Pluggable Authentication Module&#039;&#039;) on asetettavissa tunnistamaan tietokoneeseen kirjautuja henkilökortin varmenteella. Tämä mahdollistaa kirjautumisen salasanan asemasta tai niiden rinnakkaisen käytön. Asetukset ja niiden määrittäminen on jakelukohtaisia. Toimiessaan PAM-tasolla, korttituki toimii niin merkkipohjaisessa kuin graafisessa sisäänkirjautumisessa.&lt;br /&gt;
&lt;br /&gt;
==== Ssh ====&lt;br /&gt;
&lt;br /&gt;
OpenSSH tukee henkilökortin käyttöä autentikointiin PKCS#11-rajapinnan kautta. Kortin sisältämän avainparin julkinen osa siirretään niille ssh-palvelimille, joihin halutaan olla yhteydessä. SSH-asiakasohjelma pystyy käyttämään kortilla olevaa salaista osaa kättelyssä palvelimen kanssa. Avainten hallintaan käytetään OpenSSH:n mukana tulevia &#039;&#039;&#039;ssh-agent&#039;&#039;&#039; ja &#039;&#039;&#039;ssh-add&#039;&#039;&#039; apuohjelmia.&lt;br /&gt;
&lt;br /&gt;
ssh-agent on ohjelma, joka säilöö ohjelman ajon ajaksi privaatteja salausavaimia ajomuistiin ssh-ohjelman käyttöön, mutta siinä on myös tuki opensc-pkcs11 pluginille. Tällöin niitä ei ladata muistiin, vaan vain viitataan kortilla olevaa avaimeen kirjaston rajapinnan kautta.&lt;br /&gt;
&lt;br /&gt;
Korttia pystyy käyttämään OpenSSH:n komentoriviohjelmien (&#039;&#039;ssh&#039;&#039;, &#039;&#039;scp&#039;&#039;, &#039;&#039;sftp&#039;&#039;) lisäksi ohjelmien kanssa, jotka käyttävät ssh:ta siirtotienään. Esimerkki tällaisesta ohjelmistosta on versionhallintajärjestelmä &#039;&#039;git&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== OpenOffice.org ====&lt;br /&gt;
&lt;br /&gt;
Dokumentteja on mahdollista allekirjoittaa kortin ensimmäisellä tunnistus-varmenteella. Tuki on ohjelmaan sisäänrakennettu eikä vaadi erillistä säätämistä toimiakseen, jos muu korttituki toimii.&lt;br /&gt;
&lt;br /&gt;
==== qDigiDoc ====&lt;br /&gt;
&lt;br /&gt;
Graafinen työkalu DigiDoc-määrityksen mukaisten digitaalisten säiliöiden (&#039;&#039;eng container&#039;&#039; ) luomiseen ja käsittelyyn. Varmenteella voi allekirjoittaa ja/tai salata säiliön sisällön. Sisältö voi olla mitä tiedostoja tahansa. Ohjelmisto on kehitetty Virossa ja on yhteiskunnassa laajalti käytetty ja hyväksytty sovellus, merkittävin henkilökortin käyttökohde WWW-tunnistamisen rinnalla. Ohjelmasta voi lukea lisää sen omalta [[qDigiDoc]] sivulta.&lt;br /&gt;
&lt;br /&gt;
==== Lähiverkon pääsynvalvonta - 802.1x ====&lt;br /&gt;
&lt;br /&gt;
IEEE:n standardi [http://en.wikipedia.org/wiki/802.1x 802.1x] määrittelee langallisen ja langattoman lähiverkon pääsynvalvontamekanismeja. Tämä mahdollistaa tekniikkaan tukevan lähiverkkolaitteen asettamisen tunnistamaan liikennöijän jo OSI-tasolla 2 (lähiverkon rautaprotokolla) ja haluttaessa sallimaan tai estämään liikennöinnin. &lt;br /&gt;
Käytettäessä [http://en.wikipedia.org/wiki/Extensible_Authentication_Protocol#EAP-TLS EAP-TLS] (&#039;&#039;Extensible Authentication Protocol - Transport Layer Security&#039;&#039;) asetusta, verkkoon liittyjä tunnistetaan varmenteella joka voidaan lukea älykortilta ja pääsynvalvontatiedot saadaan verkon yli RADIUS-palvelulta. Wikipedian mukaan EAP-TLS ratkaisu on yksi turvallisimmista mahdollisista käytettäessä älykorttia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Gnupg ohjelmat ====&lt;br /&gt;
&lt;br /&gt;
Gnupg:ssä on älykorttituki, mutta se vaatii sille itselleen kirjoitetun sovelluksen kortilta (eikä Suomen henkilökortti ole tälläinen). Näitä kortteja on tällä tietämyksellä  markkinoilla kaksi eri tyyppistä eikä niitä käytetä kansalaisvarmenteina, vaan avainparit luodaan korteille itse ja niiden merkitys on sen mukainen. Arkkitehtuuri on seuraava:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;gpg-agent&#039;&#039;&#039; käynnistyy käyttäjän istuntoon taustalle ja viestii eri prosessien kanssa (vastaa ssh-agent palvelua)&lt;br /&gt;
* &#039;&#039;&#039;scdaemon&#039;&#039;&#039; palvelu käynnistyy tarvittaessa gpg-agentin käynnistämänä ja käsittelee älykortteja pcscd-palvelun läpi.&lt;br /&gt;
* &#039;&#039;&#039;gpg2&#039;&#039;&#039; ja &#039;&#039;&#039;gpgsm&#039;&#039;&#039; toimivat asiakasohjelmina joko suoraan tai muiden käyttöliittymien käynnistäminä.&lt;br /&gt;
&lt;br /&gt;
Käyttäjäyhteisö ja kehittäjät ovat keskustelleet aiheesta aika-ajoin, mutta kehittäjien näkökanta on määrännyt tilanteen eikä varsinaista muutosta tilanteeseen ole tullut vuosiin. Erimielisyyttä on yritetty kiertää korvaamalla scdaemon prosessi vastaavalla jossa on opensc-pkcs11 tuki. Korvaavan taustapalvelun nimi on &#039;&#039;&#039;gnupg-pkcs11-scd&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== KDE ja PKCS#11 ====&lt;br /&gt;
&lt;br /&gt;
KDE työpöytäympäristön  tilanne kansallisten varmennekorttien käyttäjille ei ole hyvä. Työpöydän kehittäjät edustavat leiriä jossa RSA-Laboratorion PKCS määritykset nähdään vapaiden ohjelmistojen kilpailijoina ja niitä ei haluta tukea. KDE ympäristössä varmennetuki pohjautuu ainoastaan [[Gnupg]] ohjelmiston päälle rakennettuun &#039;&#039;&#039;Kleopatra&#039;&#039;&#039; varmennehallinta-sovellukseen ja yksittäisiin sovelluksiin joissa on Gnupg tuki. Kleopatralla voi jonkun verran hallita varmenteita ja se tunnistaa myös X.509 varmenteet joita voi siihen lisätä, mutta ohjelma ei suoraan tue opensc:n pkcs11-pluginia joka mahdollistaa X.509-tyyppisten varmenteiden käytön älykortilta.&lt;br /&gt;
&lt;br /&gt;
Gnupg-yhteensopivia sovelluksia ovat KMail sähköposti, Kaddressbook-osoitekirja ja Kgpg salaus ja allekirjoitustyökalu. Gnupg-ohjelmilla omat asetustiedostonsa joita Kleopatra muuttaa käynnistyessään yrittääkseen varmistaa toimivuuden.&lt;br /&gt;
&lt;br /&gt;
Henkilökortin käyttäjän näkökulmasta tilanne on sekava. Jos kortti on ylipäätään mahdollista saada toimimaan KDE-ohjelmissa, sen asettelu on lievästi sanottuna vaikeaa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OpenSC-sivustolla on [http://www.opensc-project.org/opensc/wiki/ApplicationSupport pitkä lista] erillaisista ohjelmistojen tuesta varmenteille.&lt;br /&gt;
&lt;br /&gt;
=== Apuohjelmat ===&lt;br /&gt;
&lt;br /&gt;
Tähän osioon on kerätty ohjelmat, joita ei normaalissa kortin käytössä tarvita, mutta voivat olla hyödyksi vianetsinnässä, PIN-koodien vaihdossa ja yleisen mielenkiinnon vuoksi. Ohjelmat pkcs11-tool ja pkcs15-tool löytyvät OpenSC-paketista.&lt;br /&gt;
&lt;br /&gt;
==== Korttipaikkojen listaus ====&lt;br /&gt;
  $ pkcs11-tool --module opensc-pkcs11.so -L&lt;br /&gt;
  Slot 8           OmniKey CardMan 3121 00 00&lt;br /&gt;
    token label:   HENKILOKORTTI (perustunnusluku)&lt;br /&gt;
    token manuf:   VRK-FINEID&lt;br /&gt;
    token model:   PKCS#15&lt;br /&gt;
    token flags:   login required, PIN initialized, token initialized&lt;br /&gt;
    serial num  :  4600015034197296&lt;br /&gt;
  Slot 9           OmniKey CardMan 3121 00 00&lt;br /&gt;
    token label:   HENKILOKORTTI (allekirjoitustunn&lt;br /&gt;
    token manuf:   VRK-FINEID&lt;br /&gt;
    token model:   PKCS#15&lt;br /&gt;
    token flags:   login required, PIN initialized, token initialized&lt;br /&gt;
    serial num  :  4600015034197296&lt;br /&gt;
&lt;br /&gt;
==== Varmenteiden listaus ====&lt;br /&gt;
  $ pkcs15-tool -c&lt;br /&gt;
  Using reader with a card: OmniKey CardMan 3121 00 00&lt;br /&gt;
  X.509 Certificate [todentamis- ja salausvarmenne]&lt;br /&gt;
          Flags    : 0&lt;br /&gt;
          Authority: no&lt;br /&gt;
          Path     : 3f004331&lt;br /&gt;
          ID       : 45&lt;br /&gt;
  &lt;br /&gt;
  X.509 Certificate [allekirjoitusvarmenne]&lt;br /&gt;
          Flags    : 0&lt;br /&gt;
          Authority: no&lt;br /&gt;
          Path     : 3f0050164332&lt;br /&gt;
          ID       : 46&lt;br /&gt;
  &lt;br /&gt;
  X.509 Certificate [VRK Gov. Root CA]&lt;br /&gt;
          Flags    : 0&lt;br /&gt;
          Authority: yes&lt;br /&gt;
          Path     : 3f004334&lt;br /&gt;
          ID       : 48&lt;br /&gt;
  &lt;br /&gt;
  X.509 Certificate [VRK Gov. CA for Citizen Qualified Certificates]&lt;br /&gt;
          Flags    : 0&lt;br /&gt;
          Authority: yes&lt;br /&gt;
          Path     : 3f004333&lt;br /&gt;
          ID       : 47&lt;br /&gt;
&lt;br /&gt;
==== PIN koodin vaihto ====&lt;br /&gt;
&lt;br /&gt;
==== PUK koodin käyttö ====&lt;br /&gt;
&lt;br /&gt;
PUK (&#039;&#039;pin unblock key&#039;&#039;) koodia tarvitaan jos kortti menee jumiin esimerkiksi liian monesta epäonnistuneesta varmenteen käyttöyrityksestä. Koodin voi antaa joko komentorivioptiona (selkeämpi kirjoittaa) tai syöttää sen interaktiivisesti. Vivulla &#039;&#039;&#039;-a&#039;&#039;&#039; määritellään mitä pin-koodia ollaan vaihtamassa, numero yksi tarkoittaa ensimmäistä koodia.&lt;br /&gt;
  $ pkcs15-tool --unblock-pin --puk 12345678 -a 1&lt;br /&gt;
  Using reader with a card: OmniKey CardMan 1021 01 00&lt;br /&gt;
  Enter new PIN [PIN1]: ****&lt;br /&gt;
  Enter new PIN again [PIN1]: ****&lt;br /&gt;
&lt;br /&gt;
==== CA-varmenteiden lukeminen kortilta ====&lt;br /&gt;
&lt;br /&gt;
Henkilökortilla on Väestörekisterikeskuksen juuri- ja kansalais- eli ns CA-varmenteet. CA-varmennetta tarvittaessa, järkevintä on ottaa se henkilökortilta eikä ladata verkosta jotta ei altistu teoreettiselle ns [http://fi.wikipedia.org/wiki/Man-in-the-middle_attack &#039;&#039;man-in-the-middle&#039;&#039;] hyökkäykselle. Valtaosa on saanut korttinsa suoraan poliisilta jolloin voidaan olla suhteellisen varmoja, ettei varmennetta tai korttia ole väärennetty. Jos sovellus ei tue varmenteiden ketjutusta, tulee käyttää sitä CA-varmennetta jolla itse osapuolen varmenne on allekirjoitettu. Muussa tapauksessa juurivarmenne riittää.&lt;br /&gt;
&lt;br /&gt;
Varmenteen saa kopioitua kortilta tiedostoon käyttäen &#039;&#039;&#039;-r&#039;&#039;&#039; vipua ja varmenteen &#039;&#039;id-numeroa&#039;&#039;. Yhdistettynä nämä yhdeksi komennoksi:&lt;br /&gt;
&lt;br /&gt;
  $ pkcs15-tool -r $(pkcs15-tool -c|grep  -A4 &amp;quot;Root&amp;quot;|grep ID|cut -d: -f2) &amp;gt; vrkrootca.pem&lt;br /&gt;
&lt;br /&gt;
Yllä itse varmenne luetaan kortilta ja tulos ohjataan tiedostoon. Tiedostoa voi käyttää sellaisenaan esim WWW-selaimessa tai Apache-httpd palvelimessa.&lt;br /&gt;
&lt;br /&gt;
==== Yhteiskäyttö ja Opensc &amp;lt;= 0.11 ====&lt;br /&gt;
&lt;br /&gt;
Jotkin sovellukset vaativat kortin yhtäaikaista käyttöä (esim https tunnistus ja pin2 allekirjoitus sen yhteyden aikana). Tämä saattaa olla oletuksen estetty &amp;lt;code&amp;gt;/etc/opensc.conf&amp;lt;/code&amp;gt; tiedostossa  &#039;&#039;&#039;lock_login&#039;&#039;&#039; asetuksella, rivi joka on opensc-0.11 ja varhaisemmissa kommentoitu pois kokonaan, siten oletuksena &#039;&#039;&#039;true&#039;&#039;&#039; tilassa. Poistamalla kommentin ja jättämällä &#039;&#039;&#039;false&#039;&#039;&#039; arvon, lukitus estyy ja useat yhtäaikaiset sovellukset toimivat.&lt;br /&gt;
&lt;br /&gt;
  # By default, the OpenSC PKCS#11 module will lock your card&lt;br /&gt;
  # once you authenticate to the card via C_Login.&lt;br /&gt;
  # This is to prevent other users or other applications&lt;br /&gt;
  # from connecting to the card and perform crypto operations&lt;br /&gt;
  # (which may be possible because you have already authenticated&lt;br /&gt;
  # with the card).&lt;br /&gt;
  &lt;br /&gt;
  # Thus it is impossible to use several smart card aware&lt;br /&gt;
  # applications at the same time, e.g. you cannot run both&lt;br /&gt;
  # Firefox and Thunderbird at the same time, if both are&lt;br /&gt;
  # configured to use your smart card.&lt;br /&gt;
  #&lt;br /&gt;
  # Default: true&lt;br /&gt;
  lock_login = false;&lt;br /&gt;
&lt;br /&gt;
Opensc &amp;gt;= 0.12 asetus on pois päältä oletuksena ja käyttäjän toimenpiteitä ei tarvita. Asetustiedostossa on asiaa selitetty runsaammin englanniksi jos sen taustat kiinnostavat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Sovellusten jumiutumiset ====&lt;br /&gt;
&lt;br /&gt;
Varmenteita käyttävät ohjelmat ikävä kyllä jumittavat usein. Tällöin voi kokeilla kortin irroittamista lukijasta ja se usein vapauttaa jumitumisen ja jämähtänyttä toimintoa voi kokeilla heti uudelleen kortin lukijaan palauttamisen jälkeen.&lt;br /&gt;
&lt;br /&gt;
Toisinaan varmenteen luku ei tunnu onnistuvan ollenkaan ja silloin kannttaa kokeilla &#039;&#039;lypsämistä&#039;&#039; antamalla seuraava komento monta kertaa peräjälkeen kunnes se onnistuu:&lt;br /&gt;
&lt;br /&gt;
 $ pkcs15-tool -c&lt;br /&gt;
 PKCS#15 binding failed: Wrong length&lt;br /&gt;
 $ pkcs15-tool -c&lt;br /&gt;
 PKCS#15 binding failed: Wrong length&lt;br /&gt;
 $ pkcs15-tool -c&lt;br /&gt;
 Using reader with a card: OmniKey CardMan 3121 01 00&lt;br /&gt;
 X.509 Certificate...&lt;br /&gt;
&lt;br /&gt;
Komento tulee antaa samana käyttäjänä minä on istuntoon kirjautunut. Ongelma on kehittäjien tiedossa.&lt;br /&gt;
&lt;br /&gt;
Joskus koko korttiin ei saada yhteyttä:&lt;br /&gt;
&lt;br /&gt;
 $ pkcs15-tool -c&lt;br /&gt;
 Using reader with a card: OmniKey CardMan 1021 00 00&lt;br /&gt;
 Failed to connect to card: Unknown error&lt;br /&gt;
&lt;br /&gt;
Jos käytössä on pcscd, sen uudelleenkäynnistäminen auttaa:&lt;br /&gt;
&lt;br /&gt;
 # service pcscd restart&lt;br /&gt;
 Redirecting to /bin/systemctl  restart pcscd.service&lt;br /&gt;
&lt;br /&gt;
Tämän jälkeen tilanne on normali jälleen. Sovellukset kuten WWW-selain tulee käynnistää uudelleen koska sen yhteydet pcscd:hen ovat katkenneet eivätkä ne osaa muodostaa niitä itse uudelleen.&lt;br /&gt;
&lt;br /&gt;
== Sovelluskohtaisia ohjeita ==&lt;br /&gt;
&lt;br /&gt;
Jos käyttöön liittyy vastapuolen varmenne joka on Väestörekisterkeskuksen allekirjoittama, niin luotettavuuden todentaminen tapahtuu VRK:n CA-varmennetta vasten joka tulee olla asennettuna. Tapahtuma voi olla esimerkiksi allekirjoitettu tai salattu sähköpostiviesti tai myös WWW-palvelin joka käyttää VRK:n allekirjoittamaa palvelinvarmennetta.&lt;br /&gt;
&lt;br /&gt;
Varmenenteen voi kopioida kortilta suoraan kuten kohdasssa [[HST#CA-varmenteiden_lukeminen_kortilta|CA-varmenteiden lukeminen kortilta]] ohjeistetaan tai ladata se verkosta tietokoneelle VRK:n [http://fineid.fi/default.aspx?docid=2237&amp;amp;site=9&amp;amp;id=332 CA-varmenne sivulta]. Useimmissa tapauksissa ns juurivarmenne riittää (&#039;&#039;eng Root CA&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
&lt;br /&gt;
Firefoxin varmennekortti-tuen tehtävälista:&lt;br /&gt;
&lt;br /&gt;
# Juurivarmenteen asentaminen (pakollinen)&lt;br /&gt;
# Ulkoisen korttituen lisääminen (yleisimmin tarvittava)&lt;br /&gt;
# Allekirjoitus-pluginin asentaminen&lt;br /&gt;
&lt;br /&gt;
==== Juurivarmenteen asentaminen ====&lt;br /&gt;
&lt;br /&gt;
Avaa PEM-muotoinen X.509 varmennetiedosto &#039;&#039;File -&amp;gt; Open&#039;&#039; ja etsi kyseinen tiedosto, paina &#039;&#039;Open&#039;&#039; tai klikkaa varmenteen linkkiä VRK:n sivulla.&lt;br /&gt;
&lt;br /&gt;
Valise kaikki:&lt;br /&gt;
* &#039;&#039;Trust this CA to identify web sites&#039;&#039;&lt;br /&gt;
* &#039;&#039;Trust this CA to identify email users&#039;&#039;&lt;br /&gt;
* &#039;&#039;Trust this CA to identify software developers&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Paina &#039;&#039;Ok&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Korttituen lisääminen ====&lt;br /&gt;
&lt;br /&gt;
Varmennekortin tuki lisätään turva-asetuksista lisäämällä sinne &#039;&#039;&#039;onepin-opensc-pkcs11&#039;&#039;&#039; plugin. Tämä sellaisenaan mahdollistaa varmenteiden käytön asiakaspään tunnistamisessa SSL-yhteyksillä. Erilliset pluginit jotka käyttävät varmennekorttia, tarvitsevat myöskin tätä asetusta.&lt;br /&gt;
&lt;br /&gt;
Suomenkielisessä selaimessa:&lt;br /&gt;
&lt;br /&gt;
*valitse &#039;&#039;Muokkaa&#039;&#039; &amp;amp;rarr;&#039;&#039; Asetukset&#039;&#039; &amp;amp;rarr;&#039;&#039; Lisäasetukset&#039;&#039; &amp;amp;rarr; &#039;&#039;Salaus&#039;&#039; &amp;amp;rarr; &#039;&#039;Turvallisuuslaitteet&#039;&#039;&lt;br /&gt;
*paina &#039;&#039;Lataa&#039;&#039;&lt;br /&gt;
*lisää: &amp;lt;tt&amp;gt;/usr/lib/onepin-opensc-pkcs11.so&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Englanninkielisessä selaimessa:&lt;br /&gt;
&lt;br /&gt;
*valitse &#039;&#039;Edit&#039;&#039; &amp;amp;rarr; &#039;&#039;Preferences&#039;&#039; &amp;amp;rarr; &#039;&#039;Advanced&#039;&#039; &amp;amp;rarr; &#039;&#039;Encryption&#039;&#039; &amp;amp;rarr; &#039;&#039;Security Devices&#039;&#039;&lt;br /&gt;
*paina &#039;&#039;Load&#039;&#039;&lt;br /&gt;
*lisää: &amp;lt;tt&amp;gt;/usr/lib/onepin-opensc-pkcs11.so&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== pin2-koodin turha kysely ja onepin tausta ====&lt;br /&gt;
&lt;br /&gt;
Firefoxissa on &#039;&#039;ominaisuus&#039;&#039; joka pistää sen kysymään joka käyttökerta molempia pin-koodeja. Tämän ratkaisusta oli näkemyseroja joka johti pattitilanteeseen ja OpenSC-projekti päätyi kiertämään selaimen kehittäjien jääräpäisyyden tekemällä häkkäyksen itse pluginiin ja oman versionsa siitä jota kutsutaan &#039;&#039;&#039;onepin-opensc-pkcs11&#039;&#039;&#039; pluginiksi. Aiheesta enemmän projektin postilistan [http://www.opensc-project.org/pipermail/opensc-devel/2007-June/010031.html viestissä].&lt;br /&gt;
&lt;br /&gt;
==== Error code: ssl_error_renegotiation_not_allowed ====&lt;br /&gt;
&lt;br /&gt;
Uudemmat Firefox-versiot (versiosta 4) vaativat joidenkin palveluiden kohdalla selaimen lisäasetuksen. Tämä johtuu vuonna 2009 löydetystä [https://wiki.mozilla.org/Security:Renegotiation suunnitteluvirheestä TLS-protokollassa], joka mahdollistaa ns. mies välissä -hyökkäyksen. Firefox yrittää suojautua tätä haavoittuvuutta vastaan kieltämällä TLS-protokollan uusintakättelyn. Tätä ei ole otettu huomioon (tätä kirjoitettaessa 5/2011) muun muasssa niissä palveluissa, jotka käyttävät ns. VETUMA-palvelua (Verkkotunnistautuminen ja maksaminen) käyttäjän tunnistamiseen.&lt;br /&gt;
&lt;br /&gt;
Kunnes tämä ongelma on ratkaistu palvelinpuolella, ongelman pystyy kiertämään sallimalla Firefoxissa TLS-protokollan kaksoiskättelyn haluamilleen osoitteille &amp;amp;ndash; VETUMA-palvelun tapauksessa osoite on &#039;&#039;tunnistus.suomi.fi&#039;&#039;. Asetukset saa näkyville Firefoxissa kirjoittamalla osoitekenttään about:config. Etsi listasta kenttä &amp;lt;code&amp;gt;security.ssl.renego_unrestricted_hosts&amp;lt;/code&amp;gt; ja anna sille arvoksi esimerkiksi &amp;lt;code&amp;gt;tunnistus.suomi.fi,tyvi.elma.fi&amp;lt;/code&amp;gt;. Asetuksen vaihdon onnistumisen voi kokeilla VRK:n [https://verkkopalvelu.vrk.fi/Omat/Etusivu.aspx Omien tietojen tarkistus] -palvelusta. Huomaa, että asetuksessa tulee olla itse kohde palvelin, ei pelkkä domain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Thunderbird===&lt;br /&gt;
&lt;br /&gt;
*valitse &#039;&#039;Muokkaa&#039;&#039; &amp;amp;rarr; &#039;&#039;Asetukset&#039;&#039; &amp;amp;rarr; &#039;&#039;Lisäasetukset&#039;&#039; &amp;amp;rarr; &#039;&#039;Varmenteet&#039;&#039; &amp;amp;rarr; &#039;&#039;Turvallisuuslaitteet&#039;&#039;&lt;br /&gt;
*paina &#039;&#039;Lataa&#039;&#039;&lt;br /&gt;
*lisää: &amp;lt;tt&amp;gt;/usr/lib/opensc-pkcs11.so&amp;lt;/tt&amp;gt;&lt;br /&gt;
*edelleen lisäasetuksista valitse &#039;&#039;Näytä varmenteet&#039;&#039;&lt;br /&gt;
*valitse &#039;&#039;Varmentajat&#039;&#039;-välilehdeltä omat Väestörekisterikeskus CA:n alla olevat &#039;&#039;Varmenteet&#039;&#039; ja &#039;&#039;Muokkaa&#039;&#039;&lt;br /&gt;
*lisää valinnat: &amp;quot;Tämä varmenne voi todentaa WWW-sivustoja&amp;quot; ja &amp;quot;Tämä varmenne voi todentaa sähköpostittajia&amp;quot;&lt;br /&gt;
*valitse &#039;&#039;Muokkaa&#039;&#039; &amp;amp;rarr; &#039;&#039;Tilien asetukset&#039;&#039;&lt;br /&gt;
*halutun tilin &#039;&#039;Turvallisuus&#039;&#039;-valikosta valitse kortin todentamis- ja salausvarmenne&lt;br /&gt;
&lt;br /&gt;
Thunderbirdin ja Firefoxin voi saada käyttämään samaa varmennetietokantaa. Miten tämä tapahtuu on selitetty [https://wiki.mozilla.org/NSS_Shared_DB_Howto Mozillan Wiki-sivulla]. Yhteisen tietokannan etuna on se, että varmenteen saa tuotua tietokantaan yhdella klikkauksella Firefoxissa (esimerkiksi [http://vrk.fineid.fi/certsearchB.asp?todo=setlang&amp;amp;lang=fi VRK:n varmennehakusivulta]), jonka jälkeen varmenne on automaattisesti käytettävissä myös Thunderbirdissä.&lt;br /&gt;
&lt;br /&gt;
=== qDigiDoc ===&lt;br /&gt;
&lt;br /&gt;
Sovelluksen pitäisi toimia myös Suomen henkilökortilla, mutta se vaatii hieman toimenpiteitä ensin. Ohjeet löytyvät kokonaisuudessaan [[qDigiDoc]] sivulta.&lt;br /&gt;
&lt;br /&gt;
=== Ssh ===&lt;br /&gt;
Jotta linuxiin voi ottaa SSH-yhteyden älykortilla, täytyy älykortilla oleva julkinen avain tallentaa /home/&amp;lt;user&amp;gt;/.ssh hakemiston authorized_keys tiedostoon [https://linux.fi/wiki/OpenSSH OpenSSH]-formaatissa.&lt;br /&gt;
Ohjeet siihen miten julkinen avain muutetaan OpenSSH-formaattiin löytyy [https://joscor.com/blog/convert-windows-public-certificate-cer-to-openssh-public-key/ täältä].&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
Avaimia lisätään ssh-agent -ohjelmaan ssh-add -ohjelmalla. Älykorttien yhteydessä käytetään -s-optiota, jolla kerrotaan pluginin polku. Kortin avaimeen liittyvä PIN kysytään &amp;lt;code&amp;gt;ssh-add&amp;lt;/code&amp;gt;-komennon yhteydessä ja se jää ssh-agent prosessin muistiin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Käyttö&#039;&#039;&#039;:&lt;br /&gt;
* Aseta kortti lukijaan ja lisää plugin:&lt;br /&gt;
  &amp;lt;code&amp;gt;$ ssh-add -s /usr/lib/opensc-pkcs11.so&amp;lt;/code&amp;gt;&lt;br /&gt;
* Avainparin julkisen avaimen saa tulostettua ssh-add -L -komennolla:&lt;br /&gt;
 $ ssh-add -L&lt;br /&gt;
 ssh-rsa AAAAB3NzaC...VAkWbd0lYyWrg78Q== /usr/lib64/opensc-pkcs11.so&lt;br /&gt;
* Jos tätä varmennetta ei ole aiemmin käytetty ssh:n kanssa, lisää ylläoleva tekstirimpsu (koko rivi sellaisenaan) &amp;lt;code&amp;gt;~/.ssh/authorized_keys&amp;lt;/code&amp;gt; tiedostoon palvelimella.&lt;br /&gt;
* Nyt ssh-ohjelmat toimivat normaalisti kortin varmenteilla.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vianmääritys&#039;&#039;&#039;:&lt;br /&gt;
* Varmista, että ssh-agent on käynnistynyt sisäänkirjautumisesi yhteydessä (prosessilistauksessa näkyy &#039;&#039;ssh-agent&#039;&#039;). Käynnistäminen riippuu Linux-jakelustasi, yleensä se on automaattinen eikä mitään tarvitse tehdä. Jos sitä ei siitä huolimatta ole käynnissä, se on voinut kräshätä.&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
===== PuTTY =====&lt;br /&gt;
&lt;br /&gt;
PuTTY ei oletuksena tue älykortilla olevan yksityisen avaimen noutoa. Jotta Windows käyttöjärjestelmällä voi kirjautua linuxiin henkilökortilla, täytyy käyttää PuTTY SC-ohjelmaa [http://www.joebar.ch/puttysc/]. &lt;br /&gt;
Ohjelman asetuksissa valitaan Connection -&amp;gt; SSH -&amp;gt; Pkcs11 välilehdeltä PKCS#11 kirjastoksi mpollux-ohjelman mukana tuleva cryptoki.dll tiedosto, joka on oletuksena polussa C:\Program Files (x86)\Fujitsu\mPollux DigiSign Client\cryptoki.dll. Token Label kohtaan valitaan &amp;quot;Henkilökortti&amp;quot; ja &amp;quot;Certificate Label&amp;quot; kohdasta valitaan joko henkilökohtainen salausvarmenne tai allekirjoitusvarmenne sen mukaan kumpi on asennettu palvelimelle.&lt;br /&gt;
&lt;br /&gt;
===== FileZilla =====&lt;br /&gt;
&lt;br /&gt;
FileZilla ei tue PKSC11 todentamista, mutta se tukee yksityisen avaimen hakemista PageAnt-ohjelman kautta. PageAnt-ohjelmasta täytyy asentaa modifioitu [http://www.joebar.ch/puttysc/ PageAntSC]-versio joka osaa hakea kortinlukulaitteesta salausavaimen.&lt;br /&gt;
&lt;br /&gt;
Käynnistä PageAntSC ohjelma ennen FileZillalla yhdistämistä, varmista että tehtäväpalkissa näkyy ohjelman kuvake (tietokone jolla on hattu), ja kuvakkeesta aukeavassa ohjelmassa on listattu henkilökorttivarmenne.&lt;br /&gt;
Yhdistä nyt FileZillalla linuxiin jättäen salasana-kenttä tyhjäksi, tällöin PageAntSC-ohjelma kysyy PIN-koodia ja FileZilla kirjautuu Linuxiin henkilökortin varmenteella.&lt;br /&gt;
&lt;br /&gt;
=== Lähiverkon pääsynvalvonta - 802.1x ===&lt;br /&gt;
&lt;br /&gt;
Asetukset määritellään &#039;&#039;wpa_supplicant&#039;&#039; asetustiedostoihin, joka toisissa jakeluissa sijaita esimerkiksi &amp;lt;code&amp;gt;/etc/wpa_supplicant/wpa_supplicant.conf&amp;lt;/code&amp;gt; tiedostossa.&lt;br /&gt;
  &lt;br /&gt;
  pkcs11_module_path=/usr/lib/pkcs11/opensc-pkcs11.so&lt;br /&gt;
  &lt;br /&gt;
  # Example of EAP-TLS with smartcard (openssl engine)&lt;br /&gt;
  network={&lt;br /&gt;
    ssid=&amp;quot;example.com&amp;quot;&lt;br /&gt;
    key_mgmt=WPA-EAP&lt;br /&gt;
    eap=TLS&lt;br /&gt;
   	proto=RSN&lt;br /&gt;
  	 pairwise=CCMP TKIP&lt;br /&gt;
   	group=CCMP TKIP&lt;br /&gt;
  	 identity=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
  	 ca_cert=&amp;quot;/etc/pki/tls/certs/vrkrootca.pem&amp;quot;&lt;br /&gt;
  	 client_cert=&amp;quot;/etc/pki/tls/certs/user.pem&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  	 engine=1&lt;br /&gt;
  &lt;br /&gt;
  	 # use the opensc engine&lt;br /&gt;
  	 #engine_id=&amp;quot;opensc&amp;quot;&lt;br /&gt;
  	 #key_id=&amp;quot;45&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  	 # use the pkcs11 engine&lt;br /&gt;
    engine_id=&amp;quot;pkcs11&amp;quot;&lt;br /&gt;
    key_id=&amp;quot;id_45&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
    # Optional PIN configuration; this can be left out and PIN will be&lt;br /&gt;
    # asked through the control interface&lt;br /&gt;
    # pin=&amp;quot;1234&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Asetusohje on peräisin [http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf esimerkistä].&lt;br /&gt;
&lt;br /&gt;
=== Gnupg ohjelmistot ===&lt;br /&gt;
&lt;br /&gt;
Gnupg:n eri komponenttien asetuksia muutetaan käyttäjän kotihakemiston &amp;lt;code&amp;gt;.gnupg/&amp;lt;/code&amp;gt; hakemistossa. Henkilökorttituen lisääminen edellyttää &#039;&#039;&#039;scdaemon&#039;&#039;&#039;-palvelun korvaamista &#039;&#039;&#039;gpg-agent.conf&#039;&#039;&#039; tiedostossa:&lt;br /&gt;
&lt;br /&gt;
  scdaemon-program /usr/bin/gnupg-pkcs11-scd&lt;br /&gt;
  pinentry-program /usr/bin/pinentry-qt&lt;br /&gt;
&lt;br /&gt;
ja kyseisten palveluiden uudelleenkäynnistämistä. Jos korttituki toimii, komento:&lt;br /&gt;
&lt;br /&gt;
 $ gpg2 -K&lt;br /&gt;
&lt;br /&gt;
listaa varmenteet jossa on mukana älykortin varmenne. Jos ei, asetukset kaipaavat lisää säätämistä joita on ohjeistettu omalla [[gnupg-pkcs11-scd]] sivulla.&lt;br /&gt;
&lt;br /&gt;
=== Kleopatra ===&lt;br /&gt;
&lt;br /&gt;
Kleopatra osaa muuttaa tarvitsemiaan Gnupg:n asetuksia tiedostoista: &#039;&#039;&#039;options&#039;&#039;&#039;, &#039;&#039;&#039;gpg-agent.conf&#039;&#039;&#039;, &#039;&#039;&#039;gpgsm.conf&#039;&#039;&#039; ja &#039;&#039;&#039;scdaemon.conf&#039;&#039;&#039;. Viimeeksi mainitulla ei ole merkitystä jos käytetään korvaavaa palvelua ja sen asetustiedostoa &#039;&#039;&#039;gnupg-pkcs11-scd.conf&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Jakelukohtaisia ohjeita ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; &lt;br /&gt;
|+ominaisuusvertailu&lt;br /&gt;
|-&lt;br /&gt;
! ominaisuus / jakelu&lt;br /&gt;
! Arch Linux&lt;br /&gt;
! Fedora&lt;br /&gt;
! Gentoo&lt;br /&gt;
! OpenSuse&lt;br /&gt;
! RHEL&lt;br /&gt;
! Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
| Kyseinen jakeluversio || || 14 || || || 5 ||&lt;br /&gt;
|-&lt;br /&gt;
| Oletusrajapinta || pcsc || pcsc || pcsc ||  || pcsc ||&lt;br /&gt;
|-&lt;br /&gt;
| OpenSC versio || 0.16.0-5 || 0.11 || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| Korttituki asentuu oletuksena || kyllä || kyllä || ei  || || kyllä ||&lt;br /&gt;
|-&lt;br /&gt;
| Korttituki käynnistyy oletuksena || ei || kyllä || ei || || kyllä ||&lt;br /&gt;
|-&lt;br /&gt;
| Firefox näkee pluginin automaattisesti || ei || ei || ei ||  || ei ||&lt;br /&gt;
|- &lt;br /&gt;
| ssh-agent käynnistyy oletuksena || ei || kyllä || ei || ei || kyllä ||&lt;br /&gt;
|-&lt;br /&gt;
| PAM tukee älykorttia || ei || kyllä || kyllä || || kyllä ||&lt;br /&gt;
|-&lt;br /&gt;
| PAM työkalu tukee älykorttia || ei || vähän ||  || || vähän ||&lt;br /&gt;
|-&lt;br /&gt;
| Löytyykö CA-avaimet jakelusta || ei || ei || ei || || ei ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Vertailussa tulisi käyttää viimeisintä vakaata jakeluversiota. Jos näin ei ole, taulukkoa tulee päivittää.&lt;br /&gt;
&lt;br /&gt;
===Arch Linux===&lt;br /&gt;
&lt;br /&gt;
* Asenna paketit &#039;&#039;&#039;ccid&#039;&#039;&#039;, &#039;&#039;&#039;pcsclite&#039;&#039;&#039;, &#039;&#039;&#039;opensc&#039;&#039;&#039;&lt;br /&gt;
* Muuta palvelu pcscd automaattisesti käynnistyväksi:&lt;br /&gt;
 sudo systemctl enable pcsc&lt;br /&gt;
* Käynnistä palvelu pcscd:&lt;br /&gt;
 systemctl start pcscd&lt;br /&gt;
* onepin-opensc-pkcs11.so -plugin sijaitsee hakemistossa &amp;lt;code&amp;gt;/usr/lib&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CentOS ===&lt;br /&gt;
&lt;br /&gt;
Fedoran ohjeet pitäisi käydä sellaisenaan.&lt;br /&gt;
&lt;br /&gt;
=== Fedora ===&lt;br /&gt;
&lt;br /&gt;
* Lukijat: Omnikey-1021,-3021,-4321 toimii, Omnikey-4040 ei taida enää viimeisimmissä jakeluissa.&lt;br /&gt;
* Vaaditut paketit: &#039;&#039;&#039;opensc&#039;&#039;&#039;, &#039;&#039;&#039;pcsc-lite&#039;&#039;&#039; (tai &#039;&#039;&#039;openct&#039;&#039;&#039;).&lt;br /&gt;
* Initscriptit: openct ja pcscd oletuksena päällä asennuksen jälkeen.&lt;br /&gt;
* Sovelluspaketit: &#039;&#039;&#039;firefox&#039;&#039;&#039;, &#039;&#039;&#039;thunderbird&#039;&#039;&#039;, &#039;&#039;&#039;openssh-clients&#039;&#039;&#039;, &#039;&#039;&#039;qdigidoc&#039;&#039;&#039;, &#039;&#039;&#039;mozilla-esteid&#039;&#039;&#039; (digiallekirjoitus), &#039;&#039;&#039;kdepim&#039;&#039;&#039; (kleopatra), &#039;&#039;&#039;pam_pkcs11&#039;&#039;&#039;.&lt;br /&gt;
* CA-avaimien paketti: &#039;&#039;&#039;ca-certificates&#039;&#039;&#039;&lt;br /&gt;
* Pakettienhallintatyökalu: [[Yum]] ja [[PackageKit]]&lt;br /&gt;
* ssh-agent käynnistyy automaattisesti jos on asennettu.&lt;br /&gt;
* onepin-opensc-pkcs11.so plugin sijaitsee arkkitehtuurin mukaisessa hakemistossa joko: &amp;lt;code&amp;gt;/usr/lib/onepin-opensc-pkcs11.so&amp;lt;/code&amp;gt; tai &amp;lt;code&amp;gt;/usr/lib64/onepin-opensc-pkcs11.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
* ssh-agent: KDE-ympäristöllä pitää poistaa kommenteista agentin käynnistyskomennot tiedostossa /etc/kde/startup/agent-startup.sh&lt;br /&gt;
&lt;br /&gt;
=== OpenSuse ===&lt;br /&gt;
&lt;br /&gt;
* Pakettienhallintatyökalu: [[Zypper]] ja [[PackageKit]]&lt;br /&gt;
&lt;br /&gt;
=== RHEL (Red Hat Enterprise Linux) ===&lt;br /&gt;
&lt;br /&gt;
Käynnistä Subscription Manager, mene System-valikkoon ja valitse Repositories. Merkitse {rhel-7-server-optional-rpms | rhel-7-desktop-optional-rpms | rhel-7-workstation-optional-rpms} pakettivaranto käyttöön.&lt;br /&gt;
&lt;br /&gt;
Nyt voit jatkaa Fedoran ohjeilla.&lt;br /&gt;
&lt;br /&gt;
===Ubuntu===&lt;br /&gt;
&lt;br /&gt;
* Asenna paketit &amp;lt;tt&amp;gt;opensc&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;mozilla-opensc&amp;lt;/tt&amp;gt; ja &amp;lt;tt&amp;gt;pcscd&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Pakettienhallintatyökalu: [[Apt]], [[PackageKit]]&lt;br /&gt;
&lt;br /&gt;
== Katso myös ==&lt;br /&gt;
&lt;br /&gt;
* [[Mobiilivarmenne]]&lt;br /&gt;
* [[Apache_httpd]]&lt;br /&gt;
* [[Firefox]]&lt;br /&gt;
* [[Gnupg]] - GNU Privacy Guard&lt;br /&gt;
* [[gnupg-pkcs11-scd]] - pkcs11 plugin Gnupg ohjelmistoon.&lt;br /&gt;
* [[Openoffice]] - OpenOffice.org toimisto-ohjelmisto&lt;br /&gt;
* [[qDigiDoc]]&lt;br /&gt;
* [[PAM]] - Pluggable Authentication Modules&lt;br /&gt;
* [[SSH]] - Secure SHell&lt;br /&gt;
* [[Thunderbird]]&lt;br /&gt;
* [[VPN]] - Virtual Private Network&lt;br /&gt;
* [[Wpa_supplicant]]&lt;br /&gt;
&lt;br /&gt;
== Aiheesta muualla ==&lt;br /&gt;
&lt;br /&gt;
* [http://fineid.fi/ http://fineid.fi] - Suomalaisen henkilökortin kotisivu.&lt;br /&gt;
* [http://www.vaestorekisterikeskus.fi/ http://www.vaestorekisterikeskus.fi/] - Väestörekisterikeskus&lt;br /&gt;
* [http://fi.wikipedia.org/wiki/HST http://fi.wikipedia.org/wiki/HST] - Henkilökortti Wikipediassa.&lt;br /&gt;
* [http://fi.wikipedia.org/wiki/PKI http://fi.wikipedia.org/wiki/PKI] - Julkisen avaimen infrastruktuuri Wikipediassa.&lt;br /&gt;
* [https://github.com/OpenSC/OpenSC/wiki/ opensc-wiki ] - OpenSC korttityökalujen kotisivu.&lt;br /&gt;
* [https://github.com/OpenSC/OpenSC/wiki/Finnish-FINEID OpenSC-wiki - FinnishEid] - OpenSC projektin FINEID sivu.&lt;br /&gt;
* [http://www.cryptsoft.com/pkcs11doc/v230/ http://www.cryptsoft.com/pkcs11doc/v230/] -  pkcs#11 standardi.&lt;br /&gt;
* [http://www.openxades.org/files/DigiDoc%20format%201.3.doc openxades.org - digidoc-1.3] - DigiDoc määritys.&lt;br /&gt;
* [http://code.google.com/p/esteid/ http://code.google.com/p/esteid/]- Viron henkilökortin ohjelmistokehitys.&lt;br /&gt;
* [http://id.ee/ http://id.ee/] - Viron henkilökortin ohjesivusto (est, eng, rus).&lt;br /&gt;
* [https://bugs.kde.org/show_bug.cgi?id=116201 kde.org - bug 116201] - Keskustelua KDE:n pkcs#11 tuesta.&lt;br /&gt;
* [https://www.bugzilla.mozilla.org/show_bug.cgi?id=511652 mozilla.org - Add a GUI option to toggle the &amp;quot;Friendly certs&amp;quot; option of NSS]&lt;br /&gt;
* [irc://irc.freenode.net/opensc irc://irc.freenode.net/opensc] - OpenSC IRC kanava.&lt;br /&gt;
* [irc://irc.freenode.net/fineid irc://irc.freenode.net/fineid] - #fineid IRC kanava.&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Laitteisto]]&lt;br /&gt;
[[Luokka:Ohjeet]]&lt;br /&gt;
[[Luokka:Tietoturva]]&lt;br /&gt;
[[Luokka:Suomi]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=HST&amp;diff=47904</id>
		<title>HST</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=HST&amp;diff=47904"/>
		<updated>2017-11-14T16:34:23Z</updated>

		<summary type="html">&lt;p&gt;Jem: /* Lisätty varoitus Firefoxin versiosta 57. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Väestörekisterikeskus tarjoaa Suomessa  [http://www.vaestorekisterikeskus.fi/default.aspx?id=134 henkilön sähköisen tunnistamisen] (&#039;&#039;HST, eng FINEID&#039;&#039;) ratkaisua sirullisella henkilökortilla. Kortin myöntää poliisi. Henkilökortilla on [[wikipedia:fi:PKI|julkisen avaimen menetelmään]] perustuva laatuvarmenne. Varmenteen avulla voi tunnistautua, allekirjoittaa ja salata dokumentteja ja viestiliikennettä.&lt;br /&gt;
&lt;br /&gt;
HST-kortin etuina on vahvan salauksen käyttö yhdistettynä vaatimukseen fyysisen esineen (&amp;quot;token&amp;quot;) hallussapitoon. Toisin sanoen, niin kauan kuin esine (kortti) on hallussasi, kukaan ei pysty käyttämään väärin korttiin liittyvää sähköistä identiteettiä. Kortti on maksukortin kokoinen, helposti mukana pidettävä ja sen käyttö on suojattu PIN-koodilla. PIN-koodi on aina sama, riippumatta mihin palveluun kortilla tunnistaudutaan.&lt;br /&gt;
&lt;br /&gt;
== Peruskäyttäjän tehtävälista ==&lt;br /&gt;
&lt;br /&gt;
Vaikka sivulla on paljon asiaa, ei tämä oikeasti niin vaikeaa ole, lyhyesti:&lt;br /&gt;
&lt;br /&gt;
# Hanki henkilökortti. Sitä voi anoa&lt;br /&gt;
#* paikalliselta poliisilta, toimitusaika kaksi vkoa.&lt;br /&gt;
#* [https://poliisi.fi/henkilokortti/henkilokortin_hakeminen Poliisin sähköisessä asiointipalvelussa] mikäli käytössä on pankkitunnukset tai mobiilivarmenne tai voimassaoleva henkilökortti. Vaatii valokuvaamolta saatavan kuvatunnuksen.&lt;br /&gt;
# Hanki kortin lukijalaite, tarkasta tuetut mallit ennen ostamista.&lt;br /&gt;
# Tutustu Linux-jakelukohtaisiin ohjeisiin mahdollisten lisäohjelmistojen asentamiseksi (lisätietoja alla).&lt;br /&gt;
# Tarvittaessa asenna vaaditut paketit ja konfiguroi ne (lähinnä vanhat lukijat).&lt;br /&gt;
# Käy tarvitsemasi sovellukset läpi ([[HST#Firefox_2|Firefox]] jne) ja konfiguroi ne.&lt;br /&gt;
# Testaa ja käytä. Testaamiseen voit käyttää  [http://fineid.fi/default.aspx?docid=2245&amp;amp;site=9&amp;amp;id=0 fineid.fi testisivua].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Huom! Poliisilla käyvälle:&#039;&#039;&#039; Varmista kun anot korttia, että virkailija täyttää hakemukseen myös sähköpostiosoitteesi &amp;amp;ndash; oletuksena hän jättää tämän kentän tyhjäksi, jolloin sähköpostiosoitetta ei tule varmenteeseen. Osoite varmenteessa ei ole välttämätön kun korttia käytetään tunnistautumiseen, mutta siitä voi olla hyötyä sähköpostin salauksessa ja se kuuluu kortin hintaan.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Huom! Verkosta haettaessa:&#039;&#039;&#039; Mikäli haluat henkilökorttiisi Kela-tiedot (viivakoodi taakse), pyydä sitä kun käyt allekirjoittamassa henkilökortin, verkkohakemuksesta puuttuu kohta sille, mutta allekirjoittaessa se voidaan lisätä.&lt;br /&gt;
&lt;br /&gt;
== Laitteet ==&lt;br /&gt;
&lt;br /&gt;
Korttia varten tarvitaan kortinlukija ja lukijaan sopiva ajuri. Lukijoita on pääasiassa kahta tyyppiä. Ulkoinen, tyypillisesti USB-väylään liitettävä lukija, sekä joissakin kannettavissa tietokoneissa oleva sisäinen lukija. Toiset esim kannettavan tietokoneen laajennuskorttipaikkaan sopivat lukijat näkyvät USB-väylässä ja toimivat sen mukaisesti. Hinnat vaihtelevat mallista ja ostopaikasta riippuen, nykyaikaisen USB-lukijan hinta vaihtelee kuuden ja 25 euron välillä.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&lt;br /&gt;
[[Tiedosto:Cm 3021 190px.jpg]][[Tiedosto:CardMan4321 190px.jpg]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lukijalaitteita on myös omalla fyysisellä näppäimistöllä varustettuna jota käytetään pin-koodien syöttämiseen. Tällöin koodeja käsitellään ainoastaan lukijassa eivätkä ne siten altistu mahdollisille tietokoneen haittaohjelmille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Nykyaikaiset lukijat ==== &lt;br /&gt;
&lt;br /&gt;
Kun on hankkimassa USB-lukijaa, kannattaa valita ns. &#039;&#039;CCID&#039;&#039; (Circuit Card Interface Device) -speksin mukainen lukija. CCID on USB-väylän yhteyteen määritelty ns. Device Class -määrittely, joka määrittelee yhteisen protokollan eri valmistajien USB-lukijoille. &lt;br /&gt;
&lt;br /&gt;
Esimerkkejä CCID-protokollan mukaisista lukijoista ovat:&lt;br /&gt;
&lt;br /&gt;
* [http://www.hidglobal.com/omnikey/ Omnikey] 1021, 3021, 3121, 4321 ym (4040 varauksella).&lt;br /&gt;
* [http://www.scmmicro.com/security/view_product_en.php?PID=4 SCM SCR 3310]&lt;br /&gt;
* Dellin tiettyjen USB-näppäimistömallien integroidut lukijat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Vanhemmat lukijat ==== &lt;br /&gt;
&lt;br /&gt;
Aikanaan valtaosa ensimmäisistä älykorttilukijoista oli RS-232 pohjaisia ja siten niiden käyttöönotto oli myös hieman työläämpää. Ensimmäiset USB-lukijat olivat myös RS-232 laitteita, niissä oli vain sisäinen USB-RS232 adapteripiiri (usein Prolific PL2303, pl2303 ajuri) joten laite lopulta näkyy yhtenä ttyUSB&amp;lt;n&amp;gt;-laitteena ajurinsa perusteella ja pitää siten ottaa käsin käyttöön.&lt;br /&gt;
&lt;br /&gt;
Ennen USB-laitteiden CCID-määrittelyn valmistumista jokainen valmistaja käytti omaa protokollaa; näitä vanhempia lukijoita näkee vielä silloin tällöin.&lt;br /&gt;
&lt;br /&gt;
* Towitoko ChipdDrive-micro 130 - USB-RS232 emulaatiolla oleva ihan toimiva lukija jos jakelu tukee.&lt;br /&gt;
* Towitoko ChipDrive Extern 330 - Sama sähköisesti kuin ChipDrive-micro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tietyt lukijalaitteiden brändit ovat vaihtuneet kun firmat ovat ostelleet toisiaan.&lt;br /&gt;
&lt;br /&gt;
=== Towitoko ChipDrive ===&lt;br /&gt;
&lt;br /&gt;
[[Tiedosto:Towitoko.chipdrive.JPG]]&lt;br /&gt;
&lt;br /&gt;
Ei asennu automaattisesti, tehtävä seuraavat toimenpiteet käsin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;openct&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Poista &amp;lt;code&amp;gt;/etc/openct.conf&amp;lt;/code&amp;gt; tiedostosta kommentointi seuraavan lohkon osalta:&lt;br /&gt;
  #reader towitoko {&lt;br /&gt;
  #       driver = towitoko;&lt;br /&gt;
  #       device = serial:/dev/ttyS0;&lt;br /&gt;
  #};&lt;br /&gt;
&lt;br /&gt;
Varmistu, että &#039;&#039;device&#039;&#039; osoittaa oikeaan laitteeseen. (esim ttyUSB0). Käynnistä openct palvelu uudelleen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pcscd&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
?&lt;br /&gt;
&lt;br /&gt;
== Ohjelmistot ==&lt;br /&gt;
&lt;br /&gt;
===  Arkkitehtuuri ===&lt;br /&gt;
&lt;br /&gt;
Sovellusohjelma tarvitsee ohjelmointirajapinnan (API) pystyäkseen keskustelemaan älykortin kanssa. RSA Laboratories on määritellyt C-ohjelmointirajapinnan niin sanotuille kryptograafisille tokeneille nimeltä &#039;&#039;[http://www.cryptsoft.com/pkcs11doc/v230/ PKCS#11]&#039;&#039;. Se on 11. osa RSA Laboratoriesin sarjassa Public Key Cryptography Standards ja tunnetaan myös lempinimellä &#039;&#039;Cryptoki&#039;&#039; (väännös sanoista Cryptographic Token Interface). Cryptoki on tyypillisesti toteutettu ns. pluginina (.so-tiedosto). Useampi sovellus voi käyttää Cryptoki-rajapintaa rinnakkain; kirjaston tehtävänä on synkronoida pääsy yksittäiselle tokenille. Cryptoki pystyy myös hallitsemaan useampaa järjestelmään liitettyä tokenia. OpenSC-ohjelmisto sisältää Cryptoki-toteutuksen jaettuna kirjastona nimellä opensc-pkcs11.so.&lt;br /&gt;
&lt;br /&gt;
PKCS#11-kirjaston ja lukijan välille tarvitaan vielä ns. middleware, josta on avoimena lähdekoodina kaksi vaihtoehtoista toteutusta: &#039;&#039;PCSC-lite&#039;&#039; tai &#039;&#039;OpenCT&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PC/SC&#039;&#039;&#039; (Personal Computer/Smart Card) on alun perin Microsoftilta tullut aloite, joka määrittelee yhtenäisen, laitteistosta riippumattoman, rajapinnan älykorteille. PC/SC:n ja Cryptokin erona on, että PC/SC määrittelee alemman tason rajapinnan älykorteille yleensä, kun taas Cryptoki määrittelee rajapinnan julkisen avaimen cryptotokeneille, jotka eivät välttämättä ole edes toteutettu älykortteina.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OpenCT&#039;&#039;&#039; on OpenSC:n kehittäjien kehittämä &amp;quot;liima&amp;quot; ylemmän tason Cryptoki-kirjaston ja laitteiston välillä. OpenCT on suoraviivaisempi vaihtoehto PC/SC:lle. Se pystyy käsittelemään lukijoita suoraan, kun taas PC/SC (PCSC-lite) tarvitsee erikseen vielä lukijalle ajurin. USB-lukijoilla käytetään &#039;&#039;CCID&#039;&#039;-ajuria. Toisaalta OpenCT ei toteuta PC/SC-rajapintaa, joten sitä ei voi käyttää jos sovellus on kirjoitettu käyttämään PC/SC-rajapintaa. Nykyään sen kehitys on pysähtynyt ja siten laitteisto- ja yhteisötuki on heikentynyt.&lt;br /&gt;
&lt;br /&gt;
Alla on esitetty kaavioina yllä mainitut kaksi ohjelmistovaihtoehtoa:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Tiedosto:openct.png]]   &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;   [[Tiedosto:pcsc-lite.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ajurit ja middleware===&lt;br /&gt;
&lt;br /&gt;
Kortin käyttö edellyttää kortinlukijaa sekä asennettua kortinlukijaohjelmistoa. Ohjelmistoksi on olemassa kaksi rinnakkaista vaihtoehtoa:&lt;br /&gt;
* Avoin &#039;&#039;OpenSC&#039;&#039; sekä siihen liittyvät työkalut ja kirjastot&lt;br /&gt;
* Kaupallinen &#039;&#039;mPollux Digisign Client&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====OpenSC====&lt;br /&gt;
&lt;br /&gt;
Avoimessa projektissa kehitettävä [http://www.opensc-project.org/ OpenSC]-ohjelmisto on maailmanlaajuisesti käytössä oleva älykorttiohjelmisto. Se tukeutuu yleensä &lt;br /&gt;
[http://pcsclite.alioth.debian.org/ pcsc-lite] laitteistorajapintaan joka toteuttaa PC/SC määritykset. Projektin oma vastaava rajapinta [http://www.opensc-project.org/openct/ openct] on nykyään jo harvemmin käytössä.&lt;br /&gt;
&lt;br /&gt;
Joissakin Linux-jakeluissa on älykorttien käsittely on integroitu toimivaksi kokonaisuudeksi, joiden käyttöönotto parhaimmillaan edellyttää ainoastaan lukijan kytkentää ja WWW-selaimen asetusten asettamista.&lt;br /&gt;
&lt;br /&gt;
==== mPollux Digisign Client ====&lt;br /&gt;
&lt;br /&gt;
Väestörekisterikeskus tarjoaa maksutta Fujitsu Services Oy:n [https://eevertti.vrk.fi/Default.aspx?id=247 mPollux Digisign Client] -kortinlukijaohjelmiston henkilökortin käyttäjille. VRK:n WWW-sivuilta on mahdollista ladata ohjelmisto RHELille, Suselle ja Ubuntulle 32- ja 64-bittisenä versioina. Paketit toiminevat myös monissa niille sukua olevissa jakeluissa.&lt;br /&gt;
&lt;br /&gt;
Ohjelmistosta joulukuussa 2011 julkistettu 64-bittinen versio, mutta sitä ei tiettävästi ole saatavilla minkään Linux-jakelun virallisesta paketinhallinnasta. Käyttäjän tulee huolehtia päivityksistä manuaalisesti kyläilemällä Väestörekisterikeskuksen sivuilla säännöllisesti. mPollux-ohjelmistosta ei ole lähdekoodia saatavilla.&lt;br /&gt;
&lt;br /&gt;
===Sovellusohjelmien tuki===&lt;br /&gt;
&lt;br /&gt;
Sovellustuki voi olla joko suora tai perustua kirjastoon joka on säädetty tukemaan kortinlukijaa ja sen varmenteita.&lt;br /&gt;
&lt;br /&gt;
==== Firefox ====&lt;br /&gt;
&lt;br /&gt;
Palvelun niin vaatiessa, mahdollisuus muodostaa ns client-side varmennetta vaativa SSL-yhteys jossa palvelupää tunnistaa selaimen käyttäjän kortin esimmäisellä varmenteella. Tällöin käyttäjän tiedot löydetään palvelun tietokannoista sähköisellä asiointitunnuksella.&lt;br /&gt;
&lt;br /&gt;
Palvelu voi pyytää käyttäjää allekirjoittamaan sisältöä kortin toisella varmenteella. Teknisiä toteutustapoja on lukuisia ja erityisesti vanhat Java-pohjaiset toimivat huonosti. Uusimmat toteutukset käyttävät C-kielellä toteutettua selaimen pluginia joka tulee asentaa käyttäjän tietokoneeseen ennen palvelun käyttöä.&lt;br /&gt;
&lt;br /&gt;
==== Opera ====&lt;br /&gt;
&lt;br /&gt;
Selain (versio 11.60) ei tue pkcs#11 moduleita eikä siten myös älykortteja.&lt;br /&gt;
&lt;br /&gt;
==== PAM ====&lt;br /&gt;
&lt;br /&gt;
PAM (&#039;&#039;Pluggable Authentication Module&#039;&#039;) on asetettavissa tunnistamaan tietokoneeseen kirjautuja henkilökortin varmenteella. Tämä mahdollistaa kirjautumisen salasanan asemasta tai niiden rinnakkaisen käytön. Asetukset ja niiden määrittäminen on jakelukohtaisia. Toimiessaan PAM-tasolla, korttituki toimii niin merkkipohjaisessa kuin graafisessa sisäänkirjautumisessa.&lt;br /&gt;
&lt;br /&gt;
==== Ssh ====&lt;br /&gt;
&lt;br /&gt;
OpenSSH tukee henkilökortin käyttöä autentikointiin PKCS#11-rajapinnan kautta. Kortin sisältämän avainparin julkinen osa siirretään niille ssh-palvelimille, joihin halutaan olla yhteydessä. SSH-asiakasohjelma pystyy käyttämään kortilla olevaa salaista osaa kättelyssä palvelimen kanssa. Avainten hallintaan käytetään OpenSSH:n mukana tulevia &#039;&#039;&#039;ssh-agent&#039;&#039;&#039; ja &#039;&#039;&#039;ssh-add&#039;&#039;&#039; apuohjelmia.&lt;br /&gt;
&lt;br /&gt;
ssh-agent on ohjelma, joka säilöö ohjelman ajon ajaksi privaatteja salausavaimia ajomuistiin ssh-ohjelman käyttöön, mutta siinä on myös tuki opensc-pkcs11 pluginille. Tällöin niitä ei ladata muistiin, vaan vain viitataan kortilla olevaa avaimeen kirjaston rajapinnan kautta.&lt;br /&gt;
&lt;br /&gt;
Korttia pystyy käyttämään OpenSSH:n komentoriviohjelmien (&#039;&#039;ssh&#039;&#039;, &#039;&#039;scp&#039;&#039;, &#039;&#039;sftp&#039;&#039;) lisäksi ohjelmien kanssa, jotka käyttävät ssh:ta siirtotienään. Esimerkki tällaisesta ohjelmistosta on versionhallintajärjestelmä &#039;&#039;git&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== OpenOffice.org ====&lt;br /&gt;
&lt;br /&gt;
Dokumentteja on mahdollista allekirjoittaa kortin ensimmäisellä tunnistus-varmenteella. Tuki on ohjelmaan sisäänrakennettu eikä vaadi erillistä säätämistä toimiakseen, jos muu korttituki toimii.&lt;br /&gt;
&lt;br /&gt;
==== qDigiDoc ====&lt;br /&gt;
&lt;br /&gt;
Graafinen työkalu DigiDoc-määrityksen mukaisten digitaalisten säiliöiden (&#039;&#039;eng container&#039;&#039; ) luomiseen ja käsittelyyn. Varmenteella voi allekirjoittaa ja/tai salata säiliön sisällön. Sisältö voi olla mitä tiedostoja tahansa. Ohjelmisto on kehitetty Virossa ja on yhteiskunnassa laajalti käytetty ja hyväksytty sovellus, merkittävin henkilökortin käyttökohde WWW-tunnistamisen rinnalla. Ohjelmasta voi lukea lisää sen omalta [[qDigiDoc]] sivulta.&lt;br /&gt;
&lt;br /&gt;
==== Lähiverkon pääsynvalvonta - 802.1x ====&lt;br /&gt;
&lt;br /&gt;
IEEE:n standardi [http://en.wikipedia.org/wiki/802.1x 802.1x] määrittelee langallisen ja langattoman lähiverkon pääsynvalvontamekanismeja. Tämä mahdollistaa tekniikkaan tukevan lähiverkkolaitteen asettamisen tunnistamaan liikennöijän jo OSI-tasolla 2 (lähiverkon rautaprotokolla) ja haluttaessa sallimaan tai estämään liikennöinnin. &lt;br /&gt;
Käytettäessä [http://en.wikipedia.org/wiki/Extensible_Authentication_Protocol#EAP-TLS EAP-TLS] (&#039;&#039;Extensible Authentication Protocol - Transport Layer Security&#039;&#039;) asetusta, verkkoon liittyjä tunnistetaan varmenteella joka voidaan lukea älykortilta ja pääsynvalvontatiedot saadaan verkon yli RADIUS-palvelulta. Wikipedian mukaan EAP-TLS ratkaisu on yksi turvallisimmista mahdollisista käytettäessä älykorttia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Gnupg ohjelmat ====&lt;br /&gt;
&lt;br /&gt;
Gnupg:ssä on älykorttituki, mutta se vaatii sille itselleen kirjoitetun sovelluksen kortilta (eikä Suomen henkilökortti ole tälläinen). Näitä kortteja on tällä tietämyksellä  markkinoilla kaksi eri tyyppistä eikä niitä käytetä kansalaisvarmenteina, vaan avainparit luodaan korteille itse ja niiden merkitys on sen mukainen. Arkkitehtuuri on seuraava:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;gpg-agent&#039;&#039;&#039; käynnistyy käyttäjän istuntoon taustalle ja viestii eri prosessien kanssa (vastaa ssh-agent palvelua)&lt;br /&gt;
* &#039;&#039;&#039;scdaemon&#039;&#039;&#039; palvelu käynnistyy tarvittaessa gpg-agentin käynnistämänä ja käsittelee älykortteja pcscd-palvelun läpi.&lt;br /&gt;
* &#039;&#039;&#039;gpg2&#039;&#039;&#039; ja &#039;&#039;&#039;gpgsm&#039;&#039;&#039; toimivat asiakasohjelmina joko suoraan tai muiden käyttöliittymien käynnistäminä.&lt;br /&gt;
&lt;br /&gt;
Käyttäjäyhteisö ja kehittäjät ovat keskustelleet aiheesta aika-ajoin, mutta kehittäjien näkökanta on määrännyt tilanteen eikä varsinaista muutosta tilanteeseen ole tullut vuosiin. Erimielisyyttä on yritetty kiertää korvaamalla scdaemon prosessi vastaavalla jossa on opensc-pkcs11 tuki. Korvaavan taustapalvelun nimi on &#039;&#039;&#039;gnupg-pkcs11-scd&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== KDE ja PKCS#11 ====&lt;br /&gt;
&lt;br /&gt;
KDE työpöytäympäristön  tilanne kansallisten varmennekorttien käyttäjille ei ole hyvä. Työpöydän kehittäjät edustavat leiriä jossa RSA-Laboratorion PKCS määritykset nähdään vapaiden ohjelmistojen kilpailijoina ja niitä ei haluta tukea. KDE ympäristössä varmennetuki pohjautuu ainoastaan [[Gnupg]] ohjelmiston päälle rakennettuun &#039;&#039;&#039;Kleopatra&#039;&#039;&#039; varmennehallinta-sovellukseen ja yksittäisiin sovelluksiin joissa on Gnupg tuki. Kleopatralla voi jonkun verran hallita varmenteita ja se tunnistaa myös X.509 varmenteet joita voi siihen lisätä, mutta ohjelma ei suoraan tue opensc:n pkcs11-pluginia joka mahdollistaa X.509-tyyppisten varmenteiden käytön älykortilta.&lt;br /&gt;
&lt;br /&gt;
Gnupg-yhteensopivia sovelluksia ovat KMail sähköposti, Kaddressbook-osoitekirja ja Kgpg salaus ja allekirjoitustyökalu. Gnupg-ohjelmilla omat asetustiedostonsa joita Kleopatra muuttaa käynnistyessään yrittääkseen varmistaa toimivuuden.&lt;br /&gt;
&lt;br /&gt;
Henkilökortin käyttäjän näkökulmasta tilanne on sekava. Jos kortti on ylipäätään mahdollista saada toimimaan KDE-ohjelmissa, sen asettelu on lievästi sanottuna vaikeaa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OpenSC-sivustolla on [http://www.opensc-project.org/opensc/wiki/ApplicationSupport pitkä lista] erillaisista ohjelmistojen tuesta varmenteille.&lt;br /&gt;
&lt;br /&gt;
=== Apuohjelmat ===&lt;br /&gt;
&lt;br /&gt;
Tähän osioon on kerätty ohjelmat, joita ei normaalissa kortin käytössä tarvita, mutta voivat olla hyödyksi vianetsinnässä, PIN-koodien vaihdossa ja yleisen mielenkiinnon vuoksi. Ohjelmat pkcs11-tool ja pkcs15-tool löytyvät OpenSC-paketista.&lt;br /&gt;
&lt;br /&gt;
==== Korttipaikkojen listaus ====&lt;br /&gt;
  $ pkcs11-tool --module opensc-pkcs11.so -L&lt;br /&gt;
  Slot 8           OmniKey CardMan 3121 00 00&lt;br /&gt;
    token label:   HENKILOKORTTI (perustunnusluku)&lt;br /&gt;
    token manuf:   VRK-FINEID&lt;br /&gt;
    token model:   PKCS#15&lt;br /&gt;
    token flags:   login required, PIN initialized, token initialized&lt;br /&gt;
    serial num  :  4600015034197296&lt;br /&gt;
  Slot 9           OmniKey CardMan 3121 00 00&lt;br /&gt;
    token label:   HENKILOKORTTI (allekirjoitustunn&lt;br /&gt;
    token manuf:   VRK-FINEID&lt;br /&gt;
    token model:   PKCS#15&lt;br /&gt;
    token flags:   login required, PIN initialized, token initialized&lt;br /&gt;
    serial num  :  4600015034197296&lt;br /&gt;
&lt;br /&gt;
==== Varmenteiden listaus ====&lt;br /&gt;
  $ pkcs15-tool -c&lt;br /&gt;
  Using reader with a card: OmniKey CardMan 3121 00 00&lt;br /&gt;
  X.509 Certificate [todentamis- ja salausvarmenne]&lt;br /&gt;
          Flags    : 0&lt;br /&gt;
          Authority: no&lt;br /&gt;
          Path     : 3f004331&lt;br /&gt;
          ID       : 45&lt;br /&gt;
  &lt;br /&gt;
  X.509 Certificate [allekirjoitusvarmenne]&lt;br /&gt;
          Flags    : 0&lt;br /&gt;
          Authority: no&lt;br /&gt;
          Path     : 3f0050164332&lt;br /&gt;
          ID       : 46&lt;br /&gt;
  &lt;br /&gt;
  X.509 Certificate [VRK Gov. Root CA]&lt;br /&gt;
          Flags    : 0&lt;br /&gt;
          Authority: yes&lt;br /&gt;
          Path     : 3f004334&lt;br /&gt;
          ID       : 48&lt;br /&gt;
  &lt;br /&gt;
  X.509 Certificate [VRK Gov. CA for Citizen Qualified Certificates]&lt;br /&gt;
          Flags    : 0&lt;br /&gt;
          Authority: yes&lt;br /&gt;
          Path     : 3f004333&lt;br /&gt;
          ID       : 47&lt;br /&gt;
&lt;br /&gt;
==== PIN koodin vaihto ====&lt;br /&gt;
&lt;br /&gt;
==== PUK koodin käyttö ====&lt;br /&gt;
&lt;br /&gt;
PUK (&#039;&#039;pin unblock key&#039;&#039;) koodia tarvitaan jos kortti menee jumiin esimerkiksi liian monesta epäonnistuneesta varmenteen käyttöyrityksestä. Koodin voi antaa joko komentorivioptiona (selkeämpi kirjoittaa) tai syöttää sen interaktiivisesti. Vivulla &#039;&#039;&#039;-a&#039;&#039;&#039; määritellään mitä pin-koodia ollaan vaihtamassa, numero yksi tarkoittaa ensimmäistä koodia.&lt;br /&gt;
  $ pkcs15-tool --unblock-pin --puk 12345678 -a 1&lt;br /&gt;
  Using reader with a card: OmniKey CardMan 1021 01 00&lt;br /&gt;
  Enter new PIN [PIN1]: ****&lt;br /&gt;
  Enter new PIN again [PIN1]: ****&lt;br /&gt;
&lt;br /&gt;
==== CA-varmenteiden lukeminen kortilta ====&lt;br /&gt;
&lt;br /&gt;
Henkilökortilla on Väestörekisterikeskuksen juuri- ja kansalais- eli ns CA-varmenteet. CA-varmennetta tarvittaessa, järkevintä on ottaa se henkilökortilta eikä ladata verkosta jotta ei altistu teoreettiselle ns [http://fi.wikipedia.org/wiki/Man-in-the-middle_attack &#039;&#039;man-in-the-middle&#039;&#039;] hyökkäykselle. Valtaosa on saanut korttinsa suoraan poliisilta jolloin voidaan olla suhteellisen varmoja, ettei varmennetta tai korttia ole väärennetty. Jos sovellus ei tue varmenteiden ketjutusta, tulee käyttää sitä CA-varmennetta jolla itse osapuolen varmenne on allekirjoitettu. Muussa tapauksessa juurivarmenne riittää.&lt;br /&gt;
&lt;br /&gt;
Varmenteen saa kopioitua kortilta tiedostoon käyttäen &#039;&#039;&#039;-r&#039;&#039;&#039; vipua ja varmenteen &#039;&#039;id-numeroa&#039;&#039;. Yhdistettynä nämä yhdeksi komennoksi:&lt;br /&gt;
&lt;br /&gt;
  $ pkcs15-tool -r $(pkcs15-tool -c|grep  -A4 &amp;quot;Root&amp;quot;|grep ID|cut -d: -f2) &amp;gt; vrkrootca.pem&lt;br /&gt;
&lt;br /&gt;
Yllä itse varmenne luetaan kortilta ja tulos ohjataan tiedostoon. Tiedostoa voi käyttää sellaisenaan esim WWW-selaimessa tai Apache-httpd palvelimessa.&lt;br /&gt;
&lt;br /&gt;
==== Yhteiskäyttö ja Opensc &amp;lt;= 0.11 ====&lt;br /&gt;
&lt;br /&gt;
Jotkin sovellukset vaativat kortin yhtäaikaista käyttöä (esim https tunnistus ja pin2 allekirjoitus sen yhteyden aikana). Tämä saattaa olla oletuksen estetty &amp;lt;code&amp;gt;/etc/opensc.conf&amp;lt;/code&amp;gt; tiedostossa  &#039;&#039;&#039;lock_login&#039;&#039;&#039; asetuksella, rivi joka on opensc-0.11 ja varhaisemmissa kommentoitu pois kokonaan, siten oletuksena &#039;&#039;&#039;true&#039;&#039;&#039; tilassa. Poistamalla kommentin ja jättämällä &#039;&#039;&#039;false&#039;&#039;&#039; arvon, lukitus estyy ja useat yhtäaikaiset sovellukset toimivat.&lt;br /&gt;
&lt;br /&gt;
  # By default, the OpenSC PKCS#11 module will lock your card&lt;br /&gt;
  # once you authenticate to the card via C_Login.&lt;br /&gt;
  # This is to prevent other users or other applications&lt;br /&gt;
  # from connecting to the card and perform crypto operations&lt;br /&gt;
  # (which may be possible because you have already authenticated&lt;br /&gt;
  # with the card).&lt;br /&gt;
  &lt;br /&gt;
  # Thus it is impossible to use several smart card aware&lt;br /&gt;
  # applications at the same time, e.g. you cannot run both&lt;br /&gt;
  # Firefox and Thunderbird at the same time, if both are&lt;br /&gt;
  # configured to use your smart card.&lt;br /&gt;
  #&lt;br /&gt;
  # Default: true&lt;br /&gt;
  lock_login = false;&lt;br /&gt;
&lt;br /&gt;
Opensc &amp;gt;= 0.12 asetus on pois päältä oletuksena ja käyttäjän toimenpiteitä ei tarvita. Asetustiedostossa on asiaa selitetty runsaammin englanniksi jos sen taustat kiinnostavat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Sovellusten jumiutumiset ====&lt;br /&gt;
&lt;br /&gt;
Varmenteita käyttävät ohjelmat ikävä kyllä jumittavat usein. Tällöin voi kokeilla kortin irroittamista lukijasta ja se usein vapauttaa jumitumisen ja jämähtänyttä toimintoa voi kokeilla heti uudelleen kortin lukijaan palauttamisen jälkeen.&lt;br /&gt;
&lt;br /&gt;
Toisinaan varmenteen luku ei tunnu onnistuvan ollenkaan ja silloin kannttaa kokeilla &#039;&#039;lypsämistä&#039;&#039; antamalla seuraava komento monta kertaa peräjälkeen kunnes se onnistuu:&lt;br /&gt;
&lt;br /&gt;
 $ pkcs15-tool -c&lt;br /&gt;
 PKCS#15 binding failed: Wrong length&lt;br /&gt;
 $ pkcs15-tool -c&lt;br /&gt;
 PKCS#15 binding failed: Wrong length&lt;br /&gt;
 $ pkcs15-tool -c&lt;br /&gt;
 Using reader with a card: OmniKey CardMan 3121 01 00&lt;br /&gt;
 X.509 Certificate...&lt;br /&gt;
&lt;br /&gt;
Komento tulee antaa samana käyttäjänä minä on istuntoon kirjautunut. Ongelma on kehittäjien tiedossa.&lt;br /&gt;
&lt;br /&gt;
Joskus koko korttiin ei saada yhteyttä:&lt;br /&gt;
&lt;br /&gt;
 $ pkcs15-tool -c&lt;br /&gt;
 Using reader with a card: OmniKey CardMan 1021 00 00&lt;br /&gt;
 Failed to connect to card: Unknown error&lt;br /&gt;
&lt;br /&gt;
Jos käytössä on pcscd, sen uudelleenkäynnistäminen auttaa:&lt;br /&gt;
&lt;br /&gt;
 # service pcscd restart&lt;br /&gt;
 Redirecting to /bin/systemctl  restart pcscd.service&lt;br /&gt;
&lt;br /&gt;
Tämän jälkeen tilanne on normali jälleen. Sovellukset kuten WWW-selain tulee käynnistää uudelleen koska sen yhteydet pcscd:hen ovat katkenneet eivätkä ne osaa muodostaa niitä itse uudelleen.&lt;br /&gt;
&lt;br /&gt;
== Sovelluskohtaisia ohjeita ==&lt;br /&gt;
&lt;br /&gt;
Jos käyttöön liittyy vastapuolen varmenne joka on Väestörekisterkeskuksen allekirjoittama, niin luotettavuuden todentaminen tapahtuu VRK:n CA-varmennetta vasten joka tulee olla asennettuna. Tapahtuma voi olla esimerkiksi allekirjoitettu tai salattu sähköpostiviesti tai myös WWW-palvelin joka käyttää VRK:n allekirjoittamaa palvelinvarmennetta.&lt;br /&gt;
&lt;br /&gt;
Varmenenteen voi kopioida kortilta suoraan kuten kohdasssa [[HST#CA-varmenteiden_lukeminen_kortilta|CA-varmenteiden lukeminen kortilta]] ohjeistetaan tai ladata se verkosta tietokoneelle VRK:n [http://fineid.fi/default.aspx?docid=2237&amp;amp;site=9&amp;amp;id=332 CA-varmenne sivulta]. Useimmissa tapauksissa ns juurivarmenne riittää (&#039;&#039;eng Root CA&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Huom! Firefox versio 57 (julkaistu 14.11.2017) ei tue HST-korttia millään käyttöjärjestelmällä.&#039;&#039;&#039; Toistaiseksi ei tueta mitään pluginia, ei OpenSC:tä eikä mPollux-ohjelmistoa. Jos haluat käyttää korttia Firefoxilla, kannattaa käyttää Firefoxin versiota 56 tai aikaisempaa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Firefoxin varmennekortti-tuen tehtävälista:&lt;br /&gt;
&lt;br /&gt;
# Juurivarmenteen asentaminen (pakollinen)&lt;br /&gt;
# Ulkoisen korttituen lisääminen (yleisimmin tarvittava)&lt;br /&gt;
# Allekirjoitus-pluginin asentaminen&lt;br /&gt;
&lt;br /&gt;
==== Juurivarmenteen asentaminen ====&lt;br /&gt;
&lt;br /&gt;
Avaa PEM-muotoinen X.509 varmennetiedosto &#039;&#039;File -&amp;gt; Open&#039;&#039; ja etsi kyseinen tiedosto, paina &#039;&#039;Open&#039;&#039; tai klikkaa varmenteen linkkiä VRK:n sivulla.&lt;br /&gt;
&lt;br /&gt;
Valise kaikki:&lt;br /&gt;
* &#039;&#039;Trust this CA to identify web sites&#039;&#039;&lt;br /&gt;
* &#039;&#039;Trust this CA to identify email users&#039;&#039;&lt;br /&gt;
* &#039;&#039;Trust this CA to identify software developers&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Paina &#039;&#039;Ok&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Korttituen lisääminen ====&lt;br /&gt;
&lt;br /&gt;
Varmennekortin tuki lisätään turva-asetuksista lisäämällä sinne &#039;&#039;&#039;onepin-opensc-pkcs11&#039;&#039;&#039; plugin. Tämä sellaisenaan mahdollistaa varmenteiden käytön asiakaspään tunnistamisessa SSL-yhteyksillä. Erilliset pluginit jotka käyttävät varmennekorttia, tarvitsevat myöskin tätä asetusta.&lt;br /&gt;
&lt;br /&gt;
Suomenkielisessä selaimessa:&lt;br /&gt;
&lt;br /&gt;
*valitse &#039;&#039;Muokkaa&#039;&#039; &amp;amp;rarr;&#039;&#039; Asetukset&#039;&#039; &amp;amp;rarr;&#039;&#039; Lisäasetukset&#039;&#039; &amp;amp;rarr; &#039;&#039;Salaus&#039;&#039; &amp;amp;rarr; &#039;&#039;Turvallisuuslaitteet&#039;&#039;&lt;br /&gt;
*paina &#039;&#039;Lataa&#039;&#039;&lt;br /&gt;
*lisää: &amp;lt;tt&amp;gt;/usr/lib/onepin-opensc-pkcs11.so&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Englanninkielisessä selaimessa:&lt;br /&gt;
&lt;br /&gt;
*valitse &#039;&#039;Edit&#039;&#039; &amp;amp;rarr; &#039;&#039;Preferences&#039;&#039; &amp;amp;rarr; &#039;&#039;Advanced&#039;&#039; &amp;amp;rarr; &#039;&#039;Encryption&#039;&#039; &amp;amp;rarr; &#039;&#039;Security Devices&#039;&#039;&lt;br /&gt;
*paina &#039;&#039;Load&#039;&#039;&lt;br /&gt;
*lisää: &amp;lt;tt&amp;gt;/usr/lib/onepin-opensc-pkcs11.so&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== pin2-koodin turha kysely ja onepin tausta ====&lt;br /&gt;
&lt;br /&gt;
Firefoxissa on &#039;&#039;ominaisuus&#039;&#039; joka pistää sen kysymään joka käyttökerta molempia pin-koodeja. Tämän ratkaisusta oli näkemyseroja joka johti pattitilanteeseen ja OpenSC-projekti päätyi kiertämään selaimen kehittäjien jääräpäisyyden tekemällä häkkäyksen itse pluginiin ja oman versionsa siitä jota kutsutaan &#039;&#039;&#039;onepin-opensc-pkcs11&#039;&#039;&#039; pluginiksi. Aiheesta enemmän projektin postilistan [http://www.opensc-project.org/pipermail/opensc-devel/2007-June/010031.html viestissä].&lt;br /&gt;
&lt;br /&gt;
==== Error code: ssl_error_renegotiation_not_allowed ====&lt;br /&gt;
&lt;br /&gt;
Uudemmat Firefox-versiot (versiosta 4) vaativat joidenkin palveluiden kohdalla selaimen lisäasetuksen. Tämä johtuu vuonna 2009 löydetystä [https://wiki.mozilla.org/Security:Renegotiation suunnitteluvirheestä TLS-protokollassa], joka mahdollistaa ns. mies välissä -hyökkäyksen. Firefox yrittää suojautua tätä haavoittuvuutta vastaan kieltämällä TLS-protokollan uusintakättelyn. Tätä ei ole otettu huomioon (tätä kirjoitettaessa 5/2011) muun muasssa niissä palveluissa, jotka käyttävät ns. VETUMA-palvelua (Verkkotunnistautuminen ja maksaminen) käyttäjän tunnistamiseen.&lt;br /&gt;
&lt;br /&gt;
Kunnes tämä ongelma on ratkaistu palvelinpuolella, ongelman pystyy kiertämään sallimalla Firefoxissa TLS-protokollan kaksoiskättelyn haluamilleen osoitteille &amp;amp;ndash; VETUMA-palvelun tapauksessa osoite on &#039;&#039;tunnistus.suomi.fi&#039;&#039;. Asetukset saa näkyville Firefoxissa kirjoittamalla osoitekenttään about:config. Etsi listasta kenttä &amp;lt;code&amp;gt;security.ssl.renego_unrestricted_hosts&amp;lt;/code&amp;gt; ja anna sille arvoksi esimerkiksi &amp;lt;code&amp;gt;tunnistus.suomi.fi,tyvi.elma.fi&amp;lt;/code&amp;gt;. Asetuksen vaihdon onnistumisen voi kokeilla VRK:n [https://verkkopalvelu.vrk.fi/Omat/Etusivu.aspx Omien tietojen tarkistus] -palvelusta. Huomaa, että asetuksessa tulee olla itse kohde palvelin, ei pelkkä domain.&lt;br /&gt;
&lt;br /&gt;
===Thunderbird===&lt;br /&gt;
&lt;br /&gt;
*valitse &#039;&#039;Muokkaa&#039;&#039; &amp;amp;rarr; &#039;&#039;Asetukset&#039;&#039; &amp;amp;rarr; &#039;&#039;Lisäasetukset&#039;&#039; &amp;amp;rarr; &#039;&#039;Varmenteet&#039;&#039; &amp;amp;rarr; &#039;&#039;Turvallisuuslaitteet&#039;&#039;&lt;br /&gt;
*paina &#039;&#039;Lataa&#039;&#039;&lt;br /&gt;
*lisää: &amp;lt;tt&amp;gt;/usr/lib/opensc-pkcs11.so&amp;lt;/tt&amp;gt;&lt;br /&gt;
*edelleen lisäasetuksista valitse &#039;&#039;Näytä varmenteet&#039;&#039;&lt;br /&gt;
*valitse &#039;&#039;Varmentajat&#039;&#039;-välilehdeltä omat Väestörekisterikeskus CA:n alla olevat &#039;&#039;Varmenteet&#039;&#039; ja &#039;&#039;Muokkaa&#039;&#039;&lt;br /&gt;
*lisää valinnat: &amp;quot;Tämä varmenne voi todentaa WWW-sivustoja&amp;quot; ja &amp;quot;Tämä varmenne voi todentaa sähköpostittajia&amp;quot;&lt;br /&gt;
*valitse &#039;&#039;Muokkaa&#039;&#039; &amp;amp;rarr; &#039;&#039;Tilien asetukset&#039;&#039;&lt;br /&gt;
*halutun tilin &#039;&#039;Turvallisuus&#039;&#039;-valikosta valitse kortin todentamis- ja salausvarmenne&lt;br /&gt;
&lt;br /&gt;
Thunderbirdin ja Firefoxin voi saada käyttämään samaa varmennetietokantaa. Miten tämä tapahtuu on selitetty [https://wiki.mozilla.org/NSS_Shared_DB_Howto Mozillan Wiki-sivulla]. Yhteisen tietokannan etuna on se, että varmenteen saa tuotua tietokantaan yhdella klikkauksella Firefoxissa (esimerkiksi [http://vrk.fineid.fi/certsearchB.asp?todo=setlang&amp;amp;lang=fi VRK:n varmennehakusivulta]), jonka jälkeen varmenne on automaattisesti käytettävissä myös Thunderbirdissä.&lt;br /&gt;
&lt;br /&gt;
=== qDigiDoc ===&lt;br /&gt;
&lt;br /&gt;
Sovelluksen pitäisi toimia myös Suomen henkilökortilla, mutta se vaatii hieman toimenpiteitä ensin. Ohjeet löytyvät kokonaisuudessaan [[qDigiDoc]] sivulta.&lt;br /&gt;
&lt;br /&gt;
=== Ssh ===&lt;br /&gt;
Jotta linuxiin voi ottaa SSH-yhteyden älykortilla, täytyy älykortilla oleva julkinen avain tallentaa /home/&amp;lt;user&amp;gt;/.ssh hakemiston authorized_keys tiedostoon [https://linux.fi/wiki/OpenSSH OpenSSH]-formaatissa.&lt;br /&gt;
Ohjeet siihen miten julkinen avain muutetaan OpenSSH-formaattiin löytyy [https://joscor.com/blog/convert-windows-public-certificate-cer-to-openssh-public-key/ täältä].&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
Avaimia lisätään ssh-agent -ohjelmaan ssh-add -ohjelmalla. Älykorttien yhteydessä käytetään -s-optiota, jolla kerrotaan pluginin polku. Kortin avaimeen liittyvä PIN kysytään &amp;lt;code&amp;gt;ssh-add&amp;lt;/code&amp;gt;-komennon yhteydessä ja se jää ssh-agent prosessin muistiin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Käyttö&#039;&#039;&#039;:&lt;br /&gt;
* Aseta kortti lukijaan ja lisää plugin:&lt;br /&gt;
  &amp;lt;code&amp;gt;$ ssh-add -s /usr/lib/opensc-pkcs11.so&amp;lt;/code&amp;gt;&lt;br /&gt;
* Avainparin julkisen avaimen saa tulostettua ssh-add -L -komennolla:&lt;br /&gt;
 $ ssh-add -L&lt;br /&gt;
 ssh-rsa AAAAB3NzaC...VAkWbd0lYyWrg78Q== /usr/lib64/opensc-pkcs11.so&lt;br /&gt;
* Jos tätä varmennetta ei ole aiemmin käytetty ssh:n kanssa, lisää ylläoleva tekstirimpsu (koko rivi sellaisenaan) &amp;lt;code&amp;gt;~/.ssh/authorized_keys&amp;lt;/code&amp;gt; tiedostoon palvelimella.&lt;br /&gt;
* Nyt ssh-ohjelmat toimivat normaalisti kortin varmenteilla.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vianmääritys&#039;&#039;&#039;:&lt;br /&gt;
* Varmista, että ssh-agent on käynnistynyt sisäänkirjautumisesi yhteydessä (prosessilistauksessa näkyy &#039;&#039;ssh-agent&#039;&#039;). Käynnistäminen riippuu Linux-jakelustasi, yleensä se on automaattinen eikä mitään tarvitse tehdä. Jos sitä ei siitä huolimatta ole käynnissä, se on voinut kräshätä.&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
===== PuTTY =====&lt;br /&gt;
&lt;br /&gt;
PuTTY ei oletuksena tue älykortilla olevan yksityisen avaimen noutoa. Jotta Windows käyttöjärjestelmällä voi kirjautua linuxiin henkilökortilla, täytyy käyttää PuTTY SC-ohjelmaa [http://www.joebar.ch/puttysc/]. &lt;br /&gt;
Ohjelman asetuksissa valitaan Connection -&amp;gt; SSH -&amp;gt; Pkcs11 välilehdeltä PKCS#11 kirjastoksi mpollux-ohjelman mukana tuleva cryptoki.dll tiedosto, joka on oletuksena polussa C:\Program Files (x86)\Fujitsu\mPollux DigiSign Client\cryptoki.dll. Token Label kohtaan valitaan &amp;quot;Henkilökortti&amp;quot; ja &amp;quot;Certificate Label&amp;quot; kohdasta valitaan joko henkilökohtainen salausvarmenne tai allekirjoitusvarmenne sen mukaan kumpi on asennettu palvelimelle.&lt;br /&gt;
&lt;br /&gt;
===== FileZilla =====&lt;br /&gt;
&lt;br /&gt;
FileZilla ei tue PKSC11 todentamista, mutta se tukee yksityisen avaimen hakemista PageAnt-ohjelman kautta. PageAnt-ohjelmasta täytyy asentaa modifioitu [http://www.joebar.ch/puttysc/ PageAntSC]-versio joka osaa hakea kortinlukulaitteesta salausavaimen.&lt;br /&gt;
&lt;br /&gt;
Käynnistä PageAntSC ohjelma ennen FileZillalla yhdistämistä, varmista että tehtäväpalkissa näkyy ohjelman kuvake (tietokone jolla on hattu), ja kuvakkeesta aukeavassa ohjelmassa on listattu henkilökorttivarmenne.&lt;br /&gt;
Yhdistä nyt FileZillalla linuxiin jättäen salasana-kenttä tyhjäksi, tällöin PageAntSC-ohjelma kysyy PIN-koodia ja FileZilla kirjautuu Linuxiin henkilökortin varmenteella.&lt;br /&gt;
&lt;br /&gt;
=== Lähiverkon pääsynvalvonta - 802.1x ===&lt;br /&gt;
&lt;br /&gt;
Asetukset määritellään &#039;&#039;wpa_supplicant&#039;&#039; asetustiedostoihin, joka toisissa jakeluissa sijaita esimerkiksi &amp;lt;code&amp;gt;/etc/wpa_supplicant/wpa_supplicant.conf&amp;lt;/code&amp;gt; tiedostossa.&lt;br /&gt;
  &lt;br /&gt;
  pkcs11_module_path=/usr/lib/pkcs11/opensc-pkcs11.so&lt;br /&gt;
  &lt;br /&gt;
  # Example of EAP-TLS with smartcard (openssl engine)&lt;br /&gt;
  network={&lt;br /&gt;
    ssid=&amp;quot;example.com&amp;quot;&lt;br /&gt;
    key_mgmt=WPA-EAP&lt;br /&gt;
    eap=TLS&lt;br /&gt;
   	proto=RSN&lt;br /&gt;
  	 pairwise=CCMP TKIP&lt;br /&gt;
   	group=CCMP TKIP&lt;br /&gt;
  	 identity=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
  	 ca_cert=&amp;quot;/etc/pki/tls/certs/vrkrootca.pem&amp;quot;&lt;br /&gt;
  	 client_cert=&amp;quot;/etc/pki/tls/certs/user.pem&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  	 engine=1&lt;br /&gt;
  &lt;br /&gt;
  	 # use the opensc engine&lt;br /&gt;
  	 #engine_id=&amp;quot;opensc&amp;quot;&lt;br /&gt;
  	 #key_id=&amp;quot;45&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  	 # use the pkcs11 engine&lt;br /&gt;
    engine_id=&amp;quot;pkcs11&amp;quot;&lt;br /&gt;
    key_id=&amp;quot;id_45&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
    # Optional PIN configuration; this can be left out and PIN will be&lt;br /&gt;
    # asked through the control interface&lt;br /&gt;
    # pin=&amp;quot;1234&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Asetusohje on peräisin [http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf esimerkistä].&lt;br /&gt;
&lt;br /&gt;
=== Gnupg ohjelmistot ===&lt;br /&gt;
&lt;br /&gt;
Gnupg:n eri komponenttien asetuksia muutetaan käyttäjän kotihakemiston &amp;lt;code&amp;gt;.gnupg/&amp;lt;/code&amp;gt; hakemistossa. Henkilökorttituen lisääminen edellyttää &#039;&#039;&#039;scdaemon&#039;&#039;&#039;-palvelun korvaamista &#039;&#039;&#039;gpg-agent.conf&#039;&#039;&#039; tiedostossa:&lt;br /&gt;
&lt;br /&gt;
  scdaemon-program /usr/bin/gnupg-pkcs11-scd&lt;br /&gt;
  pinentry-program /usr/bin/pinentry-qt&lt;br /&gt;
&lt;br /&gt;
ja kyseisten palveluiden uudelleenkäynnistämistä. Jos korttituki toimii, komento:&lt;br /&gt;
&lt;br /&gt;
 $ gpg2 -K&lt;br /&gt;
&lt;br /&gt;
listaa varmenteet jossa on mukana älykortin varmenne. Jos ei, asetukset kaipaavat lisää säätämistä joita on ohjeistettu omalla [[gnupg-pkcs11-scd]] sivulla.&lt;br /&gt;
&lt;br /&gt;
=== Kleopatra ===&lt;br /&gt;
&lt;br /&gt;
Kleopatra osaa muuttaa tarvitsemiaan Gnupg:n asetuksia tiedostoista: &#039;&#039;&#039;options&#039;&#039;&#039;, &#039;&#039;&#039;gpg-agent.conf&#039;&#039;&#039;, &#039;&#039;&#039;gpgsm.conf&#039;&#039;&#039; ja &#039;&#039;&#039;scdaemon.conf&#039;&#039;&#039;. Viimeeksi mainitulla ei ole merkitystä jos käytetään korvaavaa palvelua ja sen asetustiedostoa &#039;&#039;&#039;gnupg-pkcs11-scd.conf&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Jakelukohtaisia ohjeita ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; &lt;br /&gt;
|+ominaisuusvertailu&lt;br /&gt;
|-&lt;br /&gt;
! ominaisuus / jakelu&lt;br /&gt;
! Arch Linux&lt;br /&gt;
! Fedora&lt;br /&gt;
! Gentoo&lt;br /&gt;
! OpenSuse&lt;br /&gt;
! RHEL&lt;br /&gt;
! Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
| Kyseinen jakeluversio || || 14 || || || 5 ||&lt;br /&gt;
|-&lt;br /&gt;
| Oletusrajapinta || pcsc || pcsc || pcsc ||  || pcsc ||&lt;br /&gt;
|-&lt;br /&gt;
| OpenSC versio || 0.16.0-5 || 0.11 || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| Korttituki asentuu oletuksena || kyllä || kyllä || ei  || || kyllä ||&lt;br /&gt;
|-&lt;br /&gt;
| Korttituki käynnistyy oletuksena || ei || kyllä || ei || || kyllä ||&lt;br /&gt;
|-&lt;br /&gt;
| Firefox näkee pluginin automaattisesti || ei || ei || ei ||  || ei ||&lt;br /&gt;
|- &lt;br /&gt;
| ssh-agent käynnistyy oletuksena || ei || kyllä || ei || ei || kyllä ||&lt;br /&gt;
|-&lt;br /&gt;
| PAM tukee älykorttia || ei || kyllä || kyllä || || kyllä ||&lt;br /&gt;
|-&lt;br /&gt;
| PAM työkalu tukee älykorttia || ei || vähän ||  || || vähän ||&lt;br /&gt;
|-&lt;br /&gt;
| Löytyykö CA-avaimet jakelusta || ei || ei || ei || || ei ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Vertailussa tulisi käyttää viimeisintä vakaata jakeluversiota. Jos näin ei ole, taulukkoa tulee päivittää.&lt;br /&gt;
&lt;br /&gt;
===Arch Linux===&lt;br /&gt;
&lt;br /&gt;
* Asenna paketit &#039;&#039;&#039;ccid&#039;&#039;&#039;, &#039;&#039;&#039;pcsclite&#039;&#039;&#039;, &#039;&#039;&#039;opensc&#039;&#039;&#039;&lt;br /&gt;
* Muuta palvelu pcscd automaattisesti käynnistyväksi:&lt;br /&gt;
 sudo systemctl enable pcsc&lt;br /&gt;
* Käynnistä palvelu pcscd:&lt;br /&gt;
 systemctl start pcscd&lt;br /&gt;
* onepin-opensc-pkcs11.so -plugin sijaitsee hakemistossa &amp;lt;code&amp;gt;/usr/lib&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CentOS ===&lt;br /&gt;
&lt;br /&gt;
Fedoran ohjeet pitäisi käydä sellaisenaan.&lt;br /&gt;
&lt;br /&gt;
=== Fedora ===&lt;br /&gt;
&lt;br /&gt;
* Lukijat: Omnikey-1021,-3021,-4321 toimii, Omnikey-4040 ei taida enää viimeisimmissä jakeluissa.&lt;br /&gt;
* Vaaditut paketit: &#039;&#039;&#039;opensc&#039;&#039;&#039;, &#039;&#039;&#039;pcsc-lite&#039;&#039;&#039; (tai &#039;&#039;&#039;openct&#039;&#039;&#039;).&lt;br /&gt;
* Initscriptit: openct ja pcscd oletuksena päällä asennuksen jälkeen.&lt;br /&gt;
* Sovelluspaketit: &#039;&#039;&#039;firefox&#039;&#039;&#039;, &#039;&#039;&#039;thunderbird&#039;&#039;&#039;, &#039;&#039;&#039;openssh-clients&#039;&#039;&#039;, &#039;&#039;&#039;qdigidoc&#039;&#039;&#039;, &#039;&#039;&#039;mozilla-esteid&#039;&#039;&#039; (digiallekirjoitus), &#039;&#039;&#039;kdepim&#039;&#039;&#039; (kleopatra), &#039;&#039;&#039;pam_pkcs11&#039;&#039;&#039;.&lt;br /&gt;
* CA-avaimien paketti: &#039;&#039;&#039;ca-certificates&#039;&#039;&#039;&lt;br /&gt;
* Pakettienhallintatyökalu: [[Yum]] ja [[PackageKit]]&lt;br /&gt;
* ssh-agent käynnistyy automaattisesti jos on asennettu.&lt;br /&gt;
* onepin-opensc-pkcs11.so plugin sijaitsee arkkitehtuurin mukaisessa hakemistossa joko: &amp;lt;code&amp;gt;/usr/lib/onepin-opensc-pkcs11.so&amp;lt;/code&amp;gt; tai &amp;lt;code&amp;gt;/usr/lib64/onepin-opensc-pkcs11.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
* ssh-agent: KDE-ympäristöllä pitää poistaa kommenteista agentin käynnistyskomennot tiedostossa /etc/kde/startup/agent-startup.sh&lt;br /&gt;
&lt;br /&gt;
=== OpenSuse ===&lt;br /&gt;
&lt;br /&gt;
* Pakettienhallintatyökalu: [[Zypper]] ja [[PackageKit]]&lt;br /&gt;
&lt;br /&gt;
=== RHEL (Red Hat Enterprise Linux) ===&lt;br /&gt;
&lt;br /&gt;
Käynnistä Subscription Manager, mene System-valikkoon ja valitse Repositories. Merkitse {rhel-7-server-optional-rpms | rhel-7-desktop-optional-rpms | rhel-7-workstation-optional-rpms} pakettivaranto käyttöön.&lt;br /&gt;
&lt;br /&gt;
Nyt voit jatkaa Fedoran ohjeilla.&lt;br /&gt;
&lt;br /&gt;
===Ubuntu===&lt;br /&gt;
&lt;br /&gt;
* Asenna paketit &amp;lt;tt&amp;gt;opensc&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;mozilla-opensc&amp;lt;/tt&amp;gt; ja &amp;lt;tt&amp;gt;pcscd&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Pakettienhallintatyökalu: [[Apt]], [[PackageKit]]&lt;br /&gt;
&lt;br /&gt;
== Katso myös ==&lt;br /&gt;
&lt;br /&gt;
* [[Mobiilivarmenne]]&lt;br /&gt;
* [[Apache_httpd]]&lt;br /&gt;
* [[Firefox]]&lt;br /&gt;
* [[Gnupg]] - GNU Privacy Guard&lt;br /&gt;
* [[gnupg-pkcs11-scd]] - pkcs11 plugin Gnupg ohjelmistoon.&lt;br /&gt;
* [[Openoffice]] - OpenOffice.org toimisto-ohjelmisto&lt;br /&gt;
* [[qDigiDoc]]&lt;br /&gt;
* [[PAM]] - Pluggable Authentication Modules&lt;br /&gt;
* [[SSH]] - Secure SHell&lt;br /&gt;
* [[Thunderbird]]&lt;br /&gt;
* [[VPN]] - Virtual Private Network&lt;br /&gt;
* [[Wpa_supplicant]]&lt;br /&gt;
&lt;br /&gt;
== Aiheesta muualla ==&lt;br /&gt;
&lt;br /&gt;
* [http://fineid.fi/ http://fineid.fi] - Suomalaisen henkilökortin kotisivu.&lt;br /&gt;
* [http://www.vaestorekisterikeskus.fi/ http://www.vaestorekisterikeskus.fi/] - Väestörekisterikeskus&lt;br /&gt;
* [http://fi.wikipedia.org/wiki/HST http://fi.wikipedia.org/wiki/HST] - Henkilökortti Wikipediassa.&lt;br /&gt;
* [http://fi.wikipedia.org/wiki/PKI http://fi.wikipedia.org/wiki/PKI] - Julkisen avaimen infrastruktuuri Wikipediassa.&lt;br /&gt;
* [https://github.com/OpenSC/OpenSC/wiki/ opensc-wiki ] - OpenSC korttityökalujen kotisivu.&lt;br /&gt;
* [https://github.com/OpenSC/OpenSC/wiki/Finnish-FINEID OpenSC-wiki - FinnishEid] - OpenSC projektin FINEID sivu.&lt;br /&gt;
* [http://www.cryptsoft.com/pkcs11doc/v230/ http://www.cryptsoft.com/pkcs11doc/v230/] -  pkcs#11 standardi.&lt;br /&gt;
* [http://www.openxades.org/files/DigiDoc%20format%201.3.doc openxades.org - digidoc-1.3] - DigiDoc määritys.&lt;br /&gt;
* [http://code.google.com/p/esteid/ http://code.google.com/p/esteid/]- Viron henkilökortin ohjelmistokehitys.&lt;br /&gt;
* [http://id.ee/ http://id.ee/] - Viron henkilökortin ohjesivusto (est, eng, rus).&lt;br /&gt;
* [https://bugs.kde.org/show_bug.cgi?id=116201 kde.org - bug 116201] - Keskustelua KDE:n pkcs#11 tuesta.&lt;br /&gt;
* [https://www.bugzilla.mozilla.org/show_bug.cgi?id=511652 mozilla.org - Add a GUI option to toggle the &amp;quot;Friendly certs&amp;quot; option of NSS]&lt;br /&gt;
* [irc://irc.freenode.net/opensc irc://irc.freenode.net/opensc] - OpenSC IRC kanava.&lt;br /&gt;
* [irc://irc.freenode.net/fineid irc://irc.freenode.net/fineid] - #fineid IRC kanava.&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Laitteisto]]&lt;br /&gt;
[[Luokka:Ohjeet]]&lt;br /&gt;
[[Luokka:Tietoturva]]&lt;br /&gt;
[[Luokka:Suomi]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=HST&amp;diff=47794</id>
		<title>HST</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=HST&amp;diff=47794"/>
		<updated>2017-09-02T19:14:08Z</updated>

		<summary type="html">&lt;p&gt;Jem: /* Jakelukohtaisia ohjeita */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Väestörekisterikeskus tarjoaa Suomessa  [http://www.vaestorekisterikeskus.fi/default.aspx?id=134 henkilön sähköisen tunnistamisen] (&#039;&#039;HST, eng FINEID&#039;&#039;) ratkaisua sirullisella henkilökortilla. Kortin myöntää poliisi. Henkilökortilla on [[wikipedia:fi:PKI|julkisen avaimen menetelmään]] perustuva laatuvarmenne. Varmenteen avulla voi tunnistautua, allekirjoittaa ja salata dokumentteja ja viestiliikennettä.&lt;br /&gt;
&lt;br /&gt;
HST-kortin etuina on vahvan salauksen käyttö yhdistettynä vaatimukseen fyysisen esineen (&amp;quot;token&amp;quot;) hallussapitoon. Toisin sanoen, niin kauan kuin esine (kortti) on hallussasi, kukaan ei pysty käyttämään väärin korttiin liittyvää sähköistä identiteettiä. Kortti on maksukortin kokoinen, helposti mukana pidettävä ja sen käyttö on suojattu PIN-koodilla. PIN-koodi on aina sama, riippumatta mihin palveluun kortilla tunnistaudutaan.&lt;br /&gt;
&lt;br /&gt;
== Peruskäyttäjän tehtävälista ==&lt;br /&gt;
&lt;br /&gt;
Vaikka sivulla on paljon asiaa, ei tämä oikeasti niin vaikeaa ole, lyhyesti:&lt;br /&gt;
&lt;br /&gt;
# Hanki henkilökortti. Sitä voi anoa&lt;br /&gt;
#* paikalliselta poliisilta, toimitusaika kaksi vkoa.&lt;br /&gt;
#* [https://poliisi.fi/henkilokortti/henkilokortin_hakeminen Poliisin sähköisessä asiointipalvelussa] mikäli käytössä on pankkitunnukset tai mobiilivarmenne tai voimassaoleva henkilökortti. Vaatii valokuvaamolta saatavan kuvatunnuksen.&lt;br /&gt;
# Hanki kortin lukijalaite, tarkasta tuetut mallit ennen ostamista.&lt;br /&gt;
# Tutustu Linux-jakelukohtaisiin ohjeisiin mahdollisten lisäohjelmistojen asentamiseksi (lisätietoja alla).&lt;br /&gt;
# Tarvittaessa asenna vaaditut paketit ja konfiguroi ne (lähinnä vanhat lukijat).&lt;br /&gt;
# Käy tarvitsemasi sovellukset läpi ([[HST#Firefox_2|Firefox]] jne) ja konfiguroi ne.&lt;br /&gt;
# Testaa ja käytä. Testaamiseen voit käyttää  [http://fineid.fi/default.aspx?docid=2245&amp;amp;site=9&amp;amp;id=0 fineid.fi testisivua].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Huom! Poliisilla käyvälle:&#039;&#039;&#039; Varmista kun anot korttia, että virkailija täyttää hakemukseen myös sähköpostiosoitteesi &amp;amp;ndash; oletuksena hän jättää tämän kentän tyhjäksi, jolloin sähköpostiosoitetta ei tule varmenteeseen. Osoite varmenteessa ei ole välttämätön kun korttia käytetään tunnistautumiseen, mutta siitä voi olla hyötyä sähköpostin salauksessa ja se kuuluu kortin hintaan.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Huom! Verkosta haettaessa:&#039;&#039;&#039; Mikäli haluat henkilökorttiisi Kela-tiedot (viivakoodi taakse), pyydä sitä kun käyt allekirjoittamassa henkilökortin, verkkohakemuksesta puuttuu kohta sille, mutta allekirjoittaessa se voidaan lisätä.&lt;br /&gt;
&lt;br /&gt;
== Laitteet ==&lt;br /&gt;
&lt;br /&gt;
Korttia varten tarvitaan kortinlukija ja lukijaan sopiva ajuri. Lukijoita on pääasiassa kahta tyyppiä. Ulkoinen, tyypillisesti USB-väylään liitettävä lukija, sekä joissakin kannettavissa tietokoneissa oleva sisäinen lukija. Toiset esim kannettavan tietokoneen laajennuskorttipaikkaan sopivat lukijat näkyvät USB-väylässä ja toimivat sen mukaisesti. Hinnat vaihtelevat mallista ja ostopaikasta riippuen, nykyaikaisen USB-lukijan hinta vaihtelee kuuden ja 25 euron välillä.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&lt;br /&gt;
[[Tiedosto:Cm 3021 190px.jpg]][[Tiedosto:CardMan4321 190px.jpg]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lukijalaitteita on myös omalla fyysisellä näppäimistöllä varustettuna jota käytetään pin-koodien syöttämiseen. Tällöin koodeja käsitellään ainoastaan lukijassa eivätkä ne siten altistu mahdollisille tietokoneen haittaohjelmille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Nykyaikaiset lukijat ==== &lt;br /&gt;
&lt;br /&gt;
Kun on hankkimassa USB-lukijaa, kannattaa valita ns. &#039;&#039;CCID&#039;&#039; (Circuit Card Interface Device) -speksin mukainen lukija. CCID on USB-väylän yhteyteen määritelty ns. Device Class -määrittely, joka määrittelee yhteisen protokollan eri valmistajien USB-lukijoille. &lt;br /&gt;
&lt;br /&gt;
Esimerkkejä CCID-protokollan mukaisista lukijoista ovat:&lt;br /&gt;
&lt;br /&gt;
* [http://www.hidglobal.com/omnikey/ Omnikey] 1021, 3021, 3121, 4321 ym (4040 varauksella).&lt;br /&gt;
* [http://www.scmmicro.com/security/view_product_en.php?PID=4 SCM SCR 3310]&lt;br /&gt;
* Dellin tiettyjen USB-näppäimistömallien integroidut lukijat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Vanhemmat lukijat ==== &lt;br /&gt;
&lt;br /&gt;
Aikanaan valtaosa ensimmäisistä älykorttilukijoista oli RS-232 pohjaisia ja siten niiden käyttöönotto oli myös hieman työläämpää. Ensimmäiset USB-lukijat olivat myös RS-232 laitteita, niissä oli vain sisäinen USB-RS232 adapteripiiri (usein Prolific PL2303, pl2303 ajuri) joten laite lopulta näkyy yhtenä ttyUSB&amp;lt;n&amp;gt;-laitteena ajurinsa perusteella ja pitää siten ottaa käsin käyttöön.&lt;br /&gt;
&lt;br /&gt;
Ennen USB-laitteiden CCID-määrittelyn valmistumista jokainen valmistaja käytti omaa protokollaa; näitä vanhempia lukijoita näkee vielä silloin tällöin.&lt;br /&gt;
&lt;br /&gt;
* Towitoko ChipdDrive-micro 130 - USB-RS232 emulaatiolla oleva ihan toimiva lukija jos jakelu tukee.&lt;br /&gt;
* Towitoko ChipDrive Extern 330 - Sama sähköisesti kuin ChipDrive-micro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tietyt lukijalaitteiden brändit ovat vaihtuneet kun firmat ovat ostelleet toisiaan.&lt;br /&gt;
&lt;br /&gt;
=== Towitoko ChipDrive ===&lt;br /&gt;
&lt;br /&gt;
[[Tiedosto:Towitoko.chipdrive.JPG]]&lt;br /&gt;
&lt;br /&gt;
Ei asennu automaattisesti, tehtävä seuraavat toimenpiteet käsin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;openct&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Poista &amp;lt;code&amp;gt;/etc/openct.conf&amp;lt;/code&amp;gt; tiedostosta kommentointi seuraavan lohkon osalta:&lt;br /&gt;
  #reader towitoko {&lt;br /&gt;
  #       driver = towitoko;&lt;br /&gt;
  #       device = serial:/dev/ttyS0;&lt;br /&gt;
  #};&lt;br /&gt;
&lt;br /&gt;
Varmistu, että &#039;&#039;device&#039;&#039; osoittaa oikeaan laitteeseen. (esim ttyUSB0). Käynnistä openct palvelu uudelleen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pcscd&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
?&lt;br /&gt;
&lt;br /&gt;
== Ohjelmistot ==&lt;br /&gt;
&lt;br /&gt;
===  Arkkitehtuuri ===&lt;br /&gt;
&lt;br /&gt;
Sovellusohjelma tarvitsee ohjelmointirajapinnan (API) pystyäkseen keskustelemaan älykortin kanssa. RSA Laboratories on määritellyt C-ohjelmointirajapinnan niin sanotuille kryptograafisille tokeneille nimeltä &#039;&#039;[http://www.cryptsoft.com/pkcs11doc/v230/ PKCS#11]&#039;&#039;. Se on 11. osa RSA Laboratoriesin sarjassa Public Key Cryptography Standards ja tunnetaan myös lempinimellä &#039;&#039;Cryptoki&#039;&#039; (väännös sanoista Cryptographic Token Interface). Cryptoki on tyypillisesti toteutettu ns. pluginina (.so-tiedosto). Useampi sovellus voi käyttää Cryptoki-rajapintaa rinnakkain; kirjaston tehtävänä on synkronoida pääsy yksittäiselle tokenille. Cryptoki pystyy myös hallitsemaan useampaa järjestelmään liitettyä tokenia. OpenSC-ohjelmisto sisältää Cryptoki-toteutuksen jaettuna kirjastona nimellä opensc-pkcs11.so.&lt;br /&gt;
&lt;br /&gt;
PKCS#11-kirjaston ja lukijan välille tarvitaan vielä ns. middleware, josta on avoimena lähdekoodina kaksi vaihtoehtoista toteutusta: &#039;&#039;PCSC-lite&#039;&#039; tai &#039;&#039;OpenCT&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PC/SC&#039;&#039;&#039; (Personal Computer/Smart Card) on alun perin Microsoftilta tullut aloite, joka määrittelee yhtenäisen, laitteistosta riippumattoman, rajapinnan älykorteille. PC/SC:n ja Cryptokin erona on, että PC/SC määrittelee alemman tason rajapinnan älykorteille yleensä, kun taas Cryptoki määrittelee rajapinnan julkisen avaimen cryptotokeneille, jotka eivät välttämättä ole edes toteutettu älykortteina.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OpenCT&#039;&#039;&#039; on OpenSC:n kehittäjien kehittämä &amp;quot;liima&amp;quot; ylemmän tason Cryptoki-kirjaston ja laitteiston välillä. OpenCT on suoraviivaisempi vaihtoehto PC/SC:lle. Se pystyy käsittelemään lukijoita suoraan, kun taas PC/SC (PCSC-lite) tarvitsee erikseen vielä lukijalle ajurin. USB-lukijoilla käytetään &#039;&#039;CCID&#039;&#039;-ajuria. Toisaalta OpenCT ei toteuta PC/SC-rajapintaa, joten sitä ei voi käyttää jos sovellus on kirjoitettu käyttämään PC/SC-rajapintaa. Nykyään sen kehitys on pysähtynyt ja siten laitteisto- ja yhteisötuki on heikentynyt.&lt;br /&gt;
&lt;br /&gt;
Alla on esitetty kaavioina yllä mainitut kaksi ohjelmistovaihtoehtoa:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Tiedosto:openct.png]]   &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;   [[Tiedosto:pcsc-lite.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ajurit ja middleware===&lt;br /&gt;
&lt;br /&gt;
Kortin käyttö edellyttää kortinlukijaa sekä asennettua kortinlukijaohjelmistoa. Ohjelmistoksi on olemassa kaksi rinnakkaista vaihtoehtoa:&lt;br /&gt;
* Avoin &#039;&#039;OpenSC&#039;&#039; sekä siihen liittyvät työkalut ja kirjastot&lt;br /&gt;
* Kaupallinen &#039;&#039;mPollux Digisign Client&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====OpenSC====&lt;br /&gt;
&lt;br /&gt;
Avoimessa projektissa kehitettävä [http://www.opensc-project.org/ OpenSC]-ohjelmisto on maailmanlaajuisesti käytössä oleva älykorttiohjelmisto. Se tukeutuu yleensä &lt;br /&gt;
[http://pcsclite.alioth.debian.org/ pcsc-lite] laitteistorajapintaan joka toteuttaa PC/SC määritykset. Projektin oma vastaava rajapinta [http://www.opensc-project.org/openct/ openct] on nykyään jo harvemmin käytössä.&lt;br /&gt;
&lt;br /&gt;
Joissakin Linux-jakeluissa on älykorttien käsittely on integroitu toimivaksi kokonaisuudeksi, joiden käyttöönotto parhaimmillaan edellyttää ainoastaan lukijan kytkentää ja WWW-selaimen asetusten asettamista.&lt;br /&gt;
&lt;br /&gt;
==== mPollux Digisign Client ====&lt;br /&gt;
&lt;br /&gt;
Väestörekisterikeskus tarjoaa maksutta Fujitsu Services Oy:n [https://eevertti.vrk.fi/Default.aspx?id=247 mPollux Digisign Client] -kortinlukijaohjelmiston henkilökortin käyttäjille. VRK:n WWW-sivuilta on mahdollista ladata ohjelmisto RHELille, Suselle ja Ubuntulle 32- ja 64-bittisenä versioina. Paketit toiminevat myös monissa niille sukua olevissa jakeluissa.&lt;br /&gt;
&lt;br /&gt;
Ohjelmistosta joulukuussa 2011 julkistettu 64-bittinen versio, mutta sitä ei tiettävästi ole saatavilla minkään Linux-jakelun virallisesta paketinhallinnasta. Käyttäjän tulee huolehtia päivityksistä manuaalisesti kyläilemällä Väestörekisterikeskuksen sivuilla säännöllisesti. mPollux-ohjelmistosta ei ole lähdekoodia saatavilla.&lt;br /&gt;
&lt;br /&gt;
===Sovellusohjelmien tuki===&lt;br /&gt;
&lt;br /&gt;
Sovellustuki voi olla joko suora tai perustua kirjastoon joka on säädetty tukemaan kortinlukijaa ja sen varmenteita.&lt;br /&gt;
&lt;br /&gt;
==== Firefox ====&lt;br /&gt;
&lt;br /&gt;
Palvelun niin vaatiessa, mahdollisuus muodostaa ns client-side varmennetta vaativa SSL-yhteys jossa palvelupää tunnistaa selaimen käyttäjän kortin esimmäisellä varmenteella. Tällöin käyttäjän tiedot löydetään palvelun tietokannoista sähköisellä asiointitunnuksella.&lt;br /&gt;
&lt;br /&gt;
Palvelu voi pyytää käyttäjää allekirjoittamaan sisältöä kortin toisella varmenteella. Teknisiä toteutustapoja on lukuisia ja erityisesti vanhat Java-pohjaiset toimivat huonosti. Uusimmat toteutukset käyttävät C-kielellä toteutettua selaimen pluginia joka tulee asentaa käyttäjän tietokoneeseen ennen palvelun käyttöä.&lt;br /&gt;
&lt;br /&gt;
==== Opera ====&lt;br /&gt;
&lt;br /&gt;
Selain (versio 11.60) ei tue pkcs#11 moduleita eikä siten myös älykortteja.&lt;br /&gt;
&lt;br /&gt;
==== PAM ====&lt;br /&gt;
&lt;br /&gt;
PAM (&#039;&#039;Pluggable Authentication Module&#039;&#039;) on asetettavissa tunnistamaan tietokoneeseen kirjautuja henkilökortin varmenteella. Tämä mahdollistaa kirjautumisen salasanan asemasta tai niiden rinnakkaisen käytön. Asetukset ja niiden määrittäminen on jakelukohtaisia. Toimiessaan PAM-tasolla, korttituki toimii niin merkkipohjaisessa kuin graafisessa sisäänkirjautumisessa.&lt;br /&gt;
&lt;br /&gt;
==== Ssh ====&lt;br /&gt;
&lt;br /&gt;
OpenSSH tukee henkilökortin käyttöä autentikointiin PKCS#11-rajapinnan kautta. Kortin sisältämän avainparin julkinen osa siirretään niille ssh-palvelimille, joihin halutaan olla yhteydessä. SSH-asiakasohjelma pystyy käyttämään kortilla olevaa salaista osaa kättelyssä palvelimen kanssa. Avainten hallintaan käytetään OpenSSH:n mukana tulevia &#039;&#039;&#039;ssh-agent&#039;&#039;&#039; ja &#039;&#039;&#039;ssh-add&#039;&#039;&#039; apuohjelmia.&lt;br /&gt;
&lt;br /&gt;
ssh-agent on ohjelma, joka säilöö ohjelman ajon ajaksi privaatteja salausavaimia ajomuistiin ssh-ohjelman käyttöön, mutta siinä on myös tuki opensc-pkcs11 pluginille. Tällöin niitä ei ladata muistiin, vaan vain viitataan kortilla olevaa avaimeen kirjaston rajapinnan kautta.&lt;br /&gt;
&lt;br /&gt;
Korttia pystyy käyttämään OpenSSH:n komentoriviohjelmien (&#039;&#039;ssh&#039;&#039;, &#039;&#039;scp&#039;&#039;, &#039;&#039;sftp&#039;&#039;) lisäksi ohjelmien kanssa, jotka käyttävät ssh:ta siirtotienään. Esimerkki tällaisesta ohjelmistosta on versionhallintajärjestelmä &#039;&#039;git&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== OpenOffice.org ====&lt;br /&gt;
&lt;br /&gt;
Dokumentteja on mahdollista allekirjoittaa kortin ensimmäisellä tunnistus-varmenteella. Tuki on ohjelmaan sisäänrakennettu eikä vaadi erillistä säätämistä toimiakseen, jos muu korttituki toimii.&lt;br /&gt;
&lt;br /&gt;
==== qDigiDoc ====&lt;br /&gt;
&lt;br /&gt;
Graafinen työkalu DigiDoc-määrityksen mukaisten digitaalisten säiliöiden (&#039;&#039;eng container&#039;&#039; ) luomiseen ja käsittelyyn. Varmenteella voi allekirjoittaa ja/tai salata säiliön sisällön. Sisältö voi olla mitä tiedostoja tahansa. Ohjelmisto on kehitetty Virossa ja on yhteiskunnassa laajalti käytetty ja hyväksytty sovellus, merkittävin henkilökortin käyttökohde WWW-tunnistamisen rinnalla. Ohjelmasta voi lukea lisää sen omalta [[qDigiDoc]] sivulta.&lt;br /&gt;
&lt;br /&gt;
==== Lähiverkon pääsynvalvonta - 802.1x ====&lt;br /&gt;
&lt;br /&gt;
IEEE:n standardi [http://en.wikipedia.org/wiki/802.1x 802.1x] määrittelee langallisen ja langattoman lähiverkon pääsynvalvontamekanismeja. Tämä mahdollistaa tekniikkaan tukevan lähiverkkolaitteen asettamisen tunnistamaan liikennöijän jo OSI-tasolla 2 (lähiverkon rautaprotokolla) ja haluttaessa sallimaan tai estämään liikennöinnin. &lt;br /&gt;
Käytettäessä [http://en.wikipedia.org/wiki/Extensible_Authentication_Protocol#EAP-TLS EAP-TLS] (&#039;&#039;Extensible Authentication Protocol - Transport Layer Security&#039;&#039;) asetusta, verkkoon liittyjä tunnistetaan varmenteella joka voidaan lukea älykortilta ja pääsynvalvontatiedot saadaan verkon yli RADIUS-palvelulta. Wikipedian mukaan EAP-TLS ratkaisu on yksi turvallisimmista mahdollisista käytettäessä älykorttia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Gnupg ohjelmat ====&lt;br /&gt;
&lt;br /&gt;
Gnupg:ssä on älykorttituki, mutta se vaatii sille itselleen kirjoitetun sovelluksen kortilta (eikä Suomen henkilökortti ole tälläinen). Näitä kortteja on tällä tietämyksellä  markkinoilla kaksi eri tyyppistä eikä niitä käytetä kansalaisvarmenteina, vaan avainparit luodaan korteille itse ja niiden merkitys on sen mukainen. Arkkitehtuuri on seuraava:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;gpg-agent&#039;&#039;&#039; käynnistyy käyttäjän istuntoon taustalle ja viestii eri prosessien kanssa (vastaa ssh-agent palvelua)&lt;br /&gt;
* &#039;&#039;&#039;scdaemon&#039;&#039;&#039; palvelu käynnistyy tarvittaessa gpg-agentin käynnistämänä ja käsittelee älykortteja pcscd-palvelun läpi.&lt;br /&gt;
* &#039;&#039;&#039;gpg2&#039;&#039;&#039; ja &#039;&#039;&#039;gpgsm&#039;&#039;&#039; toimivat asiakasohjelmina joko suoraan tai muiden käyttöliittymien käynnistäminä.&lt;br /&gt;
&lt;br /&gt;
Käyttäjäyhteisö ja kehittäjät ovat keskustelleet aiheesta aika-ajoin, mutta kehittäjien näkökanta on määrännyt tilanteen eikä varsinaista muutosta tilanteeseen ole tullut vuosiin. Erimielisyyttä on yritetty kiertää korvaamalla scdaemon prosessi vastaavalla jossa on opensc-pkcs11 tuki. Korvaavan taustapalvelun nimi on &#039;&#039;&#039;gnupg-pkcs11-scd&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== KDE ja PKCS#11 ====&lt;br /&gt;
&lt;br /&gt;
KDE työpöytäympäristön  tilanne kansallisten varmennekorttien käyttäjille ei ole hyvä. Työpöydän kehittäjät edustavat leiriä jossa RSA-Laboratorion PKCS määritykset nähdään vapaiden ohjelmistojen kilpailijoina ja niitä ei haluta tukea. KDE ympäristössä varmennetuki pohjautuu ainoastaan [[Gnupg]] ohjelmiston päälle rakennettuun &#039;&#039;&#039;Kleopatra&#039;&#039;&#039; varmennehallinta-sovellukseen ja yksittäisiin sovelluksiin joissa on Gnupg tuki. Kleopatralla voi jonkun verran hallita varmenteita ja se tunnistaa myös X.509 varmenteet joita voi siihen lisätä, mutta ohjelma ei suoraan tue opensc:n pkcs11-pluginia joka mahdollistaa X.509-tyyppisten varmenteiden käytön älykortilta.&lt;br /&gt;
&lt;br /&gt;
Gnupg-yhteensopivia sovelluksia ovat KMail sähköposti, Kaddressbook-osoitekirja ja Kgpg salaus ja allekirjoitustyökalu. Gnupg-ohjelmilla omat asetustiedostonsa joita Kleopatra muuttaa käynnistyessään yrittääkseen varmistaa toimivuuden.&lt;br /&gt;
&lt;br /&gt;
Henkilökortin käyttäjän näkökulmasta tilanne on sekava. Jos kortti on ylipäätään mahdollista saada toimimaan KDE-ohjelmissa, sen asettelu on lievästi sanottuna vaikeaa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OpenSC-sivustolla on [http://www.opensc-project.org/opensc/wiki/ApplicationSupport pitkä lista] erillaisista ohjelmistojen tuesta varmenteille.&lt;br /&gt;
&lt;br /&gt;
=== Apuohjelmat ===&lt;br /&gt;
&lt;br /&gt;
Tähän osioon on kerätty ohjelmat, joita ei normaalissa kortin käytössä tarvita, mutta voivat olla hyödyksi vianetsinnässä, PIN-koodien vaihdossa ja yleisen mielenkiinnon vuoksi. Ohjelmat pkcs11-tool ja pkcs15-tool löytyvät OpenSC-paketista.&lt;br /&gt;
&lt;br /&gt;
==== Korttipaikkojen listaus ====&lt;br /&gt;
  $ pkcs11-tool --module opensc-pkcs11.so -L&lt;br /&gt;
  Slot 8           OmniKey CardMan 3121 00 00&lt;br /&gt;
    token label:   HENKILOKORTTI (perustunnusluku)&lt;br /&gt;
    token manuf:   VRK-FINEID&lt;br /&gt;
    token model:   PKCS#15&lt;br /&gt;
    token flags:   login required, PIN initialized, token initialized&lt;br /&gt;
    serial num  :  4600015034197296&lt;br /&gt;
  Slot 9           OmniKey CardMan 3121 00 00&lt;br /&gt;
    token label:   HENKILOKORTTI (allekirjoitustunn&lt;br /&gt;
    token manuf:   VRK-FINEID&lt;br /&gt;
    token model:   PKCS#15&lt;br /&gt;
    token flags:   login required, PIN initialized, token initialized&lt;br /&gt;
    serial num  :  4600015034197296&lt;br /&gt;
&lt;br /&gt;
==== Varmenteiden listaus ====&lt;br /&gt;
  $ pkcs15-tool -c&lt;br /&gt;
  Using reader with a card: OmniKey CardMan 3121 00 00&lt;br /&gt;
  X.509 Certificate [todentamis- ja salausvarmenne]&lt;br /&gt;
          Flags    : 0&lt;br /&gt;
          Authority: no&lt;br /&gt;
          Path     : 3f004331&lt;br /&gt;
          ID       : 45&lt;br /&gt;
  &lt;br /&gt;
  X.509 Certificate [allekirjoitusvarmenne]&lt;br /&gt;
          Flags    : 0&lt;br /&gt;
          Authority: no&lt;br /&gt;
          Path     : 3f0050164332&lt;br /&gt;
          ID       : 46&lt;br /&gt;
  &lt;br /&gt;
  X.509 Certificate [VRK Gov. Root CA]&lt;br /&gt;
          Flags    : 0&lt;br /&gt;
          Authority: yes&lt;br /&gt;
          Path     : 3f004334&lt;br /&gt;
          ID       : 48&lt;br /&gt;
  &lt;br /&gt;
  X.509 Certificate [VRK Gov. CA for Citizen Qualified Certificates]&lt;br /&gt;
          Flags    : 0&lt;br /&gt;
          Authority: yes&lt;br /&gt;
          Path     : 3f004333&lt;br /&gt;
          ID       : 47&lt;br /&gt;
&lt;br /&gt;
==== PIN koodin vaihto ====&lt;br /&gt;
&lt;br /&gt;
==== PUK koodin käyttö ====&lt;br /&gt;
&lt;br /&gt;
PUK (&#039;&#039;pin unblock key&#039;&#039;) koodia tarvitaan jos kortti menee jumiin esimerkiksi liian monesta epäonnistuneesta varmenteen käyttöyrityksestä. Koodin voi antaa joko komentorivioptiona (selkeämpi kirjoittaa) tai syöttää sen interaktiivisesti. Vivulla &#039;&#039;&#039;-a&#039;&#039;&#039; määritellään mitä pin-koodia ollaan vaihtamassa, numero yksi tarkoittaa ensimmäistä koodia.&lt;br /&gt;
  $ pkcs15-tool --unblock-pin --puk 12345678 -a 1&lt;br /&gt;
  Using reader with a card: OmniKey CardMan 1021 01 00&lt;br /&gt;
  Enter new PIN [PIN1]: ****&lt;br /&gt;
  Enter new PIN again [PIN1]: ****&lt;br /&gt;
&lt;br /&gt;
==== CA-varmenteiden lukeminen kortilta ====&lt;br /&gt;
&lt;br /&gt;
Henkilökortilla on Väestörekisterikeskuksen juuri- ja kansalais- eli ns CA-varmenteet. CA-varmennetta tarvittaessa, järkevintä on ottaa se henkilökortilta eikä ladata verkosta jotta ei altistu teoreettiselle ns [http://fi.wikipedia.org/wiki/Man-in-the-middle_attack &#039;&#039;man-in-the-middle&#039;&#039;] hyökkäykselle. Valtaosa on saanut korttinsa suoraan poliisilta jolloin voidaan olla suhteellisen varmoja, ettei varmennetta tai korttia ole väärennetty. Jos sovellus ei tue varmenteiden ketjutusta, tulee käyttää sitä CA-varmennetta jolla itse osapuolen varmenne on allekirjoitettu. Muussa tapauksessa juurivarmenne riittää.&lt;br /&gt;
&lt;br /&gt;
Varmenteen saa kopioitua kortilta tiedostoon käyttäen &#039;&#039;&#039;-r&#039;&#039;&#039; vipua ja varmenteen &#039;&#039;id-numeroa&#039;&#039;. Yhdistettynä nämä yhdeksi komennoksi:&lt;br /&gt;
&lt;br /&gt;
  $ pkcs15-tool -r $(pkcs15-tool -c|grep  -A4 &amp;quot;Root&amp;quot;|grep ID|cut -d: -f2) &amp;gt; vrkrootca.pem&lt;br /&gt;
&lt;br /&gt;
Yllä itse varmenne luetaan kortilta ja tulos ohjataan tiedostoon. Tiedostoa voi käyttää sellaisenaan esim WWW-selaimessa tai Apache-httpd palvelimessa.&lt;br /&gt;
&lt;br /&gt;
==== Yhteiskäyttö ja Opensc &amp;lt;= 0.11 ====&lt;br /&gt;
&lt;br /&gt;
Jotkin sovellukset vaativat kortin yhtäaikaista käyttöä (esim https tunnistus ja pin2 allekirjoitus sen yhteyden aikana). Tämä saattaa olla oletuksen estetty &amp;lt;code&amp;gt;/etc/opensc.conf&amp;lt;/code&amp;gt; tiedostossa  &#039;&#039;&#039;lock_login&#039;&#039;&#039; asetuksella, rivi joka on opensc-0.11 ja varhaisemmissa kommentoitu pois kokonaan, siten oletuksena &#039;&#039;&#039;true&#039;&#039;&#039; tilassa. Poistamalla kommentin ja jättämällä &#039;&#039;&#039;false&#039;&#039;&#039; arvon, lukitus estyy ja useat yhtäaikaiset sovellukset toimivat.&lt;br /&gt;
&lt;br /&gt;
  # By default, the OpenSC PKCS#11 module will lock your card&lt;br /&gt;
  # once you authenticate to the card via C_Login.&lt;br /&gt;
  # This is to prevent other users or other applications&lt;br /&gt;
  # from connecting to the card and perform crypto operations&lt;br /&gt;
  # (which may be possible because you have already authenticated&lt;br /&gt;
  # with the card).&lt;br /&gt;
  &lt;br /&gt;
  # Thus it is impossible to use several smart card aware&lt;br /&gt;
  # applications at the same time, e.g. you cannot run both&lt;br /&gt;
  # Firefox and Thunderbird at the same time, if both are&lt;br /&gt;
  # configured to use your smart card.&lt;br /&gt;
  #&lt;br /&gt;
  # Default: true&lt;br /&gt;
  lock_login = false;&lt;br /&gt;
&lt;br /&gt;
Opensc &amp;gt;= 0.12 asetus on pois päältä oletuksena ja käyttäjän toimenpiteitä ei tarvita. Asetustiedostossa on asiaa selitetty runsaammin englanniksi jos sen taustat kiinnostavat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Sovellusten jumiutumiset ====&lt;br /&gt;
&lt;br /&gt;
Varmenteita käyttävät ohjelmat ikävä kyllä jumittavat usein. Tällöin voi kokeilla kortin irroittamista lukijasta ja se usein vapauttaa jumitumisen ja jämähtänyttä toimintoa voi kokeilla heti uudelleen kortin lukijaan palauttamisen jälkeen.&lt;br /&gt;
&lt;br /&gt;
Toisinaan varmenteen luku ei tunnu onnistuvan ollenkaan ja silloin kannttaa kokeilla &#039;&#039;lypsämistä&#039;&#039; antamalla seuraava komento monta kertaa peräjälkeen kunnes se onnistuu:&lt;br /&gt;
&lt;br /&gt;
 $ pkcs15-tool -c&lt;br /&gt;
 PKCS#15 binding failed: Wrong length&lt;br /&gt;
 $ pkcs15-tool -c&lt;br /&gt;
 PKCS#15 binding failed: Wrong length&lt;br /&gt;
 $ pkcs15-tool -c&lt;br /&gt;
 Using reader with a card: OmniKey CardMan 3121 01 00&lt;br /&gt;
 X.509 Certificate...&lt;br /&gt;
&lt;br /&gt;
Komento tulee antaa samana käyttäjänä minä on istuntoon kirjautunut. Ongelma on kehittäjien tiedossa.&lt;br /&gt;
&lt;br /&gt;
Joskus koko korttiin ei saada yhteyttä:&lt;br /&gt;
&lt;br /&gt;
 $ pkcs15-tool -c&lt;br /&gt;
 Using reader with a card: OmniKey CardMan 1021 00 00&lt;br /&gt;
 Failed to connect to card: Unknown error&lt;br /&gt;
&lt;br /&gt;
Jos käytössä on pcscd, sen uudelleenkäynnistäminen auttaa:&lt;br /&gt;
&lt;br /&gt;
 # service pcscd restart&lt;br /&gt;
 Redirecting to /bin/systemctl  restart pcscd.service&lt;br /&gt;
&lt;br /&gt;
Tämän jälkeen tilanne on normali jälleen. Sovellukset kuten WWW-selain tulee käynnistää uudelleen koska sen yhteydet pcscd:hen ovat katkenneet eivätkä ne osaa muodostaa niitä itse uudelleen.&lt;br /&gt;
&lt;br /&gt;
== Sovelluskohtaisia ohjeita ==&lt;br /&gt;
&lt;br /&gt;
Jos käyttöön liittyy vastapuolen varmenne joka on Väestörekisterkeskuksen allekirjoittama, niin luotettavuuden todentaminen tapahtuu VRK:n CA-varmennetta vasten joka tulee olla asennettuna. Tapahtuma voi olla esimerkiksi allekirjoitettu tai salattu sähköpostiviesti tai myös WWW-palvelin joka käyttää VRK:n allekirjoittamaa palvelinvarmennetta.&lt;br /&gt;
&lt;br /&gt;
Varmenenteen voi kopioida kortilta suoraan kuten kohdasssa [[HST#CA-varmenteiden_lukeminen_kortilta|CA-varmenteiden lukeminen kortilta]] ohjeistetaan tai ladata se verkosta tietokoneelle VRK:n [http://fineid.fi/default.aspx?docid=2237&amp;amp;site=9&amp;amp;id=332 CA-varmenne sivulta]. Useimmissa tapauksissa ns juurivarmenne riittää (&#039;&#039;eng Root CA&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
&lt;br /&gt;
Firefoxin varmennekortti-tuen tehtävälista:&lt;br /&gt;
&lt;br /&gt;
# Juurivarmenteen asentaminen (pakollinen)&lt;br /&gt;
# Ulkoisen korttituen lisääminen (yleisimmin tarvittava)&lt;br /&gt;
# Allekirjoitus-pluginin asentaminen&lt;br /&gt;
&lt;br /&gt;
==== Juurivarmenteen asentaminen ====&lt;br /&gt;
&lt;br /&gt;
Avaa PEM-muotoinen X.509 varmennetiedosto &#039;&#039;File -&amp;gt; Open&#039;&#039; ja etsi kyseinen tiedosto, paina &#039;&#039;Open&#039;&#039; tai klikkaa varmenteen linkkiä VRK:n sivulla.&lt;br /&gt;
&lt;br /&gt;
Valise kaikki:&lt;br /&gt;
* &#039;&#039;Trust this CA to identify web sites&#039;&#039;&lt;br /&gt;
* &#039;&#039;Trust this CA to identify email users&#039;&#039;&lt;br /&gt;
* &#039;&#039;Trust this CA to identify software developers&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Paina &#039;&#039;Ok&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Korttituen lisääminen ====&lt;br /&gt;
&lt;br /&gt;
Varmennekortin tuki lisätään turva-asetuksista lisäämällä sinne &#039;&#039;&#039;onepin-opensc-pkcs11&#039;&#039;&#039; plugin. Tämä sellaisenaan mahdollistaa varmenteiden käytön asiakaspään tunnistamisessa SSL-yhteyksillä. Erilliset pluginit jotka käyttävät varmennekorttia, tarvitsevat myöskin tätä asetusta.&lt;br /&gt;
&lt;br /&gt;
Suomenkielisessä selaimessa:&lt;br /&gt;
&lt;br /&gt;
*valitse &#039;&#039;Muokkaa&#039;&#039; &amp;amp;rarr;&#039;&#039; Asetukset&#039;&#039; &amp;amp;rarr;&#039;&#039; Lisäasetukset&#039;&#039; &amp;amp;rarr; &#039;&#039;Salaus&#039;&#039; &amp;amp;rarr; &#039;&#039;Turvallisuuslaitteet&#039;&#039;&lt;br /&gt;
*paina &#039;&#039;Lataa&#039;&#039;&lt;br /&gt;
*lisää: &amp;lt;tt&amp;gt;/usr/lib/onepin-opensc-pkcs11.so&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Englanninkielisessä selaimessa:&lt;br /&gt;
&lt;br /&gt;
*valitse &#039;&#039;Edit&#039;&#039; &amp;amp;rarr; &#039;&#039;Preferences&#039;&#039; &amp;amp;rarr; &#039;&#039;Advanced&#039;&#039; &amp;amp;rarr; &#039;&#039;Encryption&#039;&#039; &amp;amp;rarr; &#039;&#039;Security Devices&#039;&#039;&lt;br /&gt;
*paina &#039;&#039;Load&#039;&#039;&lt;br /&gt;
*lisää: &amp;lt;tt&amp;gt;/usr/lib/onepin-opensc-pkcs11.so&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== pin2-koodin turha kysely ja onepin tausta ====&lt;br /&gt;
&lt;br /&gt;
Firefoxissa on &#039;&#039;ominaisuus&#039;&#039; joka pistää sen kysymään joka käyttökerta molempia pin-koodeja. Tämän ratkaisusta oli näkemyseroja joka johti pattitilanteeseen ja OpenSC-projekti päätyi kiertämään selaimen kehittäjien jääräpäisyyden tekemällä häkkäyksen itse pluginiin ja oman versionsa siitä jota kutsutaan &#039;&#039;&#039;onepin-opensc-pkcs11&#039;&#039;&#039; pluginiksi. Aiheesta enemmän projektin postilistan [http://www.opensc-project.org/pipermail/opensc-devel/2007-June/010031.html viestissä].&lt;br /&gt;
&lt;br /&gt;
==== Error code: ssl_error_renegotiation_not_allowed ====&lt;br /&gt;
&lt;br /&gt;
Uudemmat Firefox-versiot (versiosta 4) vaativat joidenkin palveluiden kohdalla selaimen lisäasetuksen. Tämä johtuu vuonna 2009 löydetystä [https://wiki.mozilla.org/Security:Renegotiation suunnitteluvirheestä TLS-protokollassa], joka mahdollistaa ns. mies välissä -hyökkäyksen. Firefox yrittää suojautua tätä haavoittuvuutta vastaan kieltämällä TLS-protokollan uusintakättelyn. Tätä ei ole otettu huomioon (tätä kirjoitettaessa 5/2011) muun muasssa niissä palveluissa, jotka käyttävät ns. VETUMA-palvelua (Verkkotunnistautuminen ja maksaminen) käyttäjän tunnistamiseen.&lt;br /&gt;
&lt;br /&gt;
Kunnes tämä ongelma on ratkaistu palvelinpuolella, ongelman pystyy kiertämään sallimalla Firefoxissa TLS-protokollan kaksoiskättelyn haluamilleen osoitteille &amp;amp;ndash; VETUMA-palvelun tapauksessa osoite on &#039;&#039;tunnistus.suomi.fi&#039;&#039;. Asetukset saa näkyville Firefoxissa kirjoittamalla osoitekenttään about:config. Etsi listasta kenttä &amp;lt;code&amp;gt;security.ssl.renego_unrestricted_hosts&amp;lt;/code&amp;gt; ja anna sille arvoksi esimerkiksi &amp;lt;code&amp;gt;tunnistus.suomi.fi,tyvi.elma.fi&amp;lt;/code&amp;gt;. Asetuksen vaihdon onnistumisen voi kokeilla VRK:n [https://verkkopalvelu.vrk.fi/Omat/Etusivu.aspx Omien tietojen tarkistus] -palvelusta. Huomaa, että asetuksessa tulee olla itse kohde palvelin, ei pelkkä domain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Thunderbird===&lt;br /&gt;
&lt;br /&gt;
*valitse &#039;&#039;Muokkaa&#039;&#039; &amp;amp;rarr; &#039;&#039;Asetukset&#039;&#039; &amp;amp;rarr; &#039;&#039;Lisäasetukset&#039;&#039; &amp;amp;rarr; &#039;&#039;Varmenteet&#039;&#039; &amp;amp;rarr; &#039;&#039;Turvallisuuslaitteet&#039;&#039;&lt;br /&gt;
*paina &#039;&#039;Lataa&#039;&#039;&lt;br /&gt;
*lisää: &amp;lt;tt&amp;gt;/usr/lib/opensc-pkcs11.so&amp;lt;/tt&amp;gt;&lt;br /&gt;
*edelleen lisäasetuksista valitse &#039;&#039;Näytä varmenteet&#039;&#039;&lt;br /&gt;
*valitse &#039;&#039;Varmentajat&#039;&#039;-välilehdeltä omat Väestörekisterikeskus CA:n alla olevat &#039;&#039;Varmenteet&#039;&#039; ja &#039;&#039;Muokkaa&#039;&#039;&lt;br /&gt;
*lisää valinnat: &amp;quot;Tämä varmenne voi todentaa WWW-sivustoja&amp;quot; ja &amp;quot;Tämä varmenne voi todentaa sähköpostittajia&amp;quot;&lt;br /&gt;
*valitse &#039;&#039;Muokkaa&#039;&#039; &amp;amp;rarr; &#039;&#039;Tilien asetukset&#039;&#039;&lt;br /&gt;
*halutun tilin &#039;&#039;Turvallisuus&#039;&#039;-valikosta valitse kortin todentamis- ja salausvarmenne&lt;br /&gt;
&lt;br /&gt;
Thunderbirdin ja Firefoxin voi saada käyttämään samaa varmennetietokantaa. Miten tämä tapahtuu on selitetty [https://wiki.mozilla.org/NSS_Shared_DB_Howto Mozillan Wiki-sivulla]. Yhteisen tietokannan etuna on se, että varmenteen saa tuotua tietokantaan yhdella klikkauksella Firefoxissa (esimerkiksi [http://vrk.fineid.fi/certsearchB.asp?todo=setlang&amp;amp;lang=fi VRK:n varmennehakusivulta]), jonka jälkeen varmenne on automaattisesti käytettävissä myös Thunderbirdissä.&lt;br /&gt;
&lt;br /&gt;
=== qDigiDoc ===&lt;br /&gt;
&lt;br /&gt;
Sovelluksen pitäisi toimia myös Suomen henkilökortilla, mutta se vaatii hieman toimenpiteitä ensin. Ohjeet löytyvät kokonaisuudessaan [[qDigiDoc]] sivulta.&lt;br /&gt;
&lt;br /&gt;
=== Ssh ===&lt;br /&gt;
Jotta linuxiin voi ottaa SSH-yhteyden älykortilla, täytyy älykortilla oleva julkinen avain tallentaa /home/&amp;lt;user&amp;gt;/.ssh hakemiston authorized_keys tiedostoon [https://linux.fi/wiki/OpenSSH OpenSSH]-formaatissa.&lt;br /&gt;
Ohjeet siihen miten julkinen avain muutetaan OpenSSH-formaattiin löytyy [https://joscor.com/blog/convert-windows-public-certificate-cer-to-openssh-public-key/ täältä].&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
Avaimia lisätään ssh-agent -ohjelmaan ssh-add -ohjelmalla. Älykorttien yhteydessä käytetään -s-optiota, jolla kerrotaan pluginin polku. Kortin avaimeen liittyvä PIN kysytään &amp;lt;code&amp;gt;ssh-add&amp;lt;/code&amp;gt;-komennon yhteydessä ja se jää ssh-agent prosessin muistiin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Käyttö&#039;&#039;&#039;:&lt;br /&gt;
* Aseta kortti lukijaan ja lisää plugin:&lt;br /&gt;
  &amp;lt;code&amp;gt;$ ssh-add -s /usr/lib/opensc-pkcs11.so&amp;lt;/code&amp;gt;&lt;br /&gt;
* Avainparin julkisen avaimen saa tulostettua ssh-add -L -komennolla:&lt;br /&gt;
 $ ssh-add -L&lt;br /&gt;
 ssh-rsa AAAAB3NzaC...VAkWbd0lYyWrg78Q== /usr/lib64/opensc-pkcs11.so&lt;br /&gt;
* Jos tätä varmennetta ei ole aiemmin käytetty ssh:n kanssa, lisää ylläoleva tekstirimpsu (koko rivi sellaisenaan) &amp;lt;code&amp;gt;~/.ssh/authorized_keys&amp;lt;/code&amp;gt; tiedostoon palvelimella.&lt;br /&gt;
* Nyt ssh-ohjelmat toimivat normaalisti kortin varmenteilla.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vianmääritys&#039;&#039;&#039;:&lt;br /&gt;
* Varmista, että ssh-agent on käynnistynyt sisäänkirjautumisesi yhteydessä (prosessilistauksessa näkyy &#039;&#039;ssh-agent&#039;&#039;). Käynnistäminen riippuu Linux-jakelustasi, yleensä se on automaattinen eikä mitään tarvitse tehdä. Jos sitä ei siitä huolimatta ole käynnissä, se on voinut kräshätä.&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
===== PuTTY =====&lt;br /&gt;
&lt;br /&gt;
PuTTY ei oletuksena tue älykortilla olevan yksityisen avaimen noutoa. Jotta Windows käyttöjärjestelmällä voi kirjautua linuxiin henkilökortilla, täytyy käyttää PuTTY SC-ohjelmaa [http://www.joebar.ch/puttysc/]. &lt;br /&gt;
Ohjelman asetuksissa valitaan Connection -&amp;gt; SSH -&amp;gt; Pkcs11 välilehdeltä PKCS#11 kirjastoksi mpollux-ohjelman mukana tuleva cryptoki.dll tiedosto, joka on oletuksena polussa C:\Program Files (x86)\Fujitsu\mPollux DigiSign Client\cryptoki.dll. Token Label kohtaan valitaan &amp;quot;Henkilökortti&amp;quot; ja &amp;quot;Certificate Label&amp;quot; kohdasta valitaan joko henkilökohtainen salausvarmenne tai allekirjoitusvarmenne sen mukaan kumpi on asennettu palvelimelle.&lt;br /&gt;
&lt;br /&gt;
===== FileZilla =====&lt;br /&gt;
&lt;br /&gt;
FileZilla ei tue PKSC11 todentamista, mutta se tukee yksityisen avaimen hakemista PageAnt-ohjelman kautta. PageAnt-ohjelmasta täytyy asentaa modifioitu [http://www.joebar.ch/puttysc/ PageAntSC]-versio joka osaa hakea kortinlukulaitteesta salausavaimen.&lt;br /&gt;
&lt;br /&gt;
Käynnistä PageAntSC ohjelma ennen FileZillalla yhdistämistä, varmista että tehtäväpalkissa näkyy ohjelman kuvake (tietokone jolla on hattu), ja kuvakkeesta aukeavassa ohjelmassa on listattu henkilökorttivarmenne.&lt;br /&gt;
Yhdistä nyt FileZillalla linuxiin jättäen salasana-kenttä tyhjäksi, tällöin PageAntSC-ohjelma kysyy PIN-koodia ja FileZilla kirjautuu Linuxiin henkilökortin varmenteella.&lt;br /&gt;
&lt;br /&gt;
=== Lähiverkon pääsynvalvonta - 802.1x ===&lt;br /&gt;
&lt;br /&gt;
Asetukset määritellään &#039;&#039;wpa_supplicant&#039;&#039; asetustiedostoihin, joka toisissa jakeluissa sijaita esimerkiksi &amp;lt;code&amp;gt;/etc/wpa_supplicant/wpa_supplicant.conf&amp;lt;/code&amp;gt; tiedostossa.&lt;br /&gt;
  &lt;br /&gt;
  pkcs11_module_path=/usr/lib/pkcs11/opensc-pkcs11.so&lt;br /&gt;
  &lt;br /&gt;
  # Example of EAP-TLS with smartcard (openssl engine)&lt;br /&gt;
  network={&lt;br /&gt;
    ssid=&amp;quot;example.com&amp;quot;&lt;br /&gt;
    key_mgmt=WPA-EAP&lt;br /&gt;
    eap=TLS&lt;br /&gt;
   	proto=RSN&lt;br /&gt;
  	 pairwise=CCMP TKIP&lt;br /&gt;
   	group=CCMP TKIP&lt;br /&gt;
  	 identity=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
  	 ca_cert=&amp;quot;/etc/pki/tls/certs/vrkrootca.pem&amp;quot;&lt;br /&gt;
  	 client_cert=&amp;quot;/etc/pki/tls/certs/user.pem&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  	 engine=1&lt;br /&gt;
  &lt;br /&gt;
  	 # use the opensc engine&lt;br /&gt;
  	 #engine_id=&amp;quot;opensc&amp;quot;&lt;br /&gt;
  	 #key_id=&amp;quot;45&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  	 # use the pkcs11 engine&lt;br /&gt;
    engine_id=&amp;quot;pkcs11&amp;quot;&lt;br /&gt;
    key_id=&amp;quot;id_45&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
    # Optional PIN configuration; this can be left out and PIN will be&lt;br /&gt;
    # asked through the control interface&lt;br /&gt;
    # pin=&amp;quot;1234&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Asetusohje on peräisin [http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf esimerkistä].&lt;br /&gt;
&lt;br /&gt;
=== Gnupg ohjelmistot ===&lt;br /&gt;
&lt;br /&gt;
Gnupg:n eri komponenttien asetuksia muutetaan käyttäjän kotihakemiston &amp;lt;code&amp;gt;.gnupg/&amp;lt;/code&amp;gt; hakemistossa. Henkilökorttituen lisääminen edellyttää &#039;&#039;&#039;scdaemon&#039;&#039;&#039;-palvelun korvaamista &#039;&#039;&#039;gpg-agent.conf&#039;&#039;&#039; tiedostossa:&lt;br /&gt;
&lt;br /&gt;
  scdaemon-program /usr/bin/gnupg-pkcs11-scd&lt;br /&gt;
  pinentry-program /usr/bin/pinentry-qt&lt;br /&gt;
&lt;br /&gt;
ja kyseisten palveluiden uudelleenkäynnistämistä. Jos korttituki toimii, komento:&lt;br /&gt;
&lt;br /&gt;
 $ gpg2 -K&lt;br /&gt;
&lt;br /&gt;
listaa varmenteet jossa on mukana älykortin varmenne. Jos ei, asetukset kaipaavat lisää säätämistä joita on ohjeistettu omalla [[gnupg-pkcs11-scd]] sivulla.&lt;br /&gt;
&lt;br /&gt;
=== Kleopatra ===&lt;br /&gt;
&lt;br /&gt;
Kleopatra osaa muuttaa tarvitsemiaan Gnupg:n asetuksia tiedostoista: &#039;&#039;&#039;options&#039;&#039;&#039;, &#039;&#039;&#039;gpg-agent.conf&#039;&#039;&#039;, &#039;&#039;&#039;gpgsm.conf&#039;&#039;&#039; ja &#039;&#039;&#039;scdaemon.conf&#039;&#039;&#039;. Viimeeksi mainitulla ei ole merkitystä jos käytetään korvaavaa palvelua ja sen asetustiedostoa &#039;&#039;&#039;gnupg-pkcs11-scd.conf&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Jakelukohtaisia ohjeita ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; &lt;br /&gt;
|+ominaisuusvertailu&lt;br /&gt;
|-&lt;br /&gt;
! ominaisuus / jakelu&lt;br /&gt;
! Arch Linux&lt;br /&gt;
! Fedora&lt;br /&gt;
! Gentoo&lt;br /&gt;
! OpenSuse&lt;br /&gt;
! RHEL&lt;br /&gt;
! Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
| Kyseinen jakeluversio || || 14 || || || 5 ||&lt;br /&gt;
|-&lt;br /&gt;
| Oletusrajapinta || pcsc || pcsc || pcsc ||  || pcsc ||&lt;br /&gt;
|-&lt;br /&gt;
| OpenSC versio || 0.16.0-5 || 0.11 || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| Korttituki asentuu oletuksena || kyllä || kyllä || ei  || || kyllä ||&lt;br /&gt;
|-&lt;br /&gt;
| Korttituki käynnistyy oletuksena || ei || kyllä || ei || || kyllä ||&lt;br /&gt;
|-&lt;br /&gt;
| Firefox näkee pluginin automaattisesti || ei || ei || ei ||  || ei ||&lt;br /&gt;
|- &lt;br /&gt;
| ssh-agent käynnistyy oletuksena || ei || kyllä || ei || ei || kyllä ||&lt;br /&gt;
|-&lt;br /&gt;
| PAM tukee älykorttia || ei || kyllä || kyllä || || kyllä ||&lt;br /&gt;
|-&lt;br /&gt;
| PAM työkalu tukee älykorttia || ei || vähän ||  || || vähän ||&lt;br /&gt;
|-&lt;br /&gt;
| Löytyykö CA-avaimet jakelusta || ei || ei || ei || || ei ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Vertailussa tulisi käyttää viimeisintä vakaata jakeluversiota. Jos näin ei ole, taulukkoa tulee päivittää.&lt;br /&gt;
&lt;br /&gt;
===Arch Linux===&lt;br /&gt;
&lt;br /&gt;
* Asenna paketit &#039;&#039;&#039;ccid&#039;&#039;&#039;, &#039;&#039;&#039;pcsclite&#039;&#039;&#039;, &#039;&#039;&#039;opensc&#039;&#039;&#039;&lt;br /&gt;
* Muuta palvelu pcscd automaattisesti käynnistyväksi:&lt;br /&gt;
 sudo systemctl enable pcsc&lt;br /&gt;
* Käynnistä palvelu pcscd:&lt;br /&gt;
 systemctl start pcscd&lt;br /&gt;
* onepin-opensc-pkcs11.so -plugin sijaitsee hakemistossa &amp;lt;code&amp;gt;/usr/lib&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CentOS ===&lt;br /&gt;
&lt;br /&gt;
Fedoran ohjeet pitäisi käydä sellaisenaan.&lt;br /&gt;
&lt;br /&gt;
=== Fedora ===&lt;br /&gt;
&lt;br /&gt;
* Lukijat: Omnikey-1021,-3021,-4321 toimii, Omnikey-4040 ei taida enää viimeisimmissä jakeluissa.&lt;br /&gt;
* Vaaditut paketit: &#039;&#039;&#039;opensc&#039;&#039;&#039;, &#039;&#039;&#039;pcsc-lite&#039;&#039;&#039; (tai &#039;&#039;&#039;openct&#039;&#039;&#039;).&lt;br /&gt;
* Initscriptit: openct ja pcscd oletuksena päällä asennuksen jälkeen.&lt;br /&gt;
* Sovelluspaketit: &#039;&#039;&#039;firefox&#039;&#039;&#039;, &#039;&#039;&#039;thunderbird&#039;&#039;&#039;, &#039;&#039;&#039;openssh-clients&#039;&#039;&#039;, &#039;&#039;&#039;qdigidoc&#039;&#039;&#039;, &#039;&#039;&#039;mozilla-esteid&#039;&#039;&#039; (digiallekirjoitus), &#039;&#039;&#039;kdepim&#039;&#039;&#039; (kleopatra), &#039;&#039;&#039;pam_pkcs11&#039;&#039;&#039;.&lt;br /&gt;
* CA-avaimien paketti: &#039;&#039;&#039;ca-certificates&#039;&#039;&#039;&lt;br /&gt;
* Pakettienhallintatyökalu: [[Yum]] ja [[PackageKit]]&lt;br /&gt;
* ssh-agent käynnistyy automaattisesti jos on asennettu.&lt;br /&gt;
* onepin-opensc-pkcs11.so plugin sijaitsee arkkitehtuurin mukaisessa hakemistossa joko: &amp;lt;code&amp;gt;/usr/lib/onepin-opensc-pkcs11.so&amp;lt;/code&amp;gt; tai &amp;lt;code&amp;gt;/usr/lib64/onepin-opensc-pkcs11.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
* ssh-agent: KDE-ympäristöllä pitää poistaa kommenteista agentin käynnistyskomennot tiedostossa /etc/kde/startup/agent-startup.sh&lt;br /&gt;
&lt;br /&gt;
=== OpenSuse ===&lt;br /&gt;
&lt;br /&gt;
* Pakettienhallintatyökalu: [[Zypper]] ja [[PackageKit]]&lt;br /&gt;
&lt;br /&gt;
=== RHEL (Red Hat Enterprise Linux) ===&lt;br /&gt;
&lt;br /&gt;
Käynnistä Subscription Manager, mene System-valikkoon ja valitse Repositories. Merkitse {rhel-7-server-optional-rpms | rhel-7-desktop-optional-rpms | rhel-7-workstation-optional-rpms} pakettivaranto käyttöön.&lt;br /&gt;
&lt;br /&gt;
Nyt voit jatkaa Fedoran ohjeilla.&lt;br /&gt;
&lt;br /&gt;
===Ubuntu===&lt;br /&gt;
&lt;br /&gt;
* Asenna paketit &amp;lt;tt&amp;gt;opensc&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;mozilla-opensc&amp;lt;/tt&amp;gt; ja &amp;lt;tt&amp;gt;pcscd&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Pakettienhallintatyökalu: [[Apt]], [[PackageKit]]&lt;br /&gt;
&lt;br /&gt;
== Katso myös ==&lt;br /&gt;
&lt;br /&gt;
* [[Mobiilivarmenne]]&lt;br /&gt;
* [[Apache_httpd]]&lt;br /&gt;
* [[Firefox]]&lt;br /&gt;
* [[Gnupg]] - GNU Privacy Guard&lt;br /&gt;
* [[gnupg-pkcs11-scd]] - pkcs11 plugin Gnupg ohjelmistoon.&lt;br /&gt;
* [[Openoffice]] - OpenOffice.org toimisto-ohjelmisto&lt;br /&gt;
* [[qDigiDoc]]&lt;br /&gt;
* [[PAM]] - Pluggable Authentication Modules&lt;br /&gt;
* [[SSH]] - Secure SHell&lt;br /&gt;
* [[Thunderbird]]&lt;br /&gt;
* [[VPN]] - Virtual Private Network&lt;br /&gt;
* [[Wpa_supplicant]]&lt;br /&gt;
&lt;br /&gt;
== Aiheesta muualla ==&lt;br /&gt;
&lt;br /&gt;
* [http://fineid.fi/ http://fineid.fi] - Suomalaisen henkilökortin kotisivu.&lt;br /&gt;
* [http://www.vaestorekisterikeskus.fi/ http://www.vaestorekisterikeskus.fi/] - Väestörekisterikeskus&lt;br /&gt;
* [http://fi.wikipedia.org/wiki/HST http://fi.wikipedia.org/wiki/HST] - Henkilökortti Wikipediassa.&lt;br /&gt;
* [http://fi.wikipedia.org/wiki/PKI http://fi.wikipedia.org/wiki/PKI] - Julkisen avaimen infrastruktuuri Wikipediassa.&lt;br /&gt;
* [https://github.com/OpenSC/OpenSC/wiki/ opensc-wiki ] - OpenSC korttityökalujen kotisivu.&lt;br /&gt;
* [https://github.com/OpenSC/OpenSC/wiki/Finnish-FINEID OpenSC-wiki - FinnishEid] - OpenSC projektin FINEID sivu.&lt;br /&gt;
* [http://www.cryptsoft.com/pkcs11doc/v230/ http://www.cryptsoft.com/pkcs11doc/v230/] -  pkcs#11 standardi.&lt;br /&gt;
* [http://www.openxades.org/files/DigiDoc%20format%201.3.doc openxades.org - digidoc-1.3] - DigiDoc määritys.&lt;br /&gt;
* [http://code.google.com/p/esteid/ http://code.google.com/p/esteid/]- Viron henkilökortin ohjelmistokehitys.&lt;br /&gt;
* [http://id.ee/ http://id.ee/] - Viron henkilökortin ohjesivusto (est, eng, rus).&lt;br /&gt;
* [https://bugs.kde.org/show_bug.cgi?id=116201 kde.org - bug 116201] - Keskustelua KDE:n pkcs#11 tuesta.&lt;br /&gt;
* [https://www.bugzilla.mozilla.org/show_bug.cgi?id=511652 mozilla.org - Add a GUI option to toggle the &amp;quot;Friendly certs&amp;quot; option of NSS]&lt;br /&gt;
* [irc://irc.freenode.net/opensc irc://irc.freenode.net/opensc] - OpenSC IRC kanava.&lt;br /&gt;
* [irc://irc.freenode.net/fineid irc://irc.freenode.net/fineid] - #fineid IRC kanava.&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Laitteisto]]&lt;br /&gt;
[[Luokka:Ohjeet]]&lt;br /&gt;
[[Luokka:Tietoturva]]&lt;br /&gt;
[[Luokka:Suomi]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=HST&amp;diff=47793</id>
		<title>HST</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=HST&amp;diff=47793"/>
		<updated>2017-09-02T19:11:21Z</updated>

		<summary type="html">&lt;p&gt;Jem: /* Jakelukohtaisia ohjeita */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Väestörekisterikeskus tarjoaa Suomessa  [http://www.vaestorekisterikeskus.fi/default.aspx?id=134 henkilön sähköisen tunnistamisen] (&#039;&#039;HST, eng FINEID&#039;&#039;) ratkaisua sirullisella henkilökortilla. Kortin myöntää poliisi. Henkilökortilla on [[wikipedia:fi:PKI|julkisen avaimen menetelmään]] perustuva laatuvarmenne. Varmenteen avulla voi tunnistautua, allekirjoittaa ja salata dokumentteja ja viestiliikennettä.&lt;br /&gt;
&lt;br /&gt;
HST-kortin etuina on vahvan salauksen käyttö yhdistettynä vaatimukseen fyysisen esineen (&amp;quot;token&amp;quot;) hallussapitoon. Toisin sanoen, niin kauan kuin esine (kortti) on hallussasi, kukaan ei pysty käyttämään väärin korttiin liittyvää sähköistä identiteettiä. Kortti on maksukortin kokoinen, helposti mukana pidettävä ja sen käyttö on suojattu PIN-koodilla. PIN-koodi on aina sama, riippumatta mihin palveluun kortilla tunnistaudutaan.&lt;br /&gt;
&lt;br /&gt;
== Peruskäyttäjän tehtävälista ==&lt;br /&gt;
&lt;br /&gt;
Vaikka sivulla on paljon asiaa, ei tämä oikeasti niin vaikeaa ole, lyhyesti:&lt;br /&gt;
&lt;br /&gt;
# Hanki henkilökortti. Sitä voi anoa&lt;br /&gt;
#* paikalliselta poliisilta, toimitusaika kaksi vkoa.&lt;br /&gt;
#* [https://poliisi.fi/henkilokortti/henkilokortin_hakeminen Poliisin sähköisessä asiointipalvelussa] mikäli käytössä on pankkitunnukset tai mobiilivarmenne tai voimassaoleva henkilökortti. Vaatii valokuvaamolta saatavan kuvatunnuksen.&lt;br /&gt;
# Hanki kortin lukijalaite, tarkasta tuetut mallit ennen ostamista.&lt;br /&gt;
# Tutustu Linux-jakelukohtaisiin ohjeisiin mahdollisten lisäohjelmistojen asentamiseksi (lisätietoja alla).&lt;br /&gt;
# Tarvittaessa asenna vaaditut paketit ja konfiguroi ne (lähinnä vanhat lukijat).&lt;br /&gt;
# Käy tarvitsemasi sovellukset läpi ([[HST#Firefox_2|Firefox]] jne) ja konfiguroi ne.&lt;br /&gt;
# Testaa ja käytä. Testaamiseen voit käyttää  [http://fineid.fi/default.aspx?docid=2245&amp;amp;site=9&amp;amp;id=0 fineid.fi testisivua].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Huom! Poliisilla käyvälle:&#039;&#039;&#039; Varmista kun anot korttia, että virkailija täyttää hakemukseen myös sähköpostiosoitteesi &amp;amp;ndash; oletuksena hän jättää tämän kentän tyhjäksi, jolloin sähköpostiosoitetta ei tule varmenteeseen. Osoite varmenteessa ei ole välttämätön kun korttia käytetään tunnistautumiseen, mutta siitä voi olla hyötyä sähköpostin salauksessa ja se kuuluu kortin hintaan.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Huom! Verkosta haettaessa:&#039;&#039;&#039; Mikäli haluat henkilökorttiisi Kela-tiedot (viivakoodi taakse), pyydä sitä kun käyt allekirjoittamassa henkilökortin, verkkohakemuksesta puuttuu kohta sille, mutta allekirjoittaessa se voidaan lisätä.&lt;br /&gt;
&lt;br /&gt;
== Laitteet ==&lt;br /&gt;
&lt;br /&gt;
Korttia varten tarvitaan kortinlukija ja lukijaan sopiva ajuri. Lukijoita on pääasiassa kahta tyyppiä. Ulkoinen, tyypillisesti USB-väylään liitettävä lukija, sekä joissakin kannettavissa tietokoneissa oleva sisäinen lukija. Toiset esim kannettavan tietokoneen laajennuskorttipaikkaan sopivat lukijat näkyvät USB-väylässä ja toimivat sen mukaisesti. Hinnat vaihtelevat mallista ja ostopaikasta riippuen, nykyaikaisen USB-lukijan hinta vaihtelee kuuden ja 25 euron välillä.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&lt;br /&gt;
[[Tiedosto:Cm 3021 190px.jpg]][[Tiedosto:CardMan4321 190px.jpg]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lukijalaitteita on myös omalla fyysisellä näppäimistöllä varustettuna jota käytetään pin-koodien syöttämiseen. Tällöin koodeja käsitellään ainoastaan lukijassa eivätkä ne siten altistu mahdollisille tietokoneen haittaohjelmille.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Nykyaikaiset lukijat ==== &lt;br /&gt;
&lt;br /&gt;
Kun on hankkimassa USB-lukijaa, kannattaa valita ns. &#039;&#039;CCID&#039;&#039; (Circuit Card Interface Device) -speksin mukainen lukija. CCID on USB-väylän yhteyteen määritelty ns. Device Class -määrittely, joka määrittelee yhteisen protokollan eri valmistajien USB-lukijoille. &lt;br /&gt;
&lt;br /&gt;
Esimerkkejä CCID-protokollan mukaisista lukijoista ovat:&lt;br /&gt;
&lt;br /&gt;
* [http://www.hidglobal.com/omnikey/ Omnikey] 1021, 3021, 3121, 4321 ym (4040 varauksella).&lt;br /&gt;
* [http://www.scmmicro.com/security/view_product_en.php?PID=4 SCM SCR 3310]&lt;br /&gt;
* Dellin tiettyjen USB-näppäimistömallien integroidut lukijat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Vanhemmat lukijat ==== &lt;br /&gt;
&lt;br /&gt;
Aikanaan valtaosa ensimmäisistä älykorttilukijoista oli RS-232 pohjaisia ja siten niiden käyttöönotto oli myös hieman työläämpää. Ensimmäiset USB-lukijat olivat myös RS-232 laitteita, niissä oli vain sisäinen USB-RS232 adapteripiiri (usein Prolific PL2303, pl2303 ajuri) joten laite lopulta näkyy yhtenä ttyUSB&amp;lt;n&amp;gt;-laitteena ajurinsa perusteella ja pitää siten ottaa käsin käyttöön.&lt;br /&gt;
&lt;br /&gt;
Ennen USB-laitteiden CCID-määrittelyn valmistumista jokainen valmistaja käytti omaa protokollaa; näitä vanhempia lukijoita näkee vielä silloin tällöin.&lt;br /&gt;
&lt;br /&gt;
* Towitoko ChipdDrive-micro 130 - USB-RS232 emulaatiolla oleva ihan toimiva lukija jos jakelu tukee.&lt;br /&gt;
* Towitoko ChipDrive Extern 330 - Sama sähköisesti kuin ChipDrive-micro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tietyt lukijalaitteiden brändit ovat vaihtuneet kun firmat ovat ostelleet toisiaan.&lt;br /&gt;
&lt;br /&gt;
=== Towitoko ChipDrive ===&lt;br /&gt;
&lt;br /&gt;
[[Tiedosto:Towitoko.chipdrive.JPG]]&lt;br /&gt;
&lt;br /&gt;
Ei asennu automaattisesti, tehtävä seuraavat toimenpiteet käsin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;openct&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Poista &amp;lt;code&amp;gt;/etc/openct.conf&amp;lt;/code&amp;gt; tiedostosta kommentointi seuraavan lohkon osalta:&lt;br /&gt;
  #reader towitoko {&lt;br /&gt;
  #       driver = towitoko;&lt;br /&gt;
  #       device = serial:/dev/ttyS0;&lt;br /&gt;
  #};&lt;br /&gt;
&lt;br /&gt;
Varmistu, että &#039;&#039;device&#039;&#039; osoittaa oikeaan laitteeseen. (esim ttyUSB0). Käynnistä openct palvelu uudelleen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pcscd&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
?&lt;br /&gt;
&lt;br /&gt;
== Ohjelmistot ==&lt;br /&gt;
&lt;br /&gt;
===  Arkkitehtuuri ===&lt;br /&gt;
&lt;br /&gt;
Sovellusohjelma tarvitsee ohjelmointirajapinnan (API) pystyäkseen keskustelemaan älykortin kanssa. RSA Laboratories on määritellyt C-ohjelmointirajapinnan niin sanotuille kryptograafisille tokeneille nimeltä &#039;&#039;[http://www.cryptsoft.com/pkcs11doc/v230/ PKCS#11]&#039;&#039;. Se on 11. osa RSA Laboratoriesin sarjassa Public Key Cryptography Standards ja tunnetaan myös lempinimellä &#039;&#039;Cryptoki&#039;&#039; (väännös sanoista Cryptographic Token Interface). Cryptoki on tyypillisesti toteutettu ns. pluginina (.so-tiedosto). Useampi sovellus voi käyttää Cryptoki-rajapintaa rinnakkain; kirjaston tehtävänä on synkronoida pääsy yksittäiselle tokenille. Cryptoki pystyy myös hallitsemaan useampaa järjestelmään liitettyä tokenia. OpenSC-ohjelmisto sisältää Cryptoki-toteutuksen jaettuna kirjastona nimellä opensc-pkcs11.so.&lt;br /&gt;
&lt;br /&gt;
PKCS#11-kirjaston ja lukijan välille tarvitaan vielä ns. middleware, josta on avoimena lähdekoodina kaksi vaihtoehtoista toteutusta: &#039;&#039;PCSC-lite&#039;&#039; tai &#039;&#039;OpenCT&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PC/SC&#039;&#039;&#039; (Personal Computer/Smart Card) on alun perin Microsoftilta tullut aloite, joka määrittelee yhtenäisen, laitteistosta riippumattoman, rajapinnan älykorteille. PC/SC:n ja Cryptokin erona on, että PC/SC määrittelee alemman tason rajapinnan älykorteille yleensä, kun taas Cryptoki määrittelee rajapinnan julkisen avaimen cryptotokeneille, jotka eivät välttämättä ole edes toteutettu älykortteina.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OpenCT&#039;&#039;&#039; on OpenSC:n kehittäjien kehittämä &amp;quot;liima&amp;quot; ylemmän tason Cryptoki-kirjaston ja laitteiston välillä. OpenCT on suoraviivaisempi vaihtoehto PC/SC:lle. Se pystyy käsittelemään lukijoita suoraan, kun taas PC/SC (PCSC-lite) tarvitsee erikseen vielä lukijalle ajurin. USB-lukijoilla käytetään &#039;&#039;CCID&#039;&#039;-ajuria. Toisaalta OpenCT ei toteuta PC/SC-rajapintaa, joten sitä ei voi käyttää jos sovellus on kirjoitettu käyttämään PC/SC-rajapintaa. Nykyään sen kehitys on pysähtynyt ja siten laitteisto- ja yhteisötuki on heikentynyt.&lt;br /&gt;
&lt;br /&gt;
Alla on esitetty kaavioina yllä mainitut kaksi ohjelmistovaihtoehtoa:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Tiedosto:openct.png]]   &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;   [[Tiedosto:pcsc-lite.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ajurit ja middleware===&lt;br /&gt;
&lt;br /&gt;
Kortin käyttö edellyttää kortinlukijaa sekä asennettua kortinlukijaohjelmistoa. Ohjelmistoksi on olemassa kaksi rinnakkaista vaihtoehtoa:&lt;br /&gt;
* Avoin &#039;&#039;OpenSC&#039;&#039; sekä siihen liittyvät työkalut ja kirjastot&lt;br /&gt;
* Kaupallinen &#039;&#039;mPollux Digisign Client&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====OpenSC====&lt;br /&gt;
&lt;br /&gt;
Avoimessa projektissa kehitettävä [http://www.opensc-project.org/ OpenSC]-ohjelmisto on maailmanlaajuisesti käytössä oleva älykorttiohjelmisto. Se tukeutuu yleensä &lt;br /&gt;
[http://pcsclite.alioth.debian.org/ pcsc-lite] laitteistorajapintaan joka toteuttaa PC/SC määritykset. Projektin oma vastaava rajapinta [http://www.opensc-project.org/openct/ openct] on nykyään jo harvemmin käytössä.&lt;br /&gt;
&lt;br /&gt;
Joissakin Linux-jakeluissa on älykorttien käsittely on integroitu toimivaksi kokonaisuudeksi, joiden käyttöönotto parhaimmillaan edellyttää ainoastaan lukijan kytkentää ja WWW-selaimen asetusten asettamista.&lt;br /&gt;
&lt;br /&gt;
==== mPollux Digisign Client ====&lt;br /&gt;
&lt;br /&gt;
Väestörekisterikeskus tarjoaa maksutta Fujitsu Services Oy:n [https://eevertti.vrk.fi/Default.aspx?id=247 mPollux Digisign Client] -kortinlukijaohjelmiston henkilökortin käyttäjille. VRK:n WWW-sivuilta on mahdollista ladata ohjelmisto RHELille, Suselle ja Ubuntulle 32- ja 64-bittisenä versioina. Paketit toiminevat myös monissa niille sukua olevissa jakeluissa.&lt;br /&gt;
&lt;br /&gt;
Ohjelmistosta joulukuussa 2011 julkistettu 64-bittinen versio, mutta sitä ei tiettävästi ole saatavilla minkään Linux-jakelun virallisesta paketinhallinnasta. Käyttäjän tulee huolehtia päivityksistä manuaalisesti kyläilemällä Väestörekisterikeskuksen sivuilla säännöllisesti. mPollux-ohjelmistosta ei ole lähdekoodia saatavilla.&lt;br /&gt;
&lt;br /&gt;
===Sovellusohjelmien tuki===&lt;br /&gt;
&lt;br /&gt;
Sovellustuki voi olla joko suora tai perustua kirjastoon joka on säädetty tukemaan kortinlukijaa ja sen varmenteita.&lt;br /&gt;
&lt;br /&gt;
==== Firefox ====&lt;br /&gt;
&lt;br /&gt;
Palvelun niin vaatiessa, mahdollisuus muodostaa ns client-side varmennetta vaativa SSL-yhteys jossa palvelupää tunnistaa selaimen käyttäjän kortin esimmäisellä varmenteella. Tällöin käyttäjän tiedot löydetään palvelun tietokannoista sähköisellä asiointitunnuksella.&lt;br /&gt;
&lt;br /&gt;
Palvelu voi pyytää käyttäjää allekirjoittamaan sisältöä kortin toisella varmenteella. Teknisiä toteutustapoja on lukuisia ja erityisesti vanhat Java-pohjaiset toimivat huonosti. Uusimmat toteutukset käyttävät C-kielellä toteutettua selaimen pluginia joka tulee asentaa käyttäjän tietokoneeseen ennen palvelun käyttöä.&lt;br /&gt;
&lt;br /&gt;
==== Opera ====&lt;br /&gt;
&lt;br /&gt;
Selain (versio 11.60) ei tue pkcs#11 moduleita eikä siten myös älykortteja.&lt;br /&gt;
&lt;br /&gt;
==== PAM ====&lt;br /&gt;
&lt;br /&gt;
PAM (&#039;&#039;Pluggable Authentication Module&#039;&#039;) on asetettavissa tunnistamaan tietokoneeseen kirjautuja henkilökortin varmenteella. Tämä mahdollistaa kirjautumisen salasanan asemasta tai niiden rinnakkaisen käytön. Asetukset ja niiden määrittäminen on jakelukohtaisia. Toimiessaan PAM-tasolla, korttituki toimii niin merkkipohjaisessa kuin graafisessa sisäänkirjautumisessa.&lt;br /&gt;
&lt;br /&gt;
==== Ssh ====&lt;br /&gt;
&lt;br /&gt;
OpenSSH tukee henkilökortin käyttöä autentikointiin PKCS#11-rajapinnan kautta. Kortin sisältämän avainparin julkinen osa siirretään niille ssh-palvelimille, joihin halutaan olla yhteydessä. SSH-asiakasohjelma pystyy käyttämään kortilla olevaa salaista osaa kättelyssä palvelimen kanssa. Avainten hallintaan käytetään OpenSSH:n mukana tulevia &#039;&#039;&#039;ssh-agent&#039;&#039;&#039; ja &#039;&#039;&#039;ssh-add&#039;&#039;&#039; apuohjelmia.&lt;br /&gt;
&lt;br /&gt;
ssh-agent on ohjelma, joka säilöö ohjelman ajon ajaksi privaatteja salausavaimia ajomuistiin ssh-ohjelman käyttöön, mutta siinä on myös tuki opensc-pkcs11 pluginille. Tällöin niitä ei ladata muistiin, vaan vain viitataan kortilla olevaa avaimeen kirjaston rajapinnan kautta.&lt;br /&gt;
&lt;br /&gt;
Korttia pystyy käyttämään OpenSSH:n komentoriviohjelmien (&#039;&#039;ssh&#039;&#039;, &#039;&#039;scp&#039;&#039;, &#039;&#039;sftp&#039;&#039;) lisäksi ohjelmien kanssa, jotka käyttävät ssh:ta siirtotienään. Esimerkki tällaisesta ohjelmistosta on versionhallintajärjestelmä &#039;&#039;git&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== OpenOffice.org ====&lt;br /&gt;
&lt;br /&gt;
Dokumentteja on mahdollista allekirjoittaa kortin ensimmäisellä tunnistus-varmenteella. Tuki on ohjelmaan sisäänrakennettu eikä vaadi erillistä säätämistä toimiakseen, jos muu korttituki toimii.&lt;br /&gt;
&lt;br /&gt;
==== qDigiDoc ====&lt;br /&gt;
&lt;br /&gt;
Graafinen työkalu DigiDoc-määrityksen mukaisten digitaalisten säiliöiden (&#039;&#039;eng container&#039;&#039; ) luomiseen ja käsittelyyn. Varmenteella voi allekirjoittaa ja/tai salata säiliön sisällön. Sisältö voi olla mitä tiedostoja tahansa. Ohjelmisto on kehitetty Virossa ja on yhteiskunnassa laajalti käytetty ja hyväksytty sovellus, merkittävin henkilökortin käyttökohde WWW-tunnistamisen rinnalla. Ohjelmasta voi lukea lisää sen omalta [[qDigiDoc]] sivulta.&lt;br /&gt;
&lt;br /&gt;
==== Lähiverkon pääsynvalvonta - 802.1x ====&lt;br /&gt;
&lt;br /&gt;
IEEE:n standardi [http://en.wikipedia.org/wiki/802.1x 802.1x] määrittelee langallisen ja langattoman lähiverkon pääsynvalvontamekanismeja. Tämä mahdollistaa tekniikkaan tukevan lähiverkkolaitteen asettamisen tunnistamaan liikennöijän jo OSI-tasolla 2 (lähiverkon rautaprotokolla) ja haluttaessa sallimaan tai estämään liikennöinnin. &lt;br /&gt;
Käytettäessä [http://en.wikipedia.org/wiki/Extensible_Authentication_Protocol#EAP-TLS EAP-TLS] (&#039;&#039;Extensible Authentication Protocol - Transport Layer Security&#039;&#039;) asetusta, verkkoon liittyjä tunnistetaan varmenteella joka voidaan lukea älykortilta ja pääsynvalvontatiedot saadaan verkon yli RADIUS-palvelulta. Wikipedian mukaan EAP-TLS ratkaisu on yksi turvallisimmista mahdollisista käytettäessä älykorttia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Gnupg ohjelmat ====&lt;br /&gt;
&lt;br /&gt;
Gnupg:ssä on älykorttituki, mutta se vaatii sille itselleen kirjoitetun sovelluksen kortilta (eikä Suomen henkilökortti ole tälläinen). Näitä kortteja on tällä tietämyksellä  markkinoilla kaksi eri tyyppistä eikä niitä käytetä kansalaisvarmenteina, vaan avainparit luodaan korteille itse ja niiden merkitys on sen mukainen. Arkkitehtuuri on seuraava:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;gpg-agent&#039;&#039;&#039; käynnistyy käyttäjän istuntoon taustalle ja viestii eri prosessien kanssa (vastaa ssh-agent palvelua)&lt;br /&gt;
* &#039;&#039;&#039;scdaemon&#039;&#039;&#039; palvelu käynnistyy tarvittaessa gpg-agentin käynnistämänä ja käsittelee älykortteja pcscd-palvelun läpi.&lt;br /&gt;
* &#039;&#039;&#039;gpg2&#039;&#039;&#039; ja &#039;&#039;&#039;gpgsm&#039;&#039;&#039; toimivat asiakasohjelmina joko suoraan tai muiden käyttöliittymien käynnistäminä.&lt;br /&gt;
&lt;br /&gt;
Käyttäjäyhteisö ja kehittäjät ovat keskustelleet aiheesta aika-ajoin, mutta kehittäjien näkökanta on määrännyt tilanteen eikä varsinaista muutosta tilanteeseen ole tullut vuosiin. Erimielisyyttä on yritetty kiertää korvaamalla scdaemon prosessi vastaavalla jossa on opensc-pkcs11 tuki. Korvaavan taustapalvelun nimi on &#039;&#039;&#039;gnupg-pkcs11-scd&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== KDE ja PKCS#11 ====&lt;br /&gt;
&lt;br /&gt;
KDE työpöytäympäristön  tilanne kansallisten varmennekorttien käyttäjille ei ole hyvä. Työpöydän kehittäjät edustavat leiriä jossa RSA-Laboratorion PKCS määritykset nähdään vapaiden ohjelmistojen kilpailijoina ja niitä ei haluta tukea. KDE ympäristössä varmennetuki pohjautuu ainoastaan [[Gnupg]] ohjelmiston päälle rakennettuun &#039;&#039;&#039;Kleopatra&#039;&#039;&#039; varmennehallinta-sovellukseen ja yksittäisiin sovelluksiin joissa on Gnupg tuki. Kleopatralla voi jonkun verran hallita varmenteita ja se tunnistaa myös X.509 varmenteet joita voi siihen lisätä, mutta ohjelma ei suoraan tue opensc:n pkcs11-pluginia joka mahdollistaa X.509-tyyppisten varmenteiden käytön älykortilta.&lt;br /&gt;
&lt;br /&gt;
Gnupg-yhteensopivia sovelluksia ovat KMail sähköposti, Kaddressbook-osoitekirja ja Kgpg salaus ja allekirjoitustyökalu. Gnupg-ohjelmilla omat asetustiedostonsa joita Kleopatra muuttaa käynnistyessään yrittääkseen varmistaa toimivuuden.&lt;br /&gt;
&lt;br /&gt;
Henkilökortin käyttäjän näkökulmasta tilanne on sekava. Jos kortti on ylipäätään mahdollista saada toimimaan KDE-ohjelmissa, sen asettelu on lievästi sanottuna vaikeaa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OpenSC-sivustolla on [http://www.opensc-project.org/opensc/wiki/ApplicationSupport pitkä lista] erillaisista ohjelmistojen tuesta varmenteille.&lt;br /&gt;
&lt;br /&gt;
=== Apuohjelmat ===&lt;br /&gt;
&lt;br /&gt;
Tähän osioon on kerätty ohjelmat, joita ei normaalissa kortin käytössä tarvita, mutta voivat olla hyödyksi vianetsinnässä, PIN-koodien vaihdossa ja yleisen mielenkiinnon vuoksi. Ohjelmat pkcs11-tool ja pkcs15-tool löytyvät OpenSC-paketista.&lt;br /&gt;
&lt;br /&gt;
==== Korttipaikkojen listaus ====&lt;br /&gt;
  $ pkcs11-tool --module opensc-pkcs11.so -L&lt;br /&gt;
  Slot 8           OmniKey CardMan 3121 00 00&lt;br /&gt;
    token label:   HENKILOKORTTI (perustunnusluku)&lt;br /&gt;
    token manuf:   VRK-FINEID&lt;br /&gt;
    token model:   PKCS#15&lt;br /&gt;
    token flags:   login required, PIN initialized, token initialized&lt;br /&gt;
    serial num  :  4600015034197296&lt;br /&gt;
  Slot 9           OmniKey CardMan 3121 00 00&lt;br /&gt;
    token label:   HENKILOKORTTI (allekirjoitustunn&lt;br /&gt;
    token manuf:   VRK-FINEID&lt;br /&gt;
    token model:   PKCS#15&lt;br /&gt;
    token flags:   login required, PIN initialized, token initialized&lt;br /&gt;
    serial num  :  4600015034197296&lt;br /&gt;
&lt;br /&gt;
==== Varmenteiden listaus ====&lt;br /&gt;
  $ pkcs15-tool -c&lt;br /&gt;
  Using reader with a card: OmniKey CardMan 3121 00 00&lt;br /&gt;
  X.509 Certificate [todentamis- ja salausvarmenne]&lt;br /&gt;
          Flags    : 0&lt;br /&gt;
          Authority: no&lt;br /&gt;
          Path     : 3f004331&lt;br /&gt;
          ID       : 45&lt;br /&gt;
  &lt;br /&gt;
  X.509 Certificate [allekirjoitusvarmenne]&lt;br /&gt;
          Flags    : 0&lt;br /&gt;
          Authority: no&lt;br /&gt;
          Path     : 3f0050164332&lt;br /&gt;
          ID       : 46&lt;br /&gt;
  &lt;br /&gt;
  X.509 Certificate [VRK Gov. Root CA]&lt;br /&gt;
          Flags    : 0&lt;br /&gt;
          Authority: yes&lt;br /&gt;
          Path     : 3f004334&lt;br /&gt;
          ID       : 48&lt;br /&gt;
  &lt;br /&gt;
  X.509 Certificate [VRK Gov. CA for Citizen Qualified Certificates]&lt;br /&gt;
          Flags    : 0&lt;br /&gt;
          Authority: yes&lt;br /&gt;
          Path     : 3f004333&lt;br /&gt;
          ID       : 47&lt;br /&gt;
&lt;br /&gt;
==== PIN koodin vaihto ====&lt;br /&gt;
&lt;br /&gt;
==== PUK koodin käyttö ====&lt;br /&gt;
&lt;br /&gt;
PUK (&#039;&#039;pin unblock key&#039;&#039;) koodia tarvitaan jos kortti menee jumiin esimerkiksi liian monesta epäonnistuneesta varmenteen käyttöyrityksestä. Koodin voi antaa joko komentorivioptiona (selkeämpi kirjoittaa) tai syöttää sen interaktiivisesti. Vivulla &#039;&#039;&#039;-a&#039;&#039;&#039; määritellään mitä pin-koodia ollaan vaihtamassa, numero yksi tarkoittaa ensimmäistä koodia.&lt;br /&gt;
  $ pkcs15-tool --unblock-pin --puk 12345678 -a 1&lt;br /&gt;
  Using reader with a card: OmniKey CardMan 1021 01 00&lt;br /&gt;
  Enter new PIN [PIN1]: ****&lt;br /&gt;
  Enter new PIN again [PIN1]: ****&lt;br /&gt;
&lt;br /&gt;
==== CA-varmenteiden lukeminen kortilta ====&lt;br /&gt;
&lt;br /&gt;
Henkilökortilla on Väestörekisterikeskuksen juuri- ja kansalais- eli ns CA-varmenteet. CA-varmennetta tarvittaessa, järkevintä on ottaa se henkilökortilta eikä ladata verkosta jotta ei altistu teoreettiselle ns [http://fi.wikipedia.org/wiki/Man-in-the-middle_attack &#039;&#039;man-in-the-middle&#039;&#039;] hyökkäykselle. Valtaosa on saanut korttinsa suoraan poliisilta jolloin voidaan olla suhteellisen varmoja, ettei varmennetta tai korttia ole väärennetty. Jos sovellus ei tue varmenteiden ketjutusta, tulee käyttää sitä CA-varmennetta jolla itse osapuolen varmenne on allekirjoitettu. Muussa tapauksessa juurivarmenne riittää.&lt;br /&gt;
&lt;br /&gt;
Varmenteen saa kopioitua kortilta tiedostoon käyttäen &#039;&#039;&#039;-r&#039;&#039;&#039; vipua ja varmenteen &#039;&#039;id-numeroa&#039;&#039;. Yhdistettynä nämä yhdeksi komennoksi:&lt;br /&gt;
&lt;br /&gt;
  $ pkcs15-tool -r $(pkcs15-tool -c|grep  -A4 &amp;quot;Root&amp;quot;|grep ID|cut -d: -f2) &amp;gt; vrkrootca.pem&lt;br /&gt;
&lt;br /&gt;
Yllä itse varmenne luetaan kortilta ja tulos ohjataan tiedostoon. Tiedostoa voi käyttää sellaisenaan esim WWW-selaimessa tai Apache-httpd palvelimessa.&lt;br /&gt;
&lt;br /&gt;
==== Yhteiskäyttö ja Opensc &amp;lt;= 0.11 ====&lt;br /&gt;
&lt;br /&gt;
Jotkin sovellukset vaativat kortin yhtäaikaista käyttöä (esim https tunnistus ja pin2 allekirjoitus sen yhteyden aikana). Tämä saattaa olla oletuksen estetty &amp;lt;code&amp;gt;/etc/opensc.conf&amp;lt;/code&amp;gt; tiedostossa  &#039;&#039;&#039;lock_login&#039;&#039;&#039; asetuksella, rivi joka on opensc-0.11 ja varhaisemmissa kommentoitu pois kokonaan, siten oletuksena &#039;&#039;&#039;true&#039;&#039;&#039; tilassa. Poistamalla kommentin ja jättämällä &#039;&#039;&#039;false&#039;&#039;&#039; arvon, lukitus estyy ja useat yhtäaikaiset sovellukset toimivat.&lt;br /&gt;
&lt;br /&gt;
  # By default, the OpenSC PKCS#11 module will lock your card&lt;br /&gt;
  # once you authenticate to the card via C_Login.&lt;br /&gt;
  # This is to prevent other users or other applications&lt;br /&gt;
  # from connecting to the card and perform crypto operations&lt;br /&gt;
  # (which may be possible because you have already authenticated&lt;br /&gt;
  # with the card).&lt;br /&gt;
  &lt;br /&gt;
  # Thus it is impossible to use several smart card aware&lt;br /&gt;
  # applications at the same time, e.g. you cannot run both&lt;br /&gt;
  # Firefox and Thunderbird at the same time, if both are&lt;br /&gt;
  # configured to use your smart card.&lt;br /&gt;
  #&lt;br /&gt;
  # Default: true&lt;br /&gt;
  lock_login = false;&lt;br /&gt;
&lt;br /&gt;
Opensc &amp;gt;= 0.12 asetus on pois päältä oletuksena ja käyttäjän toimenpiteitä ei tarvita. Asetustiedostossa on asiaa selitetty runsaammin englanniksi jos sen taustat kiinnostavat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Sovellusten jumiutumiset ====&lt;br /&gt;
&lt;br /&gt;
Varmenteita käyttävät ohjelmat ikävä kyllä jumittavat usein. Tällöin voi kokeilla kortin irroittamista lukijasta ja se usein vapauttaa jumitumisen ja jämähtänyttä toimintoa voi kokeilla heti uudelleen kortin lukijaan palauttamisen jälkeen.&lt;br /&gt;
&lt;br /&gt;
Toisinaan varmenteen luku ei tunnu onnistuvan ollenkaan ja silloin kannttaa kokeilla &#039;&#039;lypsämistä&#039;&#039; antamalla seuraava komento monta kertaa peräjälkeen kunnes se onnistuu:&lt;br /&gt;
&lt;br /&gt;
 $ pkcs15-tool -c&lt;br /&gt;
 PKCS#15 binding failed: Wrong length&lt;br /&gt;
 $ pkcs15-tool -c&lt;br /&gt;
 PKCS#15 binding failed: Wrong length&lt;br /&gt;
 $ pkcs15-tool -c&lt;br /&gt;
 Using reader with a card: OmniKey CardMan 3121 01 00&lt;br /&gt;
 X.509 Certificate...&lt;br /&gt;
&lt;br /&gt;
Komento tulee antaa samana käyttäjänä minä on istuntoon kirjautunut. Ongelma on kehittäjien tiedossa.&lt;br /&gt;
&lt;br /&gt;
Joskus koko korttiin ei saada yhteyttä:&lt;br /&gt;
&lt;br /&gt;
 $ pkcs15-tool -c&lt;br /&gt;
 Using reader with a card: OmniKey CardMan 1021 00 00&lt;br /&gt;
 Failed to connect to card: Unknown error&lt;br /&gt;
&lt;br /&gt;
Jos käytössä on pcscd, sen uudelleenkäynnistäminen auttaa:&lt;br /&gt;
&lt;br /&gt;
 # service pcscd restart&lt;br /&gt;
 Redirecting to /bin/systemctl  restart pcscd.service&lt;br /&gt;
&lt;br /&gt;
Tämän jälkeen tilanne on normali jälleen. Sovellukset kuten WWW-selain tulee käynnistää uudelleen koska sen yhteydet pcscd:hen ovat katkenneet eivätkä ne osaa muodostaa niitä itse uudelleen.&lt;br /&gt;
&lt;br /&gt;
== Sovelluskohtaisia ohjeita ==&lt;br /&gt;
&lt;br /&gt;
Jos käyttöön liittyy vastapuolen varmenne joka on Väestörekisterkeskuksen allekirjoittama, niin luotettavuuden todentaminen tapahtuu VRK:n CA-varmennetta vasten joka tulee olla asennettuna. Tapahtuma voi olla esimerkiksi allekirjoitettu tai salattu sähköpostiviesti tai myös WWW-palvelin joka käyttää VRK:n allekirjoittamaa palvelinvarmennetta.&lt;br /&gt;
&lt;br /&gt;
Varmenenteen voi kopioida kortilta suoraan kuten kohdasssa [[HST#CA-varmenteiden_lukeminen_kortilta|CA-varmenteiden lukeminen kortilta]] ohjeistetaan tai ladata se verkosta tietokoneelle VRK:n [http://fineid.fi/default.aspx?docid=2237&amp;amp;site=9&amp;amp;id=332 CA-varmenne sivulta]. Useimmissa tapauksissa ns juurivarmenne riittää (&#039;&#039;eng Root CA&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
&lt;br /&gt;
Firefoxin varmennekortti-tuen tehtävälista:&lt;br /&gt;
&lt;br /&gt;
# Juurivarmenteen asentaminen (pakollinen)&lt;br /&gt;
# Ulkoisen korttituen lisääminen (yleisimmin tarvittava)&lt;br /&gt;
# Allekirjoitus-pluginin asentaminen&lt;br /&gt;
&lt;br /&gt;
==== Juurivarmenteen asentaminen ====&lt;br /&gt;
&lt;br /&gt;
Avaa PEM-muotoinen X.509 varmennetiedosto &#039;&#039;File -&amp;gt; Open&#039;&#039; ja etsi kyseinen tiedosto, paina &#039;&#039;Open&#039;&#039; tai klikkaa varmenteen linkkiä VRK:n sivulla.&lt;br /&gt;
&lt;br /&gt;
Valise kaikki:&lt;br /&gt;
* &#039;&#039;Trust this CA to identify web sites&#039;&#039;&lt;br /&gt;
* &#039;&#039;Trust this CA to identify email users&#039;&#039;&lt;br /&gt;
* &#039;&#039;Trust this CA to identify software developers&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Paina &#039;&#039;Ok&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Korttituen lisääminen ====&lt;br /&gt;
&lt;br /&gt;
Varmennekortin tuki lisätään turva-asetuksista lisäämällä sinne &#039;&#039;&#039;onepin-opensc-pkcs11&#039;&#039;&#039; plugin. Tämä sellaisenaan mahdollistaa varmenteiden käytön asiakaspään tunnistamisessa SSL-yhteyksillä. Erilliset pluginit jotka käyttävät varmennekorttia, tarvitsevat myöskin tätä asetusta.&lt;br /&gt;
&lt;br /&gt;
Suomenkielisessä selaimessa:&lt;br /&gt;
&lt;br /&gt;
*valitse &#039;&#039;Muokkaa&#039;&#039; &amp;amp;rarr;&#039;&#039; Asetukset&#039;&#039; &amp;amp;rarr;&#039;&#039; Lisäasetukset&#039;&#039; &amp;amp;rarr; &#039;&#039;Salaus&#039;&#039; &amp;amp;rarr; &#039;&#039;Turvallisuuslaitteet&#039;&#039;&lt;br /&gt;
*paina &#039;&#039;Lataa&#039;&#039;&lt;br /&gt;
*lisää: &amp;lt;tt&amp;gt;/usr/lib/onepin-opensc-pkcs11.so&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Englanninkielisessä selaimessa:&lt;br /&gt;
&lt;br /&gt;
*valitse &#039;&#039;Edit&#039;&#039; &amp;amp;rarr; &#039;&#039;Preferences&#039;&#039; &amp;amp;rarr; &#039;&#039;Advanced&#039;&#039; &amp;amp;rarr; &#039;&#039;Encryption&#039;&#039; &amp;amp;rarr; &#039;&#039;Security Devices&#039;&#039;&lt;br /&gt;
*paina &#039;&#039;Load&#039;&#039;&lt;br /&gt;
*lisää: &amp;lt;tt&amp;gt;/usr/lib/onepin-opensc-pkcs11.so&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== pin2-koodin turha kysely ja onepin tausta ====&lt;br /&gt;
&lt;br /&gt;
Firefoxissa on &#039;&#039;ominaisuus&#039;&#039; joka pistää sen kysymään joka käyttökerta molempia pin-koodeja. Tämän ratkaisusta oli näkemyseroja joka johti pattitilanteeseen ja OpenSC-projekti päätyi kiertämään selaimen kehittäjien jääräpäisyyden tekemällä häkkäyksen itse pluginiin ja oman versionsa siitä jota kutsutaan &#039;&#039;&#039;onepin-opensc-pkcs11&#039;&#039;&#039; pluginiksi. Aiheesta enemmän projektin postilistan [http://www.opensc-project.org/pipermail/opensc-devel/2007-June/010031.html viestissä].&lt;br /&gt;
&lt;br /&gt;
==== Error code: ssl_error_renegotiation_not_allowed ====&lt;br /&gt;
&lt;br /&gt;
Uudemmat Firefox-versiot (versiosta 4) vaativat joidenkin palveluiden kohdalla selaimen lisäasetuksen. Tämä johtuu vuonna 2009 löydetystä [https://wiki.mozilla.org/Security:Renegotiation suunnitteluvirheestä TLS-protokollassa], joka mahdollistaa ns. mies välissä -hyökkäyksen. Firefox yrittää suojautua tätä haavoittuvuutta vastaan kieltämällä TLS-protokollan uusintakättelyn. Tätä ei ole otettu huomioon (tätä kirjoitettaessa 5/2011) muun muasssa niissä palveluissa, jotka käyttävät ns. VETUMA-palvelua (Verkkotunnistautuminen ja maksaminen) käyttäjän tunnistamiseen.&lt;br /&gt;
&lt;br /&gt;
Kunnes tämä ongelma on ratkaistu palvelinpuolella, ongelman pystyy kiertämään sallimalla Firefoxissa TLS-protokollan kaksoiskättelyn haluamilleen osoitteille &amp;amp;ndash; VETUMA-palvelun tapauksessa osoite on &#039;&#039;tunnistus.suomi.fi&#039;&#039;. Asetukset saa näkyville Firefoxissa kirjoittamalla osoitekenttään about:config. Etsi listasta kenttä &amp;lt;code&amp;gt;security.ssl.renego_unrestricted_hosts&amp;lt;/code&amp;gt; ja anna sille arvoksi esimerkiksi &amp;lt;code&amp;gt;tunnistus.suomi.fi,tyvi.elma.fi&amp;lt;/code&amp;gt;. Asetuksen vaihdon onnistumisen voi kokeilla VRK:n [https://verkkopalvelu.vrk.fi/Omat/Etusivu.aspx Omien tietojen tarkistus] -palvelusta. Huomaa, että asetuksessa tulee olla itse kohde palvelin, ei pelkkä domain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Thunderbird===&lt;br /&gt;
&lt;br /&gt;
*valitse &#039;&#039;Muokkaa&#039;&#039; &amp;amp;rarr; &#039;&#039;Asetukset&#039;&#039; &amp;amp;rarr; &#039;&#039;Lisäasetukset&#039;&#039; &amp;amp;rarr; &#039;&#039;Varmenteet&#039;&#039; &amp;amp;rarr; &#039;&#039;Turvallisuuslaitteet&#039;&#039;&lt;br /&gt;
*paina &#039;&#039;Lataa&#039;&#039;&lt;br /&gt;
*lisää: &amp;lt;tt&amp;gt;/usr/lib/opensc-pkcs11.so&amp;lt;/tt&amp;gt;&lt;br /&gt;
*edelleen lisäasetuksista valitse &#039;&#039;Näytä varmenteet&#039;&#039;&lt;br /&gt;
*valitse &#039;&#039;Varmentajat&#039;&#039;-välilehdeltä omat Väestörekisterikeskus CA:n alla olevat &#039;&#039;Varmenteet&#039;&#039; ja &#039;&#039;Muokkaa&#039;&#039;&lt;br /&gt;
*lisää valinnat: &amp;quot;Tämä varmenne voi todentaa WWW-sivustoja&amp;quot; ja &amp;quot;Tämä varmenne voi todentaa sähköpostittajia&amp;quot;&lt;br /&gt;
*valitse &#039;&#039;Muokkaa&#039;&#039; &amp;amp;rarr; &#039;&#039;Tilien asetukset&#039;&#039;&lt;br /&gt;
*halutun tilin &#039;&#039;Turvallisuus&#039;&#039;-valikosta valitse kortin todentamis- ja salausvarmenne&lt;br /&gt;
&lt;br /&gt;
Thunderbirdin ja Firefoxin voi saada käyttämään samaa varmennetietokantaa. Miten tämä tapahtuu on selitetty [https://wiki.mozilla.org/NSS_Shared_DB_Howto Mozillan Wiki-sivulla]. Yhteisen tietokannan etuna on se, että varmenteen saa tuotua tietokantaan yhdella klikkauksella Firefoxissa (esimerkiksi [http://vrk.fineid.fi/certsearchB.asp?todo=setlang&amp;amp;lang=fi VRK:n varmennehakusivulta]), jonka jälkeen varmenne on automaattisesti käytettävissä myös Thunderbirdissä.&lt;br /&gt;
&lt;br /&gt;
=== qDigiDoc ===&lt;br /&gt;
&lt;br /&gt;
Sovelluksen pitäisi toimia myös Suomen henkilökortilla, mutta se vaatii hieman toimenpiteitä ensin. Ohjeet löytyvät kokonaisuudessaan [[qDigiDoc]] sivulta.&lt;br /&gt;
&lt;br /&gt;
=== Ssh ===&lt;br /&gt;
Jotta linuxiin voi ottaa SSH-yhteyden älykortilla, täytyy älykortilla oleva julkinen avain tallentaa /home/&amp;lt;user&amp;gt;/.ssh hakemiston authorized_keys tiedostoon [https://linux.fi/wiki/OpenSSH OpenSSH]-formaatissa.&lt;br /&gt;
Ohjeet siihen miten julkinen avain muutetaan OpenSSH-formaattiin löytyy [https://joscor.com/blog/convert-windows-public-certificate-cer-to-openssh-public-key/ täältä].&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
Avaimia lisätään ssh-agent -ohjelmaan ssh-add -ohjelmalla. Älykorttien yhteydessä käytetään -s-optiota, jolla kerrotaan pluginin polku. Kortin avaimeen liittyvä PIN kysytään &amp;lt;code&amp;gt;ssh-add&amp;lt;/code&amp;gt;-komennon yhteydessä ja se jää ssh-agent prosessin muistiin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Käyttö&#039;&#039;&#039;:&lt;br /&gt;
* Aseta kortti lukijaan ja lisää plugin:&lt;br /&gt;
  &amp;lt;code&amp;gt;$ ssh-add -s /usr/lib/opensc-pkcs11.so&amp;lt;/code&amp;gt;&lt;br /&gt;
* Avainparin julkisen avaimen saa tulostettua ssh-add -L -komennolla:&lt;br /&gt;
 $ ssh-add -L&lt;br /&gt;
 ssh-rsa AAAAB3NzaC...VAkWbd0lYyWrg78Q== /usr/lib64/opensc-pkcs11.so&lt;br /&gt;
* Jos tätä varmennetta ei ole aiemmin käytetty ssh:n kanssa, lisää ylläoleva tekstirimpsu (koko rivi sellaisenaan) &amp;lt;code&amp;gt;~/.ssh/authorized_keys&amp;lt;/code&amp;gt; tiedostoon palvelimella.&lt;br /&gt;
* Nyt ssh-ohjelmat toimivat normaalisti kortin varmenteilla.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vianmääritys&#039;&#039;&#039;:&lt;br /&gt;
* Varmista, että ssh-agent on käynnistynyt sisäänkirjautumisesi yhteydessä (prosessilistauksessa näkyy &#039;&#039;ssh-agent&#039;&#039;). Käynnistäminen riippuu Linux-jakelustasi, yleensä se on automaattinen eikä mitään tarvitse tehdä. Jos sitä ei siitä huolimatta ole käynnissä, se on voinut kräshätä.&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
===== PuTTY =====&lt;br /&gt;
&lt;br /&gt;
PuTTY ei oletuksena tue älykortilla olevan yksityisen avaimen noutoa. Jotta Windows käyttöjärjestelmällä voi kirjautua linuxiin henkilökortilla, täytyy käyttää PuTTY SC-ohjelmaa [http://www.joebar.ch/puttysc/]. &lt;br /&gt;
Ohjelman asetuksissa valitaan Connection -&amp;gt; SSH -&amp;gt; Pkcs11 välilehdeltä PKCS#11 kirjastoksi mpollux-ohjelman mukana tuleva cryptoki.dll tiedosto, joka on oletuksena polussa C:\Program Files (x86)\Fujitsu\mPollux DigiSign Client\cryptoki.dll. Token Label kohtaan valitaan &amp;quot;Henkilökortti&amp;quot; ja &amp;quot;Certificate Label&amp;quot; kohdasta valitaan joko henkilökohtainen salausvarmenne tai allekirjoitusvarmenne sen mukaan kumpi on asennettu palvelimelle.&lt;br /&gt;
&lt;br /&gt;
===== FileZilla =====&lt;br /&gt;
&lt;br /&gt;
FileZilla ei tue PKSC11 todentamista, mutta se tukee yksityisen avaimen hakemista PageAnt-ohjelman kautta. PageAnt-ohjelmasta täytyy asentaa modifioitu [http://www.joebar.ch/puttysc/ PageAntSC]-versio joka osaa hakea kortinlukulaitteesta salausavaimen.&lt;br /&gt;
&lt;br /&gt;
Käynnistä PageAntSC ohjelma ennen FileZillalla yhdistämistä, varmista että tehtäväpalkissa näkyy ohjelman kuvake (tietokone jolla on hattu), ja kuvakkeesta aukeavassa ohjelmassa on listattu henkilökorttivarmenne.&lt;br /&gt;
Yhdistä nyt FileZillalla linuxiin jättäen salasana-kenttä tyhjäksi, tällöin PageAntSC-ohjelma kysyy PIN-koodia ja FileZilla kirjautuu Linuxiin henkilökortin varmenteella.&lt;br /&gt;
&lt;br /&gt;
=== Lähiverkon pääsynvalvonta - 802.1x ===&lt;br /&gt;
&lt;br /&gt;
Asetukset määritellään &#039;&#039;wpa_supplicant&#039;&#039; asetustiedostoihin, joka toisissa jakeluissa sijaita esimerkiksi &amp;lt;code&amp;gt;/etc/wpa_supplicant/wpa_supplicant.conf&amp;lt;/code&amp;gt; tiedostossa.&lt;br /&gt;
  &lt;br /&gt;
  pkcs11_module_path=/usr/lib/pkcs11/opensc-pkcs11.so&lt;br /&gt;
  &lt;br /&gt;
  # Example of EAP-TLS with smartcard (openssl engine)&lt;br /&gt;
  network={&lt;br /&gt;
    ssid=&amp;quot;example.com&amp;quot;&lt;br /&gt;
    key_mgmt=WPA-EAP&lt;br /&gt;
    eap=TLS&lt;br /&gt;
   	proto=RSN&lt;br /&gt;
  	 pairwise=CCMP TKIP&lt;br /&gt;
   	group=CCMP TKIP&lt;br /&gt;
  	 identity=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
  	 ca_cert=&amp;quot;/etc/pki/tls/certs/vrkrootca.pem&amp;quot;&lt;br /&gt;
  	 client_cert=&amp;quot;/etc/pki/tls/certs/user.pem&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  	 engine=1&lt;br /&gt;
  &lt;br /&gt;
  	 # use the opensc engine&lt;br /&gt;
  	 #engine_id=&amp;quot;opensc&amp;quot;&lt;br /&gt;
  	 #key_id=&amp;quot;45&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  	 # use the pkcs11 engine&lt;br /&gt;
    engine_id=&amp;quot;pkcs11&amp;quot;&lt;br /&gt;
    key_id=&amp;quot;id_45&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
    # Optional PIN configuration; this can be left out and PIN will be&lt;br /&gt;
    # asked through the control interface&lt;br /&gt;
    # pin=&amp;quot;1234&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Asetusohje on peräisin [http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf esimerkistä].&lt;br /&gt;
&lt;br /&gt;
=== Gnupg ohjelmistot ===&lt;br /&gt;
&lt;br /&gt;
Gnupg:n eri komponenttien asetuksia muutetaan käyttäjän kotihakemiston &amp;lt;code&amp;gt;.gnupg/&amp;lt;/code&amp;gt; hakemistossa. Henkilökorttituen lisääminen edellyttää &#039;&#039;&#039;scdaemon&#039;&#039;&#039;-palvelun korvaamista &#039;&#039;&#039;gpg-agent.conf&#039;&#039;&#039; tiedostossa:&lt;br /&gt;
&lt;br /&gt;
  scdaemon-program /usr/bin/gnupg-pkcs11-scd&lt;br /&gt;
  pinentry-program /usr/bin/pinentry-qt&lt;br /&gt;
&lt;br /&gt;
ja kyseisten palveluiden uudelleenkäynnistämistä. Jos korttituki toimii, komento:&lt;br /&gt;
&lt;br /&gt;
 $ gpg2 -K&lt;br /&gt;
&lt;br /&gt;
listaa varmenteet jossa on mukana älykortin varmenne. Jos ei, asetukset kaipaavat lisää säätämistä joita on ohjeistettu omalla [[gnupg-pkcs11-scd]] sivulla.&lt;br /&gt;
&lt;br /&gt;
=== Kleopatra ===&lt;br /&gt;
&lt;br /&gt;
Kleopatra osaa muuttaa tarvitsemiaan Gnupg:n asetuksia tiedostoista: &#039;&#039;&#039;options&#039;&#039;&#039;, &#039;&#039;&#039;gpg-agent.conf&#039;&#039;&#039;, &#039;&#039;&#039;gpgsm.conf&#039;&#039;&#039; ja &#039;&#039;&#039;scdaemon.conf&#039;&#039;&#039;. Viimeeksi mainitulla ei ole merkitystä jos käytetään korvaavaa palvelua ja sen asetustiedostoa &#039;&#039;&#039;gnupg-pkcs11-scd.conf&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Jakelukohtaisia ohjeita ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; &lt;br /&gt;
|+ominaisuusvertailu&lt;br /&gt;
|-&lt;br /&gt;
! ominaisuus / jakelu&lt;br /&gt;
| Arch Linux&lt;br /&gt;
! Fedora&lt;br /&gt;
! Gentoo&lt;br /&gt;
! OpenSuse&lt;br /&gt;
! RHEL&lt;br /&gt;
! Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
| Kyseinen jakeluversio || || 14 || || || 5 ||&lt;br /&gt;
|-&lt;br /&gt;
| Oletusrajapinta || pcsc || pcsc || pcsc ||  || pcsc ||&lt;br /&gt;
|-&lt;br /&gt;
| OpenSC versio || 0.16.0-5 || 0.11 || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| Korttituki asentuu oletuksena || kyllä || kyllä || ei  || || kyllä ||&lt;br /&gt;
|-&lt;br /&gt;
| Korttituki käynnistyy oletuksena || ei || kyllä || ei || || kyllä ||&lt;br /&gt;
|-&lt;br /&gt;
| Firefox näkee pluginin automaattisesti || ei || ei || ei ||  || ei ||&lt;br /&gt;
|- &lt;br /&gt;
| ssh-agent käynnistyy oletuksena || ei || kyllä || ei || ei || kyllä ||&lt;br /&gt;
|-&lt;br /&gt;
| PAM tukee älykorttia || ei || kyllä || kyllä || || kyllä ||&lt;br /&gt;
|-&lt;br /&gt;
| PAM työkalu tukee älykorttia || ei || vähän ||  || || vähän ||&lt;br /&gt;
|-&lt;br /&gt;
| Löytyykö CA-avaimet jakelusta || ei || ei || ei || || ei ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Vertailussa tulisi käyttää viimeisintä vakaata jakeluversiota. Jos näin ei ole, taulukkoa tulee päivittää.&lt;br /&gt;
&lt;br /&gt;
=== Arch Linux ===&lt;br /&gt;
&lt;br /&gt;
* Asenna paketit &#039;&#039;&#039;ccid&#039;&#039;&#039;, &#039;&#039;&#039;pcsclite&#039;&#039;&#039;, &#039;&#039;&#039;opensc&#039;&#039;&#039;&lt;br /&gt;
* Muuta palvelu pcscd automaattisesti käynnistyväksi:&lt;br /&gt;
 sudo systemctl enable pcsc&lt;br /&gt;
* Käynnistä palvelu pcscd:&lt;br /&gt;
 systemctl start pcscd&lt;br /&gt;
* onepin-opensc-pkcs11.so -plugin sijaitsee hakemistossa &amp;lt;code&amp;gt;/usr/lib&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CentOS ===&lt;br /&gt;
&lt;br /&gt;
Fedoran ohjeet pitäisi käydä sellaisenaan.&lt;br /&gt;
&lt;br /&gt;
=== Fedora ===&lt;br /&gt;
&lt;br /&gt;
* Lukijat: Omnikey-1021,-3021,-4321 toimii, Omnikey-4040 ei taida enää viimeisimmissä jakeluissa.&lt;br /&gt;
* Vaaditut paketit: &#039;&#039;&#039;opensc&#039;&#039;&#039;, &#039;&#039;&#039;pcsc-lite&#039;&#039;&#039; (tai &#039;&#039;&#039;openct&#039;&#039;&#039;).&lt;br /&gt;
* Initscriptit: openct ja pcscd oletuksena päällä asennuksen jälkeen.&lt;br /&gt;
* Sovelluspaketit: &#039;&#039;&#039;firefox&#039;&#039;&#039;, &#039;&#039;&#039;thunderbird&#039;&#039;&#039;, &#039;&#039;&#039;openssh-clients&#039;&#039;&#039;, &#039;&#039;&#039;qdigidoc&#039;&#039;&#039;, &#039;&#039;&#039;mozilla-esteid&#039;&#039;&#039; (digiallekirjoitus), &#039;&#039;&#039;kdepim&#039;&#039;&#039; (kleopatra), &#039;&#039;&#039;pam_pkcs11&#039;&#039;&#039;.&lt;br /&gt;
* CA-avaimien paketti: &#039;&#039;&#039;ca-certificates&#039;&#039;&#039;&lt;br /&gt;
* Pakettienhallintatyökalu: [[Yum]] ja [[PackageKit]]&lt;br /&gt;
* ssh-agent käynnistyy automaattisesti jos on asennettu.&lt;br /&gt;
* onepin-opensc-pkcs11.so plugin sijaitsee arkkitehtuurin mukaisessa hakemistossa joko: &amp;lt;code&amp;gt;/usr/lib/onepin-opensc-pkcs11.so&amp;lt;/code&amp;gt; tai &amp;lt;code&amp;gt;/usr/lib64/onepin-opensc-pkcs11.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
* ssh-agent: KDE-ympäristöllä pitää poistaa kommenteista agentin käynnistyskomennot tiedostossa /etc/kde/startup/agent-startup.sh&lt;br /&gt;
&lt;br /&gt;
=== OpenSuse ===&lt;br /&gt;
&lt;br /&gt;
* Pakettienhallintatyökalu: [[Zypper]] ja [[PackageKit]]&lt;br /&gt;
&lt;br /&gt;
=== RHEL (Red Hat Enterprise Linux) ===&lt;br /&gt;
&lt;br /&gt;
Käynnistä Subscription Manager, mene System-valikkoon ja valitse Repositories. Merkitse {rhel-7-server-optional-rpms | rhel-7-desktop-optional-rpms | rhel-7-workstation-optional-rpms} pakettivaranto käyttöön.&lt;br /&gt;
&lt;br /&gt;
Nyt voit jatkaa Fedoran ohjeilla.&lt;br /&gt;
&lt;br /&gt;
===Ubuntu===&lt;br /&gt;
&lt;br /&gt;
* Asenna paketit &amp;lt;tt&amp;gt;opensc&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;mozilla-opensc&amp;lt;/tt&amp;gt; ja &amp;lt;tt&amp;gt;pcscd&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Pakettienhallintatyökalu: [[Apt]], [[PackageKit]]&lt;br /&gt;
&lt;br /&gt;
== Katso myös ==&lt;br /&gt;
&lt;br /&gt;
* [[Mobiilivarmenne]]&lt;br /&gt;
* [[Apache_httpd]]&lt;br /&gt;
* [[Firefox]]&lt;br /&gt;
* [[Gnupg]] - GNU Privacy Guard&lt;br /&gt;
* [[gnupg-pkcs11-scd]] - pkcs11 plugin Gnupg ohjelmistoon.&lt;br /&gt;
* [[Openoffice]] - OpenOffice.org toimisto-ohjelmisto&lt;br /&gt;
* [[qDigiDoc]]&lt;br /&gt;
* [[PAM]] - Pluggable Authentication Modules&lt;br /&gt;
* [[SSH]] - Secure SHell&lt;br /&gt;
* [[Thunderbird]]&lt;br /&gt;
* [[VPN]] - Virtual Private Network&lt;br /&gt;
* [[Wpa_supplicant]]&lt;br /&gt;
&lt;br /&gt;
== Aiheesta muualla ==&lt;br /&gt;
&lt;br /&gt;
* [http://fineid.fi/ http://fineid.fi] - Suomalaisen henkilökortin kotisivu.&lt;br /&gt;
* [http://www.vaestorekisterikeskus.fi/ http://www.vaestorekisterikeskus.fi/] - Väestörekisterikeskus&lt;br /&gt;
* [http://fi.wikipedia.org/wiki/HST http://fi.wikipedia.org/wiki/HST] - Henkilökortti Wikipediassa.&lt;br /&gt;
* [http://fi.wikipedia.org/wiki/PKI http://fi.wikipedia.org/wiki/PKI] - Julkisen avaimen infrastruktuuri Wikipediassa.&lt;br /&gt;
* [https://github.com/OpenSC/OpenSC/wiki/ opensc-wiki ] - OpenSC korttityökalujen kotisivu.&lt;br /&gt;
* [https://github.com/OpenSC/OpenSC/wiki/Finnish-FINEID OpenSC-wiki - FinnishEid] - OpenSC projektin FINEID sivu.&lt;br /&gt;
* [http://www.cryptsoft.com/pkcs11doc/v230/ http://www.cryptsoft.com/pkcs11doc/v230/] -  pkcs#11 standardi.&lt;br /&gt;
* [http://www.openxades.org/files/DigiDoc%20format%201.3.doc openxades.org - digidoc-1.3] - DigiDoc määritys.&lt;br /&gt;
* [http://code.google.com/p/esteid/ http://code.google.com/p/esteid/]- Viron henkilökortin ohjelmistokehitys.&lt;br /&gt;
* [http://id.ee/ http://id.ee/] - Viron henkilökortin ohjesivusto (est, eng, rus).&lt;br /&gt;
* [https://bugs.kde.org/show_bug.cgi?id=116201 kde.org - bug 116201] - Keskustelua KDE:n pkcs#11 tuesta.&lt;br /&gt;
* [https://www.bugzilla.mozilla.org/show_bug.cgi?id=511652 mozilla.org - Add a GUI option to toggle the &amp;quot;Friendly certs&amp;quot; option of NSS]&lt;br /&gt;
* [irc://irc.freenode.net/opensc irc://irc.freenode.net/opensc] - OpenSC IRC kanava.&lt;br /&gt;
* [irc://irc.freenode.net/fineid irc://irc.freenode.net/fineid] - #fineid IRC kanava.&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Laitteisto]]&lt;br /&gt;
[[Luokka:Ohjeet]]&lt;br /&gt;
[[Luokka:Tietoturva]]&lt;br /&gt;
[[Luokka:Suomi]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Systemd-boot&amp;diff=47477</id>
		<title>Systemd-boot</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Systemd-boot&amp;diff=47477"/>
		<updated>2017-01-23T09:47:39Z</updated>

		<summary type="html">&lt;p&gt;Jem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Systemd-boot&#039;&#039;&#039; on [[käynnistysvalitsin]], eli ohjelma joka tarjoaa valikon&lt;br /&gt;
josta käyttäjä voi valita käynnistettävän käyttöjärjestelmän.&lt;br /&gt;
Systemd-boot toimii vain [[EFI|UEFI -laiteohjelmistolla]]&lt;br /&gt;
varustetuissa koneissa.&lt;br /&gt;
&lt;br /&gt;
Systemd-boot:n käyttö Linuxin kanssa edellyttää, että Linux-ydin on&lt;br /&gt;
konfiguroitu sisältämään EFI Boot Stub -käynnistyslataimen, jonka&lt;br /&gt;
avulla ydin pystyy, yhdessä UEFI-laiteohjelmiston kanssa, lataamaan ja&lt;br /&gt;
käynnistämään itsensä.&lt;br /&gt;
&lt;br /&gt;
Systemd-boot tarjoaa yksinkertaisen valikon, josta käyttäjä voi valita&lt;br /&gt;
käynnistettävän käyttöjärjestelmän. Valikon pystyy myös piilottamaan&lt;br /&gt;
asettamalla konfiguraatiotietoston timeout-parametrin arvoksi 0. Tässä&lt;br /&gt;
tapauksessa oletuskäyttöjärjestelmä käynnistetään automaattisesti,&lt;br /&gt;
mutta käynnistyksen voi keskeyttää painamalla näppäimistön&lt;br /&gt;
välilyöntinäppäintä.&lt;br /&gt;
&lt;br /&gt;
==Asennus==&lt;br /&gt;
&lt;br /&gt;
Tavallisimmissa Linux-jakeluissa käyttäjän ei tarvitse huolehtia&lt;br /&gt;
käynnistysvalitsimen tai käynnistyslataimen asennuksesta tai&lt;br /&gt;
konfiguroinnista, sillä jakelun tekijä huolehtii tästä. Sen sijaan&lt;br /&gt;
enemmän tee-se-itse -filosofiaa noudattavissa jakeluissa, kuten Arch&lt;br /&gt;
Linux tai Gentoo Linux, käyttäjän pitää itse asentaa&lt;br /&gt;
käynnistysvalitsin ja/tai käynnistyslataaja.&lt;br /&gt;
&lt;br /&gt;
Systemd-boot on osa systemd-järjestelmää, joten se on tyypillisesti mukana&lt;br /&gt;
jakelun systemd-asennuspaketissa. Systemd-boot konfiguroidaan&lt;br /&gt;
kätevimmin bootctl-ohjelman avulla, joka myös kuuluu&lt;br /&gt;
systemd-pakettiin.&lt;br /&gt;
&lt;br /&gt;
Bootctl-ohjelma asentaa systemd-boot:n ESP:lle, lisää ohjelman EFI:n&lt;br /&gt;
käynnistysmuuttujiin sekä valitsee systemd-boot:n&lt;br /&gt;
oletuskäynnistysohjelmaksi. Lisäksi bootctl pystyy havaitsemaan&lt;br /&gt;
olemassa olevan Windows-asennuksen ja lisää sen systemd-boot:n&lt;br /&gt;
käynnistysvalikkoon.&lt;br /&gt;
&lt;br /&gt;
==Konfigurointi==&lt;br /&gt;
&lt;br /&gt;
Systemd-boot konfiguroidaan muokkaamalla ESP-osiolla (EFI System&lt;br /&gt;
Partition) olevia tekstitiedostoja. Tiedostoja on vain kahdenlaisia:&lt;br /&gt;
loader.conf sekä käyttöjärjestelmäkohtaiset *.conf-tiedostot.&lt;br /&gt;
loader.conf sisältää yleiset parametrit, joita on vain kolme:&lt;br /&gt;
&lt;br /&gt;
* default - oletusvalinta&lt;br /&gt;
* timeout - kuinka monta sekuntia valikko näytetään&lt;br /&gt;
* editor - onko ytimen komentorivin muokkain sallittu vai ei (arvot 1 ja 0)&lt;br /&gt;
&lt;br /&gt;
Esimerkki esp/loader/loader.conf -tiedostosta:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default  arch&lt;br /&gt;
timeout  4&lt;br /&gt;
editor	 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jokaista käynnistettävää käyttöjärjestelmää varten on&lt;br /&gt;
esp/loader/entries-hakemistossa oma .conf-tiedosto, joka sisältää&lt;br /&gt;
käyttöjärjestelmäkohtaisia parametreja. Käytössä on seitsemän eri&lt;br /&gt;
parametria, joista osa on valinnaisia:&lt;br /&gt;
&lt;br /&gt;
* title - käynnistysvalinnan nimi&lt;br /&gt;
* version - ytimen versio; näytetään vain jos on useampia samannimisiä valintoja&lt;br /&gt;
* machine-id - koneen yksilöivä id /etc/machine-id -tiedostosta&lt;br /&gt;
* efi tai linux - käynnistettävä EFI-ohjelma (esim. Linux-ydin tai Windowsin käynnistyslataaja)&lt;br /&gt;
* options - komentoriviparametreja käynnistettävälle EFI-ohjelmalle&lt;br /&gt;
* initrd - tiedostopolku initramfs-tiedostoon&lt;br /&gt;
&lt;br /&gt;
Esimerkkitiedosto esp/loader/entries/arch.conf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title	  Arch Linux&lt;br /&gt;
linux	  /vmlinuz-linux&lt;br /&gt;
initrd	  /initramfs-linux.img&lt;br /&gt;
options	  root=PARTUUID=7619c378-374c-5f83-9123-544696493b2f rw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Aiheesta muualla==&lt;br /&gt;
&lt;br /&gt;
*[https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/ systemd-boot:n virallinen kotisivu]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Käynnistyslataimet]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Keskustelu:K%C3%A4ynnistysvalitsin&amp;diff=47475</id>
		<title>Keskustelu:Käynnistysvalitsin</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Keskustelu:K%C3%A4ynnistysvalitsin&amp;diff=47475"/>
		<updated>2017-01-22T16:36:18Z</updated>

		<summary type="html">&lt;p&gt;Jem: Ak: Uusi sivu: Käynnistysvalitsin (eng. boot manager) ja käynnistyslatain (eng. boot loader) ovat siis eri asioita, vaikka molempien toiminnallisuus usein (mutta ei aina) onkin yhdistetty samaa...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Käynnistysvalitsin (eng. boot manager) ja käynnistyslatain (eng. boot loader) ovat siis eri asioita,&lt;br /&gt;
vaikka molempien toiminnallisuus usein (mutta ei aina) onkin yhdistetty samaan ohjelmaan, esimerkiksi&lt;br /&gt;
GRUB 2:een.&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=K%C3%A4ynnistysvalitsin&amp;diff=47474</id>
		<title>Käynnistysvalitsin</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=K%C3%A4ynnistysvalitsin&amp;diff=47474"/>
		<updated>2017-01-22T16:21:40Z</updated>

		<summary type="html">&lt;p&gt;Jem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Käynnistysvalitsin&#039;&#039;&#039; (eng. &amp;quot;Boot Manager&amp;quot;) on ohjelma, joka suoritaan tietokoneen&lt;br /&gt;
käynnistyksen jälkeen, mutta ennen kuin käyttöjärjestelmä on&lt;br /&gt;
käynnistynyt. Käynnistysvalitsimen tehtävä on tarjota käyttäjälle&lt;br /&gt;
valikko, josta hän voi valita käynnistettävä käyttöjärjestelmä. Valinnan jälkeen&lt;br /&gt;
käynnistysvalitsin käynnistää valitun käyttöjärjestelmän käynnistyslataimen.&lt;br /&gt;
&lt;br /&gt;
Käynnistysvalitsin on usein integroitu käynnystyslataimeen; esimerkiksi [[GNU GRUB 2]] toimii sekä&lt;br /&gt;
käynnistysvalitsimena että käynnistyslataimena.&lt;br /&gt;
&lt;br /&gt;
Puhdasta käynnistysvalitsinta, siis ohjelmaa joka ei sisällä käynnistyslatainta, käytetään yleensä vain [[EFI|(U)EFI-laiteohjelmistolla]] varustetuissa koneissa. Käynnistysvalitsin käynnistää käyttäjän valitaan &lt;br /&gt;
liittyvän EFI-ohjelman, jonka tyypillisesti on valitun käyttöjärjestelmän käynnistyslatain. Linuxin tapauksessa&lt;br /&gt;
käynnistysvalitsimen käynnistämä ohjelma voi olla myös suoraan Linux-ydin, jos ydin on konfiguroitu&lt;br /&gt;
CONFIG_EFI_STUB-optiolla. Tässä tapauksessa ydin toimii itse omana käynnistyslataimenaan.&lt;br /&gt;
&lt;br /&gt;
==Esimerkkejä käynnistysvalitsimista==&lt;br /&gt;
&lt;br /&gt;
* [[systemd-boot]]&lt;br /&gt;
* [[rEFInd]]&lt;br /&gt;
* [[rEFIt]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Systemd-boot&amp;diff=47466</id>
		<title>Systemd-boot</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Systemd-boot&amp;diff=47466"/>
		<updated>2017-01-21T19:15:12Z</updated>

		<summary type="html">&lt;p&gt;Jem: Ak: Uusi sivu: Systemd-boot on käynnistysvalitsin, eli ohjelma joka tarjoaa valikon josta käyttäjä voi valita käynnistettävän käyttöjärjestelmän. Systemd-boot toimii vain EFI|UEF...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Systemd-boot on [[käynnistysvalitsin]], eli ohjelma joka tarjoaa valikon&lt;br /&gt;
josta käyttäjä voi valita käynnistettävän käyttöjärjestelmän.&lt;br /&gt;
Systemd-boot toimii vain [[EFI|UEFI -laiteohjelmistolla]]&lt;br /&gt;
varustetuissa koneissa.&lt;br /&gt;
&lt;br /&gt;
Systemd-boot:n käyttö Linuxin kanssa edellyttää, että Linux-ydin on&lt;br /&gt;
konfiguroitu sisältämään EFI Boot Stub -käynnistyslataimen, jonka&lt;br /&gt;
avulla ydin pystyy, yhdessä UEFI-laiteohjelmiston kanssa, lataamaan ja&lt;br /&gt;
käynnistämään itsensä.&lt;br /&gt;
&lt;br /&gt;
Systemd-boot tarjoaa yksinkertaisen valikon, josta käyttäjä voi valita&lt;br /&gt;
käynnistettävän käyttöjärjestelmän. Valikon pystyy myös piilottamaan&lt;br /&gt;
asettamalla konfiguraatiotietoston timeout-parametrin arvoksi 0. Tässä&lt;br /&gt;
tapauksessa oletuskäyttöjärjestelmä käynnistetään automaattisesti,&lt;br /&gt;
mutta käynnistyksen voi keskeyttää painamalla näppäimistön&lt;br /&gt;
välilyöntinäppäintä.&lt;br /&gt;
&lt;br /&gt;
==Asennus==&lt;br /&gt;
&lt;br /&gt;
Tavallisimmissa Linux-jakeluissa käyttäjän ei tarvitse huolehtia&lt;br /&gt;
käynnistysvalitsimen tai käynnistyslataimen asennuksesta tai&lt;br /&gt;
konfiguroinnista, sillä jakelun tekijä huolehtii tästä. Sen sijaan&lt;br /&gt;
enemmän tee-se-itse -filosofiaa noudattavissa jakeluissa, kuten Arch&lt;br /&gt;
Linux tai Gentoo Linux, käyttäjän pitää itse asentaa&lt;br /&gt;
käynnistysvalitsin ja/tai käynnistyslataaja.&lt;br /&gt;
&lt;br /&gt;
Systemd-boot on osa systemd-järjestelmää, joten se on tyypillisesti mukana&lt;br /&gt;
jakelun systemd-asennuspaketissa. Systemd-boot konfiguroidaan&lt;br /&gt;
kätevimmin bootctl-ohjelman avulla, joka myös kuuluu&lt;br /&gt;
systemd-pakettiin.&lt;br /&gt;
&lt;br /&gt;
Bootctl-ohjelma asentaa systemd-boot:n ESP:lle, lisää ohjelman EFI:n&lt;br /&gt;
käynnistysmuuttujiin sekä valitsee systemd-boot:n&lt;br /&gt;
oletuskäynnistysohjelmaksi. Lisäksi bootctl pystyy havaitsemaan&lt;br /&gt;
olemassa olevan Windows-asennuksen ja lisää sen systemd-boot:n&lt;br /&gt;
käynnistysvalikkoon.&lt;br /&gt;
&lt;br /&gt;
==Konfigurointi==&lt;br /&gt;
&lt;br /&gt;
Systemd-boot konfiguroidaan muokkaamalla ESP-osiolla (EFI System&lt;br /&gt;
Partition) olevia tekstitiedostoja. Tiedostoja on vain kahdenlaisia:&lt;br /&gt;
loader.conf sekä käyttöjärjestelmäkohtaiset *.conf-tiedostot.&lt;br /&gt;
loader.conf sisältää yleiset parametrit, joita on vain kolme:&lt;br /&gt;
&lt;br /&gt;
* default - oletusvalinta&lt;br /&gt;
* timeout - kuinka monta sekuntia valikko näytetään&lt;br /&gt;
* editor - onko ytimen komentorivin muokkain sallittu vai ei (arvot 1 ja 0)&lt;br /&gt;
&lt;br /&gt;
Esimerkki esp/loader/loader.conf -tiedostosta:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default  arch&lt;br /&gt;
timeout  4&lt;br /&gt;
editor	 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jokaista käynnistettävää käyttöjärjestelmää varten on&lt;br /&gt;
esp/loader/entries-hakemistossa oma .conf-tiedosto, joka sisältää&lt;br /&gt;
käyttöjärjestelmäkohtaisia parametreja. Käytössä on seitsemän eri&lt;br /&gt;
parametria, joista osa on valinnaisia:&lt;br /&gt;
&lt;br /&gt;
* title - käynnistysvalinnan nimi&lt;br /&gt;
* version - ytimen versio; näytetään vain jos on useampia samannimisiä valintoja&lt;br /&gt;
* machine-id - koneen yksilöivä id /etc/machine-id -tiedostosta&lt;br /&gt;
* efi tai linux - käynnistettävä EFI-ohjelma (esim. Linux-ydin tai Windowsin käynnistyslataaja)&lt;br /&gt;
* options - komentoriviparametreja käynnistettävälle EFI-ohjelmalle&lt;br /&gt;
* initrd - tiedostopolku initramfs-tiedostoon&lt;br /&gt;
&lt;br /&gt;
Esimerkkitiedosto esp/loader/entries/arch.conf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title	  Arch Linux&lt;br /&gt;
linux	  /vmlinuz-linux&lt;br /&gt;
initrd	  /initramfs-linux.img&lt;br /&gt;
options	  root=PARTUUID=7619c378-374c-5f83-9123-544696493b2f rw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=K%C3%A4ynnistysvalitsin&amp;diff=47465</id>
		<title>Käynnistysvalitsin</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=K%C3%A4ynnistysvalitsin&amp;diff=47465"/>
		<updated>2017-01-21T19:09:57Z</updated>

		<summary type="html">&lt;p&gt;Jem: Ak: Uusi sivu: Käynnistysvalitsin on ohjelma, joka suoritetaan tietokoneen käynnistyksen jälkeen, mutta ennen kuin käyttöjärjestelmä on käynnistynyt. Käynnistysvalitsimen tehtävä on ta...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Käynnistysvalitsin on ohjelma, joka suoritetaan tietokoneen&lt;br /&gt;
käynnistyksen jälkeen, mutta ennen kuin käyttöjärjestelmä on&lt;br /&gt;
käynnistynyt. Käynnistysvalitsimen tehtävä on tarjota käyttäjälle&lt;br /&gt;
mahdollisuus valita käynnistettävä käyttöjärjestelmä.&lt;br /&gt;
&lt;br /&gt;
Käynnistysvalitsin on yksinkertaisempi ohjelma kuin&lt;br /&gt;
[[käynnistyslataaja]]; käynnistysvalitsimen tehtävä on ainoastaan&lt;br /&gt;
tarjota käynnistysvalikko, kun taas käynnistyslataajan tehtäviin&lt;br /&gt;
kuuluu ladata käyttöjärjestelmä keskusmuistiin ja käynnistää se. Usein&lt;br /&gt;
käynnistyslataaja sisältää myös käynnistysvalitsimen; esimerkiksi&lt;br /&gt;
[[GNU GRUB 2]] toimii sekä käynnistysvalitsimena että&lt;br /&gt;
käynnistyslataajana.&lt;br /&gt;
&lt;br /&gt;
==Esimerkkejä käynnistysvalitsimista==&lt;br /&gt;
&lt;br /&gt;
* [[systemd-boot]]&lt;br /&gt;
* [[rEFInd]]&lt;br /&gt;
* [[rEFIt]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=EFI&amp;diff=47464</id>
		<title>EFI</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=EFI&amp;diff=47464"/>
		<updated>2017-01-21T19:08:34Z</updated>

		<summary type="html">&lt;p&gt;Jem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(Unified) Extensible Firmware Interface [[BIOS | BIOSin]] korvaajaksi tarkoitettu standardi koneen käynnistävälle [[laiteohjelmisto |laiteohjelmistolle]]. EFI eroaa BIOSista erityisesti siten, että se etsii käyttöjärjestelmän käynnistyslataajaa [[GPT]]-tauluun merkityltä [[FAT]]-osiolta levyn alussa olevan [[MBR]]-sektorin sijaan. Applen koneet tukevat myös [[HFS+]]-tiedostojärjestelmää. Windowsin (U)EFI-tuen myötä myös [[NTFS]]-osioita alkaa näkyä.&lt;br /&gt;
&lt;br /&gt;
(U)EFI:n ominaisuuksiin kuuluu, että se pystyy lukemaan FAT32-tiedostojärjestelmää, minkä ansiosta [[käynnistyslatain|käynnistyslataimen]] tekeminen helpottuu. UEFI-laiteohjelmiston sisältävä kone hyödyntää tätä lukemalla niin sanottua EFI-järjestelmäosiota (EFI System Partition, ESP). EFI määrittelee myös EFI-sovellukset, jotka ovat ohjelmia jotka sijaitsevat ESP:llä. Ohjelmat pystyvät hyödyntämään laiteohjelmiston tarjoamia palveluita, kuten laitteiston enumerointi, syötteen lukua sekä tekstin tai grafiikan näyttäminen. EFI-ohjelmia suoritetaan usein ketjussa siten, että esimerkiksi ensin käynnistetään [[käynnistysvalitsin]], joka käynnistää valitun käyttöjärjestelmän [[käynnistyslatain|käynnistyslataimen]], joka lopulta lataa ja käynnistää käyttöjärjestelmän. EFI-ohjelmille on tarjolla tallennustilaa haihtumattomasta muistista, EFI-muuttujien muodossa. Muuttujat määrittelevät mm. käynnistysohjelmat sekä missä järjestyksessä käynnistysohjelmia yritetään suorittaa.&lt;br /&gt;
&lt;br /&gt;
==Linux-tuki==&lt;br /&gt;
EFI on tuettu alun perin [[IA64]]-arkkitehtuurilla. 2010-luvulla myös [[x86]]- ja [[ARM]]-arkkitehtuuria käyttäviä (U)EFI-koneita on tullut markkinoille Windows-tuen myötä. Kaikki arkkitehtuurit tukevat [[GPT]]-osiointia, vaikka laiteohjelmisto ei tukisikaan.&lt;br /&gt;
&lt;br /&gt;
EFI:n hallintaan voidaan käyttää seuraavia ohjelmia.&lt;br /&gt;
*[[efibootmgr]], säätelee osioiden käynnistettävyyttä IA64-arkkitehtuurilla.&lt;br /&gt;
*[[elilo]], käynnistyslatain&lt;br /&gt;
*[[refit]], käynnistyslatain applen koneille, ei suoranaisesti tue linuxia mitenkään, mutta tarjoaa käyttöliittymän [[GRUB| GRUBin]] tai [[lilo| lilon]] lataaamiseen BIOS-emulaatiolla tai elilon käynnistämiseen.&lt;br /&gt;
*[[GNU GRUB 2]]:ssa on myös (U)EFI-tuki&lt;br /&gt;
&lt;br /&gt;
==Aiheesta muualla==&lt;br /&gt;
*Wikipedian artikkeli [[:wikipedia:fi:Extensible Firmware Interface|Extensible Firmware Interface]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Järjestelmä]]&lt;br /&gt;
[[Luokka:Käsitteet]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Osiointity%C3%B6kalut&amp;diff=47444</id>
		<title>Osiointityökalut</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Osiointity%C3%B6kalut&amp;diff=47444"/>
		<updated>2017-01-14T17:29:21Z</updated>

		<summary type="html">&lt;p&gt;Jem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tällä sivulla on esiteltynä yleisimpiä Linuxissa käytettyjä [[wikipedia:Disk_partitioning|osiointityökaluja]]. Monilla [[jakelu]]illa on lisäksi omissa asennus- ja asetusohjelmissaan erilaisia osioiden käsittelyyn tarkoitettuja ohjelmistoja.&lt;br /&gt;
&lt;br /&gt;
==[[Cfdisk]]==&lt;br /&gt;
Cfdisk on yksinkertainen [[ncurses|valikkopohjainen]] osiointityökalu tekstitilassa käytettäväksi. Cfdisk tukee osioiden luomista, poistamista sekä niiden koon maksimointia. Ohjelma on suomennettu.&lt;br /&gt;
&lt;br /&gt;
==[[Fdisk]]==&lt;br /&gt;
Fdisk on tekstipohjaisilla komennoilla toimiva osiointityökalu. Fdiskin avulla on mahdollista luoda ja poistaa osioita sekä asettaa niille erilaisia asetuslippuja. Koodipohja on sama kuin Cfdiskissä. Fdisk-ohjelma pystyy muokkaamaan sekä [[GUID Partition Table|GPT]]- että [[Master Boot Record|MBR]]-pohjaisia osiotauluja. Fdisk on suomennettu.&lt;br /&gt;
&lt;br /&gt;
==[[Gdisk]]==&lt;br /&gt;
Gdisk on erityisesti [[GUID Partition Table|GPT]]-osiotaulun muokkaukseen tarkoitettu osiointityökalu. Gdisk-ohjelmalla voi myös muuttaa MBR-osiotaulun vastaavaksi GPT-tauluksi. Gdisk:n käyttöliittymään on otettu mallia vanhemman fdisk-ohjelman käyttöliittymästä.&lt;br /&gt;
&lt;br /&gt;
==[[Cgdisk]]==&lt;br /&gt;
Cgdisk on [[ncurses|valikkopohjainen]] versio gdisk-ohjelmasta, joten se soveltuu erityisesti [[GUID Partition Table|GPT]]-osiotaulujen muokkaukseen. Cgdisk:n käyttöliittymään on otettu mallia vanhemman cfdisk-ohjelman käyttöliittymästä.&lt;br /&gt;
&lt;br /&gt;
==[[Sgdisk]]==&lt;br /&gt;
Sgdisk on komentorivipohjainen versio gdisk-ohjelmasta. Sgdisk-ohjelmalla ei ole interaktiivista käyttöliittymää; sen sijaan sen toimintaa ohjataan yksinomaan komentorivillä annettujen optioiden avulla. Tästä syystä sgdisk soveltuu erityisesti käytettäväksi skripteistä.&lt;br /&gt;
&lt;br /&gt;
==[[GParted]]==&lt;br /&gt;
GParted eli [[GNOME]] Partition Editor on [[GTK]]-pohjainen [[X Window System|graafinen]] osiointityökalu.&lt;br /&gt;
GPartedin perustoiminnallisuus perustuu Partediin, mutta se tukee myös suurta joukkoa valinnaisia ulkoisia apuohjelmia. Jos järjestelmään on vaikkapa asennettu [[ntfsprogs]]-paketti, voi GPartedilla esimerkiksi muuttaa [[NTFS]]-osioiden kokoa, mikä ei pelkältä Partedilta onnistu. Käyttöliittymältään GParted muistuttaa paljon Windows-maailman Partition Magicia, vaikka onkin ominaisuuksiltaaan tätä selvästi kehittyneempi. GPartedista on saatavilla myös [[Live-CD]]-versio.&lt;br /&gt;
&lt;br /&gt;
==[[Parted]]==&lt;br /&gt;
Parted on joko komentorivioptioilla tai interaktiivisesti käytettävä tekstipohjainen osiointityökalu. Parted tukee osioiden luomista, poistamista, siirtämistä, tarkistamista ja koon muuttamista sekä yleisimpien tiedostojärjestelmien luontia ja kopiointia. Tuki erilaisille osiotaulukko- ja asetustyypeille on laaja. Toisin kuin Fdiskissä ja Cfdiskissä, Partedissa muutokset toteutetaan välittömästi eikä vasta erillisellä varmistuksella ohjelman sulkemisen yhteydessä. Toisaalta Partedissa on myös erillinen pelastuskomento vahingossa poistetuille osioille.&lt;br /&gt;
&lt;br /&gt;
==QTParted==&lt;br /&gt;
QTParted on [[Qt]]-kirjastoa käyttäen laadittu Parted-pohjainen graafinen osiointityökalu. Käyttölittymä ja toiminnot ovat pitkälti samat kuin GPartedissa. QTPartedin kehitys on ollut keskeytyksissä vuodesta 2005 lähtien, vaikka pieniä merkkejä sen uudelleenaloittamisesta esiintyykin. Ohjelmassa esiintyy myös ajoittain pieniä toiminnallisuusongelmia, tietyt toiminnot saattavat olla ajoittain aiheettomasti pois saatavilta.&lt;br /&gt;
&lt;br /&gt;
==[[Sfdisk]]==&lt;br /&gt;
Sfdisk on komentorivioptioihin perustuva osiointityökalu. Se tukee osioiden luomista, tarkistusta ja poistamista. Sfdiskin sijaan varsinaiseen osiointiin kannattaa yleensä käyttää muita osiointityökaluja kuten [[parted]]ia tai [[fdisk]]iä, mutta asennusskripteissä, joissakin ongelmatilanteissa yms. sfdisk sopii osiointiinkin.&lt;br /&gt;
&lt;br /&gt;
==Katso myös==&lt;br /&gt;
*[[Miten osioisin kiintolevyn]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Osiot]]&lt;br /&gt;
[[Luokka:Ylläpitotyökalut]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=GUID_Partition_Table&amp;diff=47443</id>
		<title>GUID Partition Table</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=GUID_Partition_Table&amp;diff=47443"/>
		<updated>2017-01-14T15:28:09Z</updated>

		<summary type="html">&lt;p&gt;Jem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;GUID Partition Table&#039;&#039;&#039; (&#039;&#039;&#039;GPT&#039;&#039;&#039;) on [[MBR]]:n korvaava tai rinnakkainen osiotaulu. Erityisesti tämä kuuluu [[EFI]]-standardiin. GPT-osiointia suositellaan käytettävksi koneissa, joissa on käytössä EFI-[[Laiteohjelmisto|laiteohjelmisto]].&lt;br /&gt;
&lt;br /&gt;
GPT:n edut verrattuna vanhempaan MBR:ään:&lt;br /&gt;
* voidaan käyttää yli 2 teratavun levyillä&lt;br /&gt;
* tukee 128 osiota ilman jakoa ensiöosoihin (primary partition) ja loogisiin osioihin&lt;br /&gt;
* osioiden tyyppit ilmaistaan UUID-tunnisteilla, mikä pienentää päällekkäisten tyyppitunnusten riskiä&lt;br /&gt;
* osiotaulusta on varmuuskopio levyn lopussa, mikä lisää vikasietoisuutta&lt;br /&gt;
* GPT-osioon liitetään sitä luodessa yksikäsitteinen UUID, jota voi käyttää [[fstab]]-tiedostossa viitteenä osioon&lt;br /&gt;
* GPT-osion voi nimetä; nimi voi olla 36 Unicode-merkkiä pitkä&lt;br /&gt;
&lt;br /&gt;
==Linux-tuki==&lt;br /&gt;
[[Kernel |Linux-ydin]] tukee GPT-osiointia, mikäli sille on käännetty tuki. GPT:n luomiseen ja muokkaamiseen voit käyttää seuraavia työkaluja.&lt;br /&gt;
*[[gdisk]], erityisesti GPT-osoioiden muokkaamiseen tarkoitettu osiointityökalu&lt;br /&gt;
*[[cgdisk]], valikkopohjainen versio gdisk-ohjelmasta&lt;br /&gt;
*[[sgdisk]], komentorivioptioihin perustuva versio gdisk-ohjelmasta&lt;br /&gt;
*[[parted]], osiointityökalu.&lt;br /&gt;
*[[gptsync]], refitin mukana tuleva työkalu, jolla luodaan GPT-osioidulle levylle MBR-osiotaulu, jota applen koneiden [[BIOS]]-emulaatio tarvitsee mm. [[lilo| lilon]] tai [[GRUB| GRUBin]] käynnistämiseen.&lt;br /&gt;
&lt;br /&gt;
==Katso myös==&lt;br /&gt;
*[[Osiointityökalut]]&lt;br /&gt;
&lt;br /&gt;
==Aiheesta muualla==&lt;br /&gt;
*Wikipedian artikkeli [[:wikipedia:GUID Partition Table|GUID Partition Table]] (englanniksi)&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Käsitteet]]&lt;br /&gt;
[[Luokka:Osiot]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=K%C3%A4ytt%C3%A4j%C3%A4:Jem&amp;diff=47442</id>
		<title>Käyttäjä:Jem</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=K%C3%A4ytt%C3%A4j%C3%A4:Jem&amp;diff=47442"/>
		<updated>2017-01-12T17:36:20Z</updated>

		<summary type="html">&lt;p&gt;Jem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Johan Myréen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
jem &amp;amp;#64; iki.fi&lt;br /&gt;
&lt;br /&gt;
Olen käyttänyt Linuxia kernelin versiosta 0.11.&lt;br /&gt;
&lt;br /&gt;
[[Toiminnot:Muokkaukset/Jem|Muokkaukseni Linux.fi:ssä]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=K%C3%A4ynnistyslatain&amp;diff=47163</id>
		<title>Käynnistyslatain</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=K%C3%A4ynnistyslatain&amp;diff=47163"/>
		<updated>2016-10-09T10:37:46Z</updated>

		<summary type="html">&lt;p&gt;Jem: /* Normaaliin käyttöön */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Käynnistyslatain&#039;&#039;&#039; on ohjelma, joka aloittaa käyttöjärjestelmän latauksen tietokoneen käynnistyksen jälkeen. Tämän takia sitä sanotaan myös vyöryttäjäksi. &lt;br /&gt;
&lt;br /&gt;
== Normaaliin käyttöön ==&lt;br /&gt;
Yleisin x86- ja x86-64-tietokoneiden käynnistyslatain on [[GNU GRUB]], jota nykyään lähes kaikki jakelut käyttävät oletusarvoisesti. Ennen yleisin oli [[Lilo]].&lt;br /&gt;
&lt;br /&gt;
* [[GNU GRUB]] - &amp;quot;GRand Unified Bootloader&amp;quot;&lt;br /&gt;
* [[Lilo]] - &amp;quot;Linux Loader&amp;quot;&lt;br /&gt;
* [[Syslinux]] - kevyt, lähinnä levykekäyttöön suunniteltu käynnistyslatain.&lt;br /&gt;
* [http://www.sparc-boot.org Silo] - &amp;quot;Sparc Improved boot LOader&amp;quot;. Käynnistyslatain Sun Sparc- ja UltraSparc-järjestelmille.&lt;br /&gt;
* [http://www.pateam.org/parisc-linux-boot/PA-RISC-Linux-Boot-HOWTO/whatispalo.html Palo] - &amp;quot;PA-RISC Loader&amp;quot;  &lt;br /&gt;
* [[elilo]] - [[EFI]]-käynnistyslatain Intelin IA-64-arkkitehtuurille, yhteensopiva myös x86:n kanssa.&lt;br /&gt;
* [http://fabrice.bellard.free.fr/tcc/tccboot.html TCCBOOT] - TinyCC-kielellä toteutettu käynnistyslatain i386-järjestelmille. &lt;br /&gt;
* [http://xosl.sourceforge.net XOSL] - graafinen käynnistyslatain i386-järjestelmille, tukee useita käyttöjärjestelmiä.&lt;br /&gt;
* [http://emile.sourceforge.net EMILE] - &amp;quot;Early Macintosh Image LoadEr&amp;quot;. Käynnistyslatain m68k-pohjaisille Linux-järjestelmille, kuten MacII ja Quadra 610&lt;br /&gt;
* [https://www.kernel.org/doc/Documentation/efi-stub.txt EFIStub] - EFI Boot Stub. Linuxin ytimeen sisäänrakennettu [[EFI]]-käynnistyslatain. Mahdollistaa käynnistyksen suoraan ilman ulkoista käynnistyslatainta.&lt;br /&gt;
&lt;br /&gt;
== Sulautetut järjestelmät ==&lt;br /&gt;
* [http://u-boot.sourceforge.net U-Boot] - &amp;quot;Universal Boot loader&amp;quot;. [[PowerPC]]- tai ARM-pohjaisiin sulautettuihin järjestelmiin. &lt;br /&gt;
* [http://www.ridgerun.com/bsp/rrload.html rrload] - ARM-pohjaisiin sulautettuihin järjestelmiin.  &lt;br /&gt;
* [http://www.handhelds.org/feeds/bootldr/ CRL/OHH] - ARM-pohjaisiin sulautettuihin järjestelmiin, jotka käyttävät flash-muistia järjestelmälle.&lt;br /&gt;
* [http://www.carmel.com/pmon/index.html PMON] - sulautettuihin järjestelmiin, käytössä esimerkiksi Linksys WRT54G:ssä.&lt;br /&gt;
* [http://www.linuxdevices.com/articles/AT3462338419.html RedBoot] - [http://sources.redhat.com/ecos/ Red Hat eCos] -käynnistyslataimen pohjalta sulautettuihin käännetty versio. Käännettävissä useammille alustoille.&lt;br /&gt;
* [http://ppcboot.sourceforge.net PPCBOOT] - käynnistyslatain [[PowerPC]]-pohjaisille järjestelmille.&lt;br /&gt;
* [http://www.telos.de/linux/alios/default_e.htm Alios] - assemblerilla toteutettu käynnistyslatain, jolla voidaan tehdä laitteiston alustusta ROM- tai RAM-muistista. Tarkoituksena on poistaa BIOSin tarve sulautetuissa järjestelmissä.&lt;br /&gt;
* [http://te.to/~ts1/filo/ FILO] - i386-yhteensopiva käynnistyslatain. Lataa tarvittavat käynnistystiedostot paikalliselta levyltä ilman BIOS-kutsuja. Käytettäväksi LinuxBIOS:in kanssa.&lt;br /&gt;
&lt;br /&gt;
== Verkkokäynnistykseen ==&lt;br /&gt;
* [http://syslinux.zytor.com/pxe.php PXE Linux]&lt;br /&gt;
* [http://etherboot.sourceforge.net Etherboot] &lt;br /&gt;
* [[LTSP]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Järjestelmä]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=J%C3%A4rjestelm%C3%A4kutsu&amp;diff=35206</id>
		<title>Järjestelmäkutsu</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=J%C3%A4rjestelm%C3%A4kutsu&amp;diff=35206"/>
		<updated>2011-10-24T11:05:57Z</updated>

		<summary type="html">&lt;p&gt;Jem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Järjestelmäkutsut muodostavat rajapinnan prosessissa suoritettavan [[User Mode]]&lt;br /&gt;
-ohjelman ja ytimen välillä. Rajapinnan avulla ohjelma voi käyttää&lt;br /&gt;
ytimen tarjoamia palveluita, kuten esimerkiksi lukea tiedostosta tai&lt;br /&gt;
käynnistää uuden ohjelman.&lt;br /&gt;
&lt;br /&gt;
==Yleistä==&lt;br /&gt;
&lt;br /&gt;
Linuxissa on yli kolmesataa erilaista järjestelmäkutsua, toiset keskeisempiä,&lt;br /&gt;
toiset vähän harvemmin käytettyjä. On tärkeää huomata, että [[POSIX]]-standardi, jota&lt;br /&gt;
Linux noudattaa, ei erottele järjestelmäkutsuja tavallisista funktiokutsuista.&lt;br /&gt;
POSIX määrittelee vain [[API|rajapinnan]], ei sitä, mikä rajapinnan funktio on&lt;br /&gt;
tavallinen kirjastofunktio ja mikä oikeasti järjestelmäkutsu.&lt;br /&gt;
Järjestelmäkutsut ovat olemassa vain siksi, että ydin pystyisi takaamaan&lt;br /&gt;
lupaamansa säännöt, kuten muistialueiden ja tiedostojen suojaukset.&lt;br /&gt;
&lt;br /&gt;
Joskus onkin käynyt niin, että järjestelmäkutsu on &amp;quot;alennettu&amp;quot; kirjastofunktioksi.&lt;br /&gt;
Esimerkiksi &amp;lt;tt&amp;gt;fork&amp;lt;/tt&amp;gt;-funktio oli alunperin Linuxin järjestelmäkutsu, mutta se korvattiin&lt;br /&gt;
yleiskäyttöisemmällä &amp;lt;tt&amp;gt;clone&amp;lt;/tt&amp;gt;-kutsulla, ja &amp;lt;tt&amp;gt;fork&amp;lt;/tt&amp;gt;:sta tehtiin tavallinen funktio,&lt;br /&gt;
joka kutsuu &amp;lt;tt&amp;gt;clone&amp;lt;/tt&amp;gt;:a.&lt;br /&gt;
&lt;br /&gt;
==Esimerkkejä järjestelmäkutsuista==&lt;br /&gt;
&lt;br /&gt;
Seuraavassa luettelo muutamasta usein käytetyistä kutsuista.&lt;br /&gt;
&lt;br /&gt;
* tiedostojen käsittely: &amp;lt;tt&amp;gt;creat, open, read, write, lseek, close, chmod, link, unlink&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* prosessien käsittely: &amp;lt;tt&amp;gt;clone, exec, wait, execve, nice, exit&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* verkkorajapintaan liittyvät kutsut: &amp;lt;tt&amp;gt;socketcall&amp;lt;/tt&amp;gt; (sisältäen &amp;lt;tt&amp;gt;socket, connect, bind, listen, accept&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
* käyttäjien hallinta: &amp;lt;tt&amp;gt;getuid, setuid, chown, chgrp&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järjestelmäkutsut on dokumentoitu Linuxin manuaalin kappaleessa 2. Lisätietoja:&lt;br /&gt;
 man 2 intro&lt;br /&gt;
&lt;br /&gt;
==Järjestelmäkutsumekanismi==&lt;br /&gt;
&lt;br /&gt;
Sovellusohjelman ei voida sallia kutsua ytimen koodia ihan vapaasti,&lt;br /&gt;
vaan sen on tapahduttava määritellyn kutsurajapinnan kautta. Rajoittamalla&lt;br /&gt;
kutsut tapahtuviksi tiettyjen osoitteiden kautta varmistutaan&lt;br /&gt;
siitä, että ytimen koodia kutsutaan oikein. Järjestelmäkutsun käsittelijärutiinissa&lt;br /&gt;
tehdään tyypillisesti tarkistuksia, kuten syötettyjen&lt;br /&gt;
parametrien järkevyyden testausta. Useimmissa tapauksissa tarkistetaan myös&lt;br /&gt;
onko kutsujalla oikeus suorittaa kutsu; esimerkiksi onko käyttäjällä&lt;br /&gt;
oikeutta lukea tiedostoa tai tappaa prosessia.&lt;br /&gt;
&lt;br /&gt;
Järjestelmäkutsussa tapahtuu siirtymä suorittimen (CPU) tilassa User Modesta&lt;br /&gt;
[[Kernel Mode]] -tilaan. Miten tämä tapahtuu riippuu käytetyn suorittimen&lt;br /&gt;
arkkitehtuurista, mutta tyypillinen tapa on niin sanottu &amp;quot;ohjelmallinen&lt;br /&gt;
keskeytys&amp;quot; (software interrupt). Tämä mekanismi toimii siten, että suoritin&lt;br /&gt;
suorittaa &#039;int&#039;- tai &#039;trap&#039;-käskyn, jonka seurauksena suoritin vaihtaa&lt;br /&gt;
tilansa Supervisor Mode -tilaan ja jatkaa suoritusta määritellystä&lt;br /&gt;
keskeytyksen käsittelijärutiinista.&lt;br /&gt;
&lt;br /&gt;
Intel x86-perheen suorittimilla Linuxissa on järjestelmäkutsut perinteisesti toteutettu&lt;br /&gt;
&amp;lt;tt&amp;gt;int $0x80&amp;lt;/tt&amp;gt; -käskyllä. Järjestelmäkutsun&lt;br /&gt;
numero välitetään &amp;lt;tt&amp;gt;eax&amp;lt;/tt&amp;gt;-rekisterissä, muut parametrit rekistereissä&lt;br /&gt;
&amp;lt;tt&amp;gt;ebx&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;ecx&amp;lt;/tt&amp;gt;, jne., riippuen kutsun parametrien lukumäärästä.&lt;br /&gt;
&lt;br /&gt;
Sovellusohjelmat eivät kutsu järjestelmäkutsuja suoraan, vaan&lt;br /&gt;
samannimisia funktioita standardikirjasto [[Libc]]:ssä, jotka muodostavat&lt;br /&gt;
ohuen &amp;quot;kuoren&amp;quot; järjestelmäkutsun ympärille. Nämä funktiot&lt;br /&gt;
suorittavat sitten kukin vastaavan&lt;br /&gt;
järjestelmäkutsun. Syynä tähän järjestelyyn on se, että&lt;br /&gt;
järjestelmäkutsuilla on oma kutsutapansa; parametrit siirretään&lt;br /&gt;
rekistereissä ja itse kutsua ei suoriteta &amp;lt;tt&amp;gt;call&amp;lt;/tt&amp;gt;-käskyllä, vaan&lt;br /&gt;
muulla mekanismlla, esim. yllä mainitulla &amp;lt;tt&amp;gt;int $0x80&amp;lt;/tt&amp;gt; -käskyllä.&lt;br /&gt;
&lt;br /&gt;
Tällä tavalla saadaan eristettyä varsinaisen järjestelmäkutsun monimutkaisuus&lt;br /&gt;
Libc-kirjaston hoidettavaksi Sovellusohjelmat voivat kutsua Libc:n vastaavaa&lt;br /&gt;
funktiota normaalilla korkean tason kielen ([[C]]) kutsulla, assembly-koodin sijasta.&lt;br /&gt;
Lisäksi ytimen kutsutapa on riippumaton kääntäjän käyttämästä C-kielen kutsutavasta.&lt;br /&gt;
Sovellusohjelmissa voidaan jopa vaihtaa kutsutapaa (esimerkiksi käyttämään parametrinvälitystä&lt;br /&gt;
rekistereissä pinon sijasta) muuttamatta ytimen järjestelmäkutsurajapintaa.&lt;br /&gt;
(Tämä tosin vaatii sekä sovellusten että kirjastojen, mukaan lukien libc, uudelleen&lt;br /&gt;
kääntämistä uudella kääntäjällä tai kääntäjän optioita muuttaen.)&lt;br /&gt;
&lt;br /&gt;
Suorittimen rekistereitä käytetään parametrien välittämiseen siksi,&lt;br /&gt;
että suorittimen tilan vaihtuessa User Mode:sta Supervisor Mode -tilaan,&lt;br /&gt;
vaihtuu myös käytettävä pino.&lt;br /&gt;
&lt;br /&gt;
==Sysenter ja Sysreturn==&lt;br /&gt;
&lt;br /&gt;
Intelin x86-suorittimissa on Pentium II:sta alkaen ollut vaihtoehtoinen&lt;br /&gt;
käsky, jolla siirtymän User Modesta Kernel Mode -tilaan voi toteuttaa: &amp;lt;tt&amp;gt;sysenter&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Tämä käsky keksittiin tuomaan ratkaisu int-käskyyn liittyvään ongelmaan.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;int $0x80&amp;lt;/tt&amp;gt; -mekanismi on hidas, eli suoritus vaatii monta&lt;br /&gt;
kellojaksoa, ja se on muuttunut nykyaikaisissa suorittimissa&lt;br /&gt;
suhteellisesti mitattuna yhä hitaammaksi. Uusi &amp;lt;tt&amp;gt;sysenter&amp;lt;/tt&amp;gt;-käsky on&lt;br /&gt;
nopea, mutta vanhemmat suorittimet eivät tue sitä, jolloin on&lt;br /&gt;
käytettävä perinteistä &amp;lt;tt&amp;gt;int $0x80&amp;lt;/tt&amp;gt;-käskyä. (&amp;lt;tt&amp;gt;sysenter&amp;lt;/tt&amp;gt;-käskyn kanssa&lt;br /&gt;
samanaikaisesti esitellyllä &amp;lt;tt&amp;gt;sysreturn&amp;lt;/tt&amp;gt;-käskyllä palataan järjestelmäkutsusta.)&lt;br /&gt;
&lt;br /&gt;
Tavoitteena on toisaalta&lt;br /&gt;
pitää Libc riippumattomana suorittimen versiosta ja myös puhtaana&lt;br /&gt;
koodista, joka ajon aikana tutkii mitä käskyjä suoritin tukee ja&lt;br /&gt;
mitä se ei tue.&lt;br /&gt;
&lt;br /&gt;
Ratkaisuna tähän ongelmaan &#039;&#039;ydin&#039;&#039; tarjoaa koodin, jolla&lt;br /&gt;
järjestelmäkutsu suoritetaan suoritinkohtaisesti optimaalisella&lt;br /&gt;
tavalla: joko &amp;lt;tt&amp;gt;sysenter&amp;lt;/tt&amp;gt;-käskyä käyttäen, &amp;lt;tt&amp;gt;int $0x80&amp;lt;/tt&amp;gt;-käskyllä,&lt;br /&gt;
tai tulevaisuudessa mahdollisesti jollain muulla mekanismilla. Tämä&lt;br /&gt;
koodi sijaitsee prosessin osoiteavaruudessa pienellä, ennalta&lt;br /&gt;
määritetyllä muistialueella. Libc suorittaa järjestelmäkutsun&lt;br /&gt;
kutsumalla funktiota tällä alueella, ja funktio tekee&lt;br /&gt;
varsinaisen järjestelmäkutsun. Libc joutuu toki edelleen tutkimaan,&lt;br /&gt;
onko tämä muistialue olemassa jotta kirjasto toimisi myös ytimellä,&lt;br /&gt;
joka ei tue tätä uutta mekanismia.&lt;br /&gt;
&lt;br /&gt;
==User Mode -järjestelmäkutsut==&lt;br /&gt;
&lt;br /&gt;
Nopeammallakin &amp;lt;tt&amp;gt;sysenter&amp;lt;/tt&amp;gt;-käskyllä suoritettuna järjestelmäkutsu on suhteellisen&lt;br /&gt;
paljon aikaa vievä operaatio. Kaikkia kutsuja varten ei kuitenkaan tarvitse tehdä siirtymää&lt;br /&gt;
Kernel Mode -tilaan. Esimerkiksi &amp;lt;tt&amp;gt;gettimeofday&amp;lt;/tt&amp;gt;-kutsu, joka palauttaa ytimen käsityksen&lt;br /&gt;
kellonajasta, voidaan toteuttaa siten, että ydin sijoittaa toistuvasti tuoreen arvon&lt;br /&gt;
tunnettuun muistipaikkaan prosessin muistiavaruudessa. &amp;lt;tt&amp;gt;gettimeofday&amp;lt;/tt&amp;gt;-funktio voi&lt;br /&gt;
käydä lukemassa arvon tästä muistipaikasta, tarvitsematta suorittaa &amp;lt;tt&amp;gt;sysenter&amp;lt;/tt&amp;gt;-käskyä.&lt;br /&gt;
&lt;br /&gt;
==Aiheesta muualla==&lt;br /&gt;
&lt;br /&gt;
* [http://www.win.tue.nl/~aeb/linux/lk/lk-4.html The Linux Kernel: System Calls]&lt;br /&gt;
* [http://articles.manugarg.com/systemcallinlinux2_6.html Sysenter Based System Call Mechanism in Linux 2.6]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Käsitteet]]&lt;br /&gt;
[[Luokka:Järjestelmä]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=J%C3%A4rjestelm%C3%A4kutsu&amp;diff=35205</id>
		<title>Järjestelmäkutsu</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=J%C3%A4rjestelm%C3%A4kutsu&amp;diff=35205"/>
		<updated>2011-10-24T08:31:57Z</updated>

		<summary type="html">&lt;p&gt;Jem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Järjestelmäkutsut muodostavat rajapinnan prosessissa suoritettavan [[User Mode]]&lt;br /&gt;
-ohjelman ja ytimen välillä. Rajapinnan avulla ohjelma voi käyttää&lt;br /&gt;
ytimen tarjoamia palveluita, kuten esimerkiksi lukea tiedostosta tai&lt;br /&gt;
käynnistää uuden ohjelman.&lt;br /&gt;
&lt;br /&gt;
==Yleistä==&lt;br /&gt;
&lt;br /&gt;
Linuxissa on yli kolmesataa erilaista järjestelmäkutsua, toiset keskeisempiä,&lt;br /&gt;
toiset vähän harvemmin käytettyjä. On tärkeää huomata, että [[POSIX]]-standardi, jota&lt;br /&gt;
Linux noudattaa, ei erottele järjestelmäkutsuja tavallisista funktiokutsuista.&lt;br /&gt;
POSIX määrittelee vain [[API|rajapinnan]], ei sitä, mikä rajapinnan funktio on&lt;br /&gt;
tavallinen kirjastofunktio ja mikä oikeasti järjestelmäkutsu.&lt;br /&gt;
Järjestelmäkutsut ovat olemassa vain siksi, että ydin pystyisi takaamaan&lt;br /&gt;
lupaamansa säännöt, kuten muistialueiden ja tiedostojen suojaukset.&lt;br /&gt;
&lt;br /&gt;
Joskus onkin käynyt niin, että järjestelmäkutsu on &amp;quot;alennettu&amp;quot; kirjastofunktioksi.&lt;br /&gt;
Esimerkiksi &amp;lt;tt&amp;gt;fork&amp;lt;/tt&amp;gt;-funktio oli alunperin Linuxin järjestelmäkutsu, mutta se korvattiin&lt;br /&gt;
yleiskäyttöisemmällä &amp;lt;tt&amp;gt;clone&amp;lt;/tt&amp;gt;-kutsulla, ja &amp;lt;tt&amp;gt;fork&amp;lt;/tt&amp;gt;:sta tehtiin tavallinen funktio,&lt;br /&gt;
joka kutsuu &amp;lt;tt&amp;gt;clone&amp;lt;/tt&amp;gt;:a.&lt;br /&gt;
&lt;br /&gt;
==Esimerkkejä järjestelmäkutsuista==&lt;br /&gt;
&lt;br /&gt;
Seuraavassa luettelo muutamasta usein käytetyistä kutsuista.&lt;br /&gt;
&lt;br /&gt;
* tiedostojen käsittely: &amp;lt;tt&amp;gt;creat, open, read, write, lseek, close, chmod, link, unlink&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* prosessien käsittely: &amp;lt;tt&amp;gt;clone, exec, wait, execve, nice, exit&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* verkkorajapintaan liittyvät kutsut: &amp;lt;tt&amp;gt;socketcall&amp;lt;/tt&amp;gt; (sisältäen &amp;lt;tt&amp;gt;socket, connect, bind, listen, accept&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
* käyttäjien hallinta: &amp;lt;tt&amp;gt;getuid, setuid, chown, chgrp&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järjestelmäkutsut on dokumentoitu Linuxin manuaalin kappaleessa 2. Lisätietoja:&lt;br /&gt;
 man 2 intro&lt;br /&gt;
&lt;br /&gt;
==Järjestelmäkutsumekanismi==&lt;br /&gt;
&lt;br /&gt;
Sovellusohjelman ei voida sallia kutsua ytimen koodia ihan vapaasti,&lt;br /&gt;
vaan sen on tapahduttava määritellyn kutsurajapinnan kautta. Rajoittamalla&lt;br /&gt;
kutsut tapahtuviksi tiettyjen osoitteiden kautta varmistutaan&lt;br /&gt;
siitä, että ytimen koodia kutsutaan oikein. Järjestelmäkutsun käsittelijärutiinissa&lt;br /&gt;
tehdään tyypillisesti tarkistuksia, kuten syötettyjen&lt;br /&gt;
parametrien järkevyyden testausta. Useimmissa tapauksissa tarkistetaan myös&lt;br /&gt;
onko kutsujalla oikeus suorittaa kutsu; esimerkiksi onko käyttäjällä&lt;br /&gt;
oikeutta lukea tiedostoa tai tappaa prosessia.&lt;br /&gt;
&lt;br /&gt;
Järjestelmäkutsussa tapahtuu siirtymä suorittimen (CPU) tilassa User Modesta&lt;br /&gt;
[[Kernel Mode]] -tilaan. Miten tämä tapahtuu riippuu käytetyn suorittimen&lt;br /&gt;
arkkitehtuurista, mutta tyypillinen tapa on niin sanottu &amp;quot;ohjelmallinen&lt;br /&gt;
keskeytys&amp;quot; (software interrupt). Tämä mekanismi toimii siten, että suoritin&lt;br /&gt;
suorittaa &#039;int&#039;- tai &#039;trap&#039;-käskyn, jonka seurauksena suoritin vaihtaa&lt;br /&gt;
tilansa Supervisor Mode -tilaan ja jatkaa suoritusta määritellystä&lt;br /&gt;
keskeytyksen käsittelijärutiinista.&lt;br /&gt;
&lt;br /&gt;
Intel x86-perheen suorittimilla Linuxissa on järjestelmäkutsut perinteisesti toteutettu&lt;br /&gt;
&amp;lt;tt&amp;gt;int $0x80&amp;lt;/tt&amp;gt; -käskyllä. Järjestelmäkutsun&lt;br /&gt;
numero välitetään &amp;lt;tt&amp;gt;eax&amp;lt;/tt&amp;gt;-rekisterissä, muut parametrit rekistereissä&lt;br /&gt;
&amp;lt;tt&amp;gt;ebx&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;ecx&amp;lt;/tt&amp;gt;, jne., riippuen kutsun parametrien lukumäärästä.&lt;br /&gt;
&lt;br /&gt;
Sovellusohjelmat eivät kutsu järjestelmäkutsuja suoraan, vaan&lt;br /&gt;
samannimisia funktioita standardikirjasto [[Libc]]:ssä, jotka muodostavat&lt;br /&gt;
ohuen &amp;quot;kuoren&amp;quot; järjestelmäkutsun ympärille. Nämä funktiot&lt;br /&gt;
suorittavat sitten kukin vastaavan&lt;br /&gt;
järjestelmäkutsun. Syynä tähän järjestelyyn on se, että&lt;br /&gt;
järjestelmäkutsuilla on oma kutsutapansa; parametrit siirretään&lt;br /&gt;
rekistereissä ja itse kutsua ei suoriteta &amp;lt;tt&amp;gt;call&amp;lt;/tt&amp;gt;-käskyllä, vaan&lt;br /&gt;
muulla mekanismlla, esim. yllä mainitulla &amp;lt;tt&amp;gt;int $0x80&amp;lt;/tt&amp;gt; -käskyllä.&lt;br /&gt;
&lt;br /&gt;
Tällä tavalla saadaan eristettyä varsinaisen järjestelmäkutsun monimutkaisuus&lt;br /&gt;
Libc-kirjaston hoidettavaksi Sovellusohjelmat voivat kutsua Libc:n vastaavaa&lt;br /&gt;
funktiota normaalilla korkean tason kielen ([[C]]) kutsulla, assembly-koodin sijasta.&lt;br /&gt;
Lisäksi ytimen kutsutapa on riippumaton kääntäjän käyttämästä C-kielen kutsutavasta.&lt;br /&gt;
Sovellusohjelmissa voidaan jopa vaihtaa kutsutapaa (esimerkiksi käyttämään parametrinvälitystä&lt;br /&gt;
rekistereissä pinon sijasta) muuttamatta ytimen järjestelmäkutsurajapintaa.&lt;br /&gt;
(Tämä tosin vaatii sekä sovellusten että kirjastojen, mukaan lukien libc, uudelleen&lt;br /&gt;
kääntämistä uudella kääntäjällä tai kääntäjän optioita muuttaen.)&lt;br /&gt;
&lt;br /&gt;
Suorittimen rekistereitä käytetään parametrien välittämiseen siksi,&lt;br /&gt;
että suorittimen tilan vaihtuessa User Mode:sta Supervisor Mode -tilaan,&lt;br /&gt;
vaihtuu myös käytettävä pino.&lt;br /&gt;
&lt;br /&gt;
==Sysenter ja Sysreturn==&lt;br /&gt;
&lt;br /&gt;
Intelin x86-suorittimissa on Pentium II:sta alkaen ollut vaihtoehtoinen&lt;br /&gt;
käsky, jolla siirtymän User Modesta Kernel Mode -tilaan voi toteuttaa: &amp;lt;tt&amp;gt;sysenter&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Tämä käsky keksittiin tuomaan ratkaisu int-käskyyn liittyvään ongelmaan.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;int $0x80&amp;lt;/tt&amp;gt; -mekanismi on hidas, eli suoritus vaatii monta&lt;br /&gt;
kellojaksoa, ja se on muuttunut nykyaikaisissa suorittimissa&lt;br /&gt;
suhteellisesti mitattuna yhä hitaammaksi. Uusi &amp;lt;tt&amp;gt;sysenter&amp;lt;/tt&amp;gt;-käsky on&lt;br /&gt;
nopea, mutta vanhemmat suorittimet eivät tue sitä, jolloin on&lt;br /&gt;
käytettävä perinteistä &amp;lt;tt&amp;gt;int $0x80&amp;lt;/tt&amp;gt;-käskyä. (&amp;lt;tt&amp;gt;sysenter&amp;lt;/tt&amp;gt;-käskyn kanssa&lt;br /&gt;
samanaikaisesti esitellyllä &amp;lt;tt&amp;gt;sysreturn&amp;lt;/tt&amp;gt;-käskyllä palataan järjestelmäkutsusta.)&lt;br /&gt;
&lt;br /&gt;
Tavoitteena on toisaalta&lt;br /&gt;
pitää Libc riippumattomana suorittimen versiosta ja myös puhtaana&lt;br /&gt;
koodista, joka ajon aikana tutkii mitä käskyjä suoritin tukee ja&lt;br /&gt;
mitä se ei tue.&lt;br /&gt;
&lt;br /&gt;
Ratkaisuna tähän ongelmaan &#039;&#039;ydin&#039;&#039; tarjoaa koodin, jolla&lt;br /&gt;
järjestelmäkutsu suoritetaan suoritinkohtaisesti optimaalisella&lt;br /&gt;
tavalla: joko &amp;lt;tt&amp;gt;sysenter&amp;lt;/tt&amp;gt;-käskyä käyttäen, &amp;lt;tt&amp;gt;int $0x80&amp;lt;/tt&amp;gt;-käskyllä,&lt;br /&gt;
tai tulevaisuudessa mahdollisesti jollain muulla mekanismilla. Tämä&lt;br /&gt;
koodi sijaitsee prosessin osoiteavaruudessa pienellä, ennalta&lt;br /&gt;
määritetyllä muistialueella. Libc suorittaa järjestelmäkutsun&lt;br /&gt;
kutsumalla funktiota tällä alueella, ja funktio tekee&lt;br /&gt;
varsinaisen järjestelmäkutsun. Libc joutuu toki edelleen tutkimaan,&lt;br /&gt;
onko tämä muistialue olemassa jotta kirjasto toimisi myös ytimellä,&lt;br /&gt;
joka ei tue tätä uutta mekanismia.&lt;br /&gt;
&lt;br /&gt;
==User Mode -järjestelmäkutsut==&lt;br /&gt;
&lt;br /&gt;
Nopeammallakin &amp;lt;tt&amp;gt;sysenter&amp;lt;/tt&amp;gt;-käskyllä suoritettuna järjestelmäkutsu on suhteellisen&lt;br /&gt;
paljon aikaa vievä operaatio. Kaikkia kutsuja varten ei kuitenkaan tarvitse tehdä siirtymää&lt;br /&gt;
Kernel Mode -tilaan. Esimerkiksi &amp;lt;tt&amp;gt;gettimeofday&amp;lt;/tt&amp;gt;-kutsu, joka palauttaa ytimen käsityksen&lt;br /&gt;
kellonajasta, voidaan toteuttaa siten, että ydin sijoittaa toistuvasti tuoreen arvon&lt;br /&gt;
tunnettuun muistipaikkaan prosessin muistiavaruudessa. &amp;lt;tt&amp;gt;gettimeofday&amp;lt;/tt&amp;gt;-funktio voi&lt;br /&gt;
käydä lukemassa arvon tästä muistipaikasta, tarvitsematta suorittaa &amp;lt;tt&amp;gt;sysenter&amp;lt;/tt&amp;gt;-käskyä.&lt;br /&gt;
&lt;br /&gt;
==Aiheesta muualla==&lt;br /&gt;
&lt;br /&gt;
* [http://www.win.tue.nl/~aeb/linux/lk/lk-4.html The Linux Kernel: System Calls]&lt;br /&gt;
* [http://articles.manugarg.com/systemcallinlinux2_6.html Sysenter Based System Call Mechanism in Linux 2.6]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Umask&amp;diff=35204</id>
		<title>Umask</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Umask&amp;diff=35204"/>
		<updated>2011-10-24T06:06:13Z</updated>

		<summary type="html">&lt;p&gt;Jem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;umask on [[komentotulkki|komentotulkin]] sisäinen komento sekä [[järjestelmäkutsu]], jolla muutetaan luotavien [[tiedosto]]jen [[tiedostojen oikeudet|oletusoikeuksia]]. Umask-arvo kertoo mitä oikeuksia luotaviin tiedostoihin järjestelmän &#039;&#039;ei&#039;&#039; pidä antaa.&lt;br /&gt;
&lt;br /&gt;
[[Bash]]in sisäiselle umask-komennolle vähennettävät oikeudet voi kertoa joko numeerisesti tai kirjaimin, saman tapaan kuin komennolle [[chmod]]. Jos arvoa ei määritä, umask kertoo nykyisen arvon. [[valitsin|Valitsimilla]] &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; ja &amp;lt;tt&amp;gt;-S&amp;lt;/tt&amp;gt; voi vaikuttaa tulostettavaan muotoon.&lt;br /&gt;
&lt;br /&gt;
==Tyypillinen käyttö==&lt;br /&gt;
umask-arvo asetetaan tyypillisesti komentotulkin käynnistysskripteissä, kuten &amp;lt;tt&amp;gt;/etc/profile&amp;lt;/tt&amp;gt; tai &amp;lt;tt&amp;gt;~/.profile&amp;lt;/tt&amp;gt; (Bashissa usein &amp;lt;tt&amp;gt;bash_profile&amp;lt;/tt&amp;gt; ja [[Zsh]]:ssa &amp;lt;tt&amp;gt;zprofile&amp;lt;/tt&amp;gt;). Jotta arvo asettuisi myös muille kuin komentotulkin kautta käynnistyville ohjelmille, pitää se asettaa sopivassa muussa käynnistysskriptissä. Arvo periytyy lapsiprosesseille.&lt;br /&gt;
&lt;br /&gt;
Tavallisia umask-arvoja ovat 022, 027 ja 077. Yksittäiset numerot kertovat, mitä oikeuksia &#039;&#039;ei&#039;&#039; pidä antaa käyttäjälle itselleen, [[ryhmä]]lle sekä muille. Numero itsessään muodostuu numeroiden 1, 2 ja 4 summasta, jossa 1 vaikuttaa suoritusoikeuteen (hakemistojen osalta oikeuteen käyttää hakemistoa polun osana), 2 kirjoitusoikeuteen ja 4 lukuoikeuteen. Katso lähemmin [[chmod]], jolla muutetaan oikeuksia jälkikäteen,  [[tiedoston oikeudet]] sekä [[kansion yhteiskäyttö ryhmässä]].&lt;br /&gt;
&lt;br /&gt;
Komento &amp;lt;tt&amp;gt;umask 027&amp;lt;/tt&amp;gt; jättää käyttäjälle kaikki oikeudet sekä poistaa ryhmältä kirjoitusoikeuden ja muilta käyttäjiltä kaikki oikeudet. Tämä on tavanomainen arvo silloin, kun joitakin tiedostoja haluaa jakaa ryhmän kanssa, mutta koneelle saattaa (muulla ryhmätunnuksella) olla sellaisia, joille ei tahdo näyttää kaikkia tiedostojaan.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;umask 077&amp;lt;/tt&amp;gt; epää muilta käyttäjiltä kaikki oikeudet. Asetus on sopiva silloin, kun ei tee yhteistyötä koneen muiden käyttäjien kanssa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;umask 022&amp;lt;/tt&amp;gt; jättää kaikille käyttäjille muut kuin kirjoitusoikeudet. Arvo sopii jos usein jakaa tiedostoja sellaisten kanssa, joilla ei ole yhteistä ryhmää, eikä tiedostojen salassapitoon ole suurempaa syytä. Tämä on usein oletusasetus.&lt;br /&gt;
&lt;br /&gt;
Yksittäisten hakemistojen ja tiedostojen oikeuksia voi asettaa umask-arvosta riippumatta. Yleensä kannattaa antaa kotihakemistolle &amp;quot;suoritusoikeuden&amp;quot; kaikille, jotta muut pääsevät käsiksi julkisiksi tarkoitettuihin tiedostoihin (~/public_html yms.), mutta lukuoikeuden voi evätä, ettei vahingossa luettavaksi jäänyt arkaluonteinen tiedosto paljastu turhaan:&lt;br /&gt;
 chmod go=x ~&lt;br /&gt;
&lt;br /&gt;
Vastaavasti kotihakemistossa voi olla salaisiksi ja julkisiksi tarkoitettuja hakemistoja:&lt;br /&gt;
 chmod go=rx ~/public_html&lt;br /&gt;
 chmod g=rx,o= ~/ryhmälle_jaetut&lt;br /&gt;
 chmod go= ~/salaiset&lt;br /&gt;
&lt;br /&gt;
==Tekninen kuvaus==&lt;br /&gt;
Järjestelmä pitää [[prosessi]]kohtaisesti lukua umask-tiedosta. Kun jokin ohjelma luo tiedoston (esimerkiksi järjestelmäkutsulla &amp;lt;tt&amp;gt;open&amp;lt;/tt&amp;gt; tai &amp;lt;tt&amp;gt;mkdir&amp;lt;/tt&amp;gt;) järjestelmä vähentää oikeuksia umaskin mukaan ohjelman tarjoamista (yleensä väljistä) oikeuksista. Näin ohjelmien ei tarvitse itse välittää käyttäjän haluista jakaa tiedostoja. Ohjelma voi umaskista riippumatta asettaa tiukemmat rajoitukset esimerkiksi tilapäistiedostoille: umask-arvo &#039;&#039;vähennetään&#039;&#039; tarjotuista oikeuksista.&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Komentorivin perustyökalut]]&lt;br /&gt;
[[Luokka:Käyttäjät ja ryhmät]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Fork&amp;diff=35203</id>
		<title>Fork</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Fork&amp;diff=35203"/>
		<updated>2011-10-24T06:05:39Z</updated>

		<summary type="html">&lt;p&gt;Jem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tämä artikkeli on täsmennyssivu, jossa esitellään käsitteen Fork eri merkityksiä.&lt;br /&gt;
&lt;br /&gt;
Fork voi tarkoittaa kahta asiaa:&lt;br /&gt;
*[[Fork()]] on [[järjestelmäkutsu]], joka luo lapsiprosessin&lt;br /&gt;
*Ohjelmistoprojektin [[haara]]uttamistakin kutsutaan joskus &amp;quot;&#039;&#039;forkkaamiseksi&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Käsitteet]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=J%C3%A4rjestelm%C3%A4kutsu&amp;diff=35200</id>
		<title>Järjestelmäkutsu</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=J%C3%A4rjestelm%C3%A4kutsu&amp;diff=35200"/>
		<updated>2011-10-23T18:23:42Z</updated>

		<summary type="html">&lt;p&gt;Jem: Ak: Uusi sivu: Järjestelmäkutsut muodostavat rajapinnan prosessissa suoritettavan User Mode -ohjelman ja ytimen välillä. Rajapinnan avulla ohjelma voi käyttää ytimen tarjoamia palveluita,...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Järjestelmäkutsut muodostavat rajapinnan prosessissa suoritettavan [[User Mode]]&lt;br /&gt;
-ohjelman ja ytimen välillä. Rajapinnan avulla ohjelma voi käyttää&lt;br /&gt;
ytimen tarjoamia palveluita, kuten esimerkiksi lukea tiedostosta tai&lt;br /&gt;
käynnistää uuden ohjelman.&lt;br /&gt;
&lt;br /&gt;
==Yleistä==&lt;br /&gt;
&lt;br /&gt;
Linuxissa on yli kolmesataa erilaista järjestelmäkutsua, toiset keskeisempiä,&lt;br /&gt;
toiset vähän harvemmin käytettyjä. On tärkeää huomata, että [[POSIX]]-standardi, jota&lt;br /&gt;
Linux noudattaa, ei erottele järjestelmäkutsuja tavallisista funktiokutsuista.&lt;br /&gt;
POSIX määrittelee vain rajapinnan, ei sitä, mikä rajapinnan funktio on&lt;br /&gt;
tavallinen kirjastofunktio ja mikä oikeasti järjestelmäkutsu.&lt;br /&gt;
Järjestelmäkutsut ovat olemassa vain siksi, että ydin pystyisi takaamaan&lt;br /&gt;
lupaamansa säännöt, kuten muistialueiden ja tiedostojen suojaukset.&lt;br /&gt;
&lt;br /&gt;
Joskus onkin käynyt niin, että järjestelmäkutsu on &amp;quot;alennettu&amp;quot; kirjastofunktioksi.&lt;br /&gt;
Esimerkiksi &amp;lt;tt&amp;gt;fork&amp;lt;/tt&amp;gt;-funktio oli alunperin Linuxin järjestelmäkutsu, mutta se korvattiin&lt;br /&gt;
yleiskäyttöisemmällä &amp;lt;tt&amp;gt;clone&amp;lt;/tt&amp;gt;-kutsulla, ja &amp;lt;tt&amp;gt;fork&amp;lt;/tt&amp;gt;:sta tehtiin tavallinen funktio,&lt;br /&gt;
joka kutsuu &amp;lt;tt&amp;gt;clone&amp;lt;/tt&amp;gt;:a.&lt;br /&gt;
&lt;br /&gt;
==Esimerkkejä järjestelmäkutsuista==&lt;br /&gt;
&lt;br /&gt;
Seuraavassa luettelo muutamasta usein käytetyistä kutsuista.&lt;br /&gt;
&lt;br /&gt;
* tiedostojen käsittely: &amp;lt;tt&amp;gt;creat, open, read, write, lseek, close, chmod, link, unlink&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* prosessien käsittely: &amp;lt;tt&amp;gt;clone, exec, wait, execve, nice, exit&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* verkkorajapintaan liittyvät kutsut: &amp;lt;tt&amp;gt;socketcall&amp;lt;/tt&amp;gt; (sisältäen &amp;lt;tt&amp;gt;socket, connect, bind, listen, accept&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
* käyttäjien hallinta: &amp;lt;tt&amp;gt;getuid, setuid, chown, chgrp&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järjestelmäkutsut on dokumentoitu Linuxin manuaalin kappaleessa 2. &amp;lt;tt&amp;gt;man 2 intro&amp;lt;/tt&amp;gt; -käsky antaa&lt;br /&gt;
lisätietoja.&lt;br /&gt;
&lt;br /&gt;
==Järjestelmäkutsumekanismi==&lt;br /&gt;
&lt;br /&gt;
Sovellusohjelman ei voida sallia kutsua ytimen koodia ihan vapaasti,&lt;br /&gt;
vaan sen on tapahduttava määritellyn kutsurajapinnan kautta. Rajoittamalla&lt;br /&gt;
kutsut tapahtuviksi tiettyjen osoitteiden kautta varmistutaan&lt;br /&gt;
siitä, että ytimen koodia kutsutaan oikein. Järjestelmäkutsun käsittelijärutiinissa&lt;br /&gt;
tehdään tyypillisesti tarkistuksia, kuten syötettyjen&lt;br /&gt;
parametrien järkevyyden testausta. Useimmissa tapauksissa tarkistetaan myös&lt;br /&gt;
onko kutsujalla oikeus suorittaa kutsu; esimerkiksi onko käyttäjällä&lt;br /&gt;
oikeutta lukea tiedostoa tai tappaa prosessia.&lt;br /&gt;
&lt;br /&gt;
Järjestelmäkutsussa tapahtuu siirtymä prosessorin tilassa User Modesta&lt;br /&gt;
[[Kernel Mode]] -tilaan. Miten tämä tapahtuu riippuu käytetyn prosessorin&lt;br /&gt;
arkkitehtuurista, mutta tyypillinen tapa on niin sanottu &amp;quot;ohjelmallinen&lt;br /&gt;
keskeytys&amp;quot; (software interrupt). Tämä mekanismi toimii siten, että prosessori&lt;br /&gt;
suorittaa &#039;int&#039;- tai &#039;trap&#039;-käskyn, jonka seurauksena prosessori vaihtaa&lt;br /&gt;
tilansa Supervisor Mode -tilaan ja jatkaa suoritusta määritellystä&lt;br /&gt;
keskeytyksen käsittelijärutiinista.&lt;br /&gt;
&lt;br /&gt;
Intel x86-perheen prosessoreilla Linuxissa on perinteisesti käytetty&lt;br /&gt;
&amp;lt;tt&amp;gt;int $0x80&amp;lt;/tt&amp;gt; -käskyä järjestelmäkutsun suorittamiseen. Järjestelmäkutsun&lt;br /&gt;
numero välitetään &amp;lt;tt&amp;gt;eax&amp;lt;/tt&amp;gt;-rekisterissä, muut parametrit rekistereissä&lt;br /&gt;
&amp;lt;tt&amp;gt;ebx&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;ecx&amp;lt;/tt&amp;gt;, jne., riippuen kutsun parametrien lukumäärästä.&lt;br /&gt;
&lt;br /&gt;
Sovellusohjelmat eivät kutsu järjestelmäkutsuja suoraan, vaan&lt;br /&gt;
samannimisia funktioita standardikirjasto [[Libc]]:ssä, jotka muodostavat&lt;br /&gt;
ohuen &amp;quot;kuoren&amp;quot; järjestelmäkutsun ympärille. Nämä funktiot&lt;br /&gt;
suorittavat sitten kukin vastaavan&lt;br /&gt;
järjestelmäkutsun. Syynä tähän järjestelyyn on se, että&lt;br /&gt;
järjestelmäkutsuilla on oma kutsutapansa; parametrit siirretään&lt;br /&gt;
rekistereissä ja itse kutsua ei suoriteta &amp;lt;tt&amp;gt;call&amp;lt;/tt&amp;gt;-käskyllä, vaan&lt;br /&gt;
muulla mekanismlla, esim. yllä mainitulla &amp;lt;tt&amp;gt;int $0x80&amp;lt;/tt&amp;gt; -käskyllä.&lt;br /&gt;
&lt;br /&gt;
Tällä tavalla saadaan eristettyä varsinaisen järjestelmäkutsun monimutkaisuus&lt;br /&gt;
Libc-kirjaston hoidettavaksi Sovellusohjelmat voivat kutsua Libc:n vastaavaa&lt;br /&gt;
funktiota normaalilla korkean tason kielen (C) kutsulla, assembly-koodin sijasta.&lt;br /&gt;
Lisäksi ytimen kutsutapa on riippumaton kääntäjän käyttämästä C-kielen kutsutavasta.&lt;br /&gt;
Sovellusohjelmissa voidaan jopa vaihtaa kutsutapaa (esimerkiksi käyttämään parametrinvälitystä&lt;br /&gt;
rekistereissä pinon sijasta) muuttamatta ytimen järjestelmäkutsurajapintaa.&lt;br /&gt;
(Tämä tosin vaatii sekä sovellusten että kirjastojen, mukaan lukien libc, uudelleen&lt;br /&gt;
kääntämistä uudella kääntäjällä tai kääntäjän optioita muuttaen.)&lt;br /&gt;
&lt;br /&gt;
Prosessorin rekistereitä käytetään parametrien välittämiseen siksi,&lt;br /&gt;
että prosessorin tilan vaihtuessa User Mode:sta Supervisor Mode -tilaan,&lt;br /&gt;
vaihtuu myös käytettävä pino.&lt;br /&gt;
&lt;br /&gt;
==Sysenter ja Sysreturn==&lt;br /&gt;
&lt;br /&gt;
Intelin x86-prosessoreissa on Pentium II -prosessorista alkaen ollut vaihtoehtoinen&lt;br /&gt;
käsky, jolla siirtymän User Modesta Kernel Mode -tilaan voi toteuttaa: &amp;lt;tt&amp;gt;sysenter&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Tämä käsky keksittiin tuomaan ratkaisu int-käskyyn liittyvään ongelmaan.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;int $0x80&amp;lt;/tt&amp;gt; -mekanismi on hidas, eli suoritus vaatii monta&lt;br /&gt;
kellojaksoa, ja se on muuttunut nykyaikaisissa prosessoreissa&lt;br /&gt;
suhteellisesti mitattuna yhä hitaammaksi. Uusi &amp;lt;tt&amp;gt;sysenter&amp;lt;/tt&amp;gt;-käsky on&lt;br /&gt;
nopea, mutta vanhemmat prosessorit eivät tue sitä, jolloin on&lt;br /&gt;
käytettävä vanhempaa &amp;lt;tt&amp;gt;int $0x80&amp;lt;/tt&amp;gt;-käskyä. (&amp;lt;tt&amp;gt;sysenter&amp;lt;/tt&amp;gt;-käskyn kanssa&lt;br /&gt;
samanaikaisesti esitellyllä &amp;lt;tt&amp;gt;sysreturn&amp;lt;/tt&amp;gt;-käskyllä palataan järjestelmäkutsusta.)&lt;br /&gt;
&lt;br /&gt;
Tavoitteena on toisaalta&lt;br /&gt;
pitää Libc riippumattomana prosessoriversiosta ja myös puhtaana&lt;br /&gt;
koodista, joka ajon aikana tutkii mitä käskyjä prosessori tukee ja&lt;br /&gt;
mitä se ei tue.&lt;br /&gt;
&lt;br /&gt;
Ratkaisuna tähän ongelmaan &#039;&#039;ydin&#039;&#039; tarjoaa koodin, jolla&lt;br /&gt;
prosessorikohtaisesti järjestelmäkutsu suoritetaan optimaalisella&lt;br /&gt;
tavalla: joko &amp;lt;tt&amp;gt;sysenter&amp;lt;/tt&amp;gt;-käskyä käyttäen, &amp;lt;tt&amp;gt;int $0x80&amp;lt;/tt&amp;gt;-käskyllä,&lt;br /&gt;
tai tulevaisuudessa mahdollisesti jollain muulla mekanismilla. Tämä&lt;br /&gt;
koodi sijaitsee prosessin osoiteavaruudessa pienellä, ennalta&lt;br /&gt;
määritetyllä muistialueella. Libc suorittaa järjestelmäkutsun&lt;br /&gt;
kutsumalla funktiota tällä alueella, ja funktio tekee&lt;br /&gt;
varsinaisen järjestelmäkutsun. Libc joutuu toki edelleen tutkimaan,&lt;br /&gt;
onko tämä muistialue olemassa jotta kirjasto toimisi myös ytimellä,&lt;br /&gt;
joka ei tue tätä uutta mekanismia.&lt;br /&gt;
&lt;br /&gt;
==User Mode -järjestelmäkutsut==&lt;br /&gt;
&lt;br /&gt;
Nopeammallakin &amp;lt;tt&amp;gt;sysenter&amp;lt;/tt&amp;gt;-käskyllä suoritettuna järjestelmäkutsu on suhteellisen&lt;br /&gt;
paljon aikaa vievä operaatio. Kaikkia kutsuja varten ei kuitenkaan tarvitse tehdä siirtymää&lt;br /&gt;
Kernel Mode -tilaan. Esimerkiksi &amp;lt;tt&amp;gt;gettimeofday&amp;lt;/tt&amp;gt;-kutsu, joka palauttaa ytimen käsityksen&lt;br /&gt;
kellonajasta, voidaan toteuttaa siten, että ydin sijoittaa toistuvasti tuoreen arvon&lt;br /&gt;
tunnettuun muistipaikkaan prosessin muistiavaruudessa. &amp;lt;tt&amp;gt;gettimeofday&amp;lt;/tt&amp;gt;-funktio voi&lt;br /&gt;
käydä lukemassa arvon tästä muistipaikasta, tarvitsematta suorittaa &amp;lt;tt&amp;gt;sysenter&amp;lt;/tt&amp;gt;-käskyä.&lt;br /&gt;
&lt;br /&gt;
==Aiheesta muualla==&lt;br /&gt;
&lt;br /&gt;
* [http://www.win.tue.nl/~aeb/linux/lk/lk-4.html The Linux Kernel: System Calls]&lt;br /&gt;
* [http://articles.manugarg.com/systemcallinlinux2_6.html Sysenter Based System Call Mechanism in Linux 2.6]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=K%C3%A4ytt%C3%A4j%C3%A4:Jem&amp;diff=35159</id>
		<title>Käyttäjä:Jem</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=K%C3%A4ytt%C3%A4j%C3%A4:Jem&amp;diff=35159"/>
		<updated>2011-10-14T12:52:56Z</updated>

		<summary type="html">&lt;p&gt;Jem: Ak: Uusi sivu: &amp;#039;&amp;#039;Johan Myréen&amp;#039;&amp;#039;  jem &amp;amp;#64; seravo.fi  Olen käyttänyt Linuxia kernelin versiosta 0.11.  Muokkaukseni Linux.fi:ssä&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Johan Myréen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
jem &amp;amp;#64; seravo.fi&lt;br /&gt;
&lt;br /&gt;
Olen käyttänyt Linuxia kernelin versiosta 0.11.&lt;br /&gt;
&lt;br /&gt;
[[Toiminnot:Muokkaukset/Jem|Muokkaukseni Linux.fi:ssä]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Usein_kysyttyj%C3%A4_kysymyksi%C3%A4_ytimest%C3%A4&amp;diff=35156</id>
		<title>Usein kysyttyjä kysymyksiä ytimestä</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Usein_kysyttyj%C3%A4_kysymyksi%C3%A4_ytimest%C3%A4&amp;diff=35156"/>
		<updated>2011-10-13T18:20:56Z</updated>

		<summary type="html">&lt;p&gt;Jem: Epätarkkuuksia korjattu.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Miksi gigatavun muistista jää osa käyttämättä? ==&lt;br /&gt;
[[Prosessi]]n muistiavaruus on jaettu kahteen osaan, joista yksi osa on varattu vain [[ydin|ytimen]] käyttöön. 32-bittisiä osoitteita käyttävässä koneessa osoiteavaruuden koko on 4 gigatavua (4 GiB), joista perinteisesti ylin 1 GiB on ollut varattuna ytimelle ja loput 3 GiB prosessissa suoritettavan sovelluksen käytössä. Ytimelle varatussa osassa on kuvattuna koko fyysinen RAM-muisti &amp;amp;mdash; tämän lisäksi ydin tarvitsee 128 MiB:n osoiteavaruuden mm. ytimen sisäisen vmalloc-funktion käyttöön. Tämä ei ollut ongelma niin kauan kuin tietokoneiden muistin koko oli alle tuon 1 gigatavun, mutta muistin määrän kasvaessa on tullut tarve kasvattaa ytimelle varatun osuuden kokoa (tai keksiä jokin toinen ratkaisu ongelmalle).&lt;br /&gt;
&lt;br /&gt;
Tarkempi kuvaus ongelman syistä ja ratkaisuista löytyy mm. artikkelista [http://groups-beta.google.com/group/cn.bbs.comp.unix.development.kernel/browse_thread/thread/ae812c4736d7aa10/0d1cc7cecaf6671d?q=linux+kernel+ram+896+arcangeli&amp;amp;rnum=1&amp;amp;hl=en&amp;amp;fwc=1 High Memory in the Linux Kernel]. Ytimen versiosta 2.6.16 alkaen on mahdollista käyttää ratkaisua, jossa muutetaan kernelin muistinjakoa, jolloin ei tarvitse vielä turvautua highmem-tukeen, joka tuo oman overheadinsä. Vanhemmille ytimille tarvittava patch löytyy mm. [http://members.optusnet.com.au/ckolivas/kernel/ Con Kolivasin seteistä].&lt;br /&gt;
Muisti voidaan jakaa viidellä eri tavalla:&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!Ytimen konfigurointioptio&lt;br /&gt;
!Muistia käytössä&lt;br /&gt;
|-&lt;br /&gt;
|3G/1G user/kernel split||vanha tapa, jossa muistista hyödynnetään korkeintaan 1 GiB - 128 MiB&lt;br /&gt;
|-&lt;br /&gt;
|3G/1G user/kernel split (for full 1G low memory)||1 GiB täysin käytössä&lt;br /&gt;
|-&lt;br /&gt;
|2G/2G user/kernel split||muistista hyödynnetään korkeintaan 2 GiB - 128 MiB&lt;br /&gt;
|-&lt;br /&gt;
|2G/2G user/kernel split (for full 2G low memory)||2 GiB täysin käytössä&lt;br /&gt;
|-&lt;br /&gt;
|1G/3G user/kernel split||muistista hyödynnetään korkeintaan 3 GiB - 128 MiB&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Haittapuoli esimerkiksi 2G/2G jaosta on se, että user space virtuaalimuistiavaruus (prosessin maksimikoko) on enää 2 GiB entisen 3 GiB:n sijasta. Tämä estää esimerkiksi [[wine|winen]] toiminnan ja saattaa haitata prosesseja, jotka käyttävät matalan tason muistinhallintaa. Useimpia ohjelmia tämä ei kuitenkaan haittaa.&lt;br /&gt;
&lt;br /&gt;
Jos koneessa on enemmän kuin 2 GiB muistia ja 64-bittinen prosessori, on suositeltavaa käyttää 64-bittistä versiota Linuxista, jossa yllä kuvattuja ongelmia ei ole.&lt;br /&gt;
&lt;br /&gt;
== Miksi muistia on niin vähän vapaana? ==&lt;br /&gt;
&amp;quot;&amp;lt;tt&amp;gt;[[top]]&amp;lt;/tt&amp;gt; näyttää, että muistia ei ole vapaana kuin muutamia megatavuja - mistä on kyse?&amp;quot; Muistista on eniten hyötyä, kun sitä käytetään. Ydin käyttää prosesseilta varaamatta jääneen vapaan muistin välimuistiksi, eli pitää siellä tiedostoja joita se on hiljattain [[tiedostojärjestelmä]]medialta lukenut. Välimuistiksi käytetty muisti on nopeasti vapautettavissa prosesseille, jos niiden muistintarve kasvaa. Niin kauan kun muistia ei tarvita, se kannattaa käyttää välimuistiksi jolloin se nopeuttaa järjestelmän toimintaa, aina kun samoja tiedostoja tarvitaan uudestaan. Kannattaakin siis tarkkailla ennemmin &amp;lt;tt&amp;gt;top&amp;lt;/tt&amp;gt;-listauksen &#039;&#039;cached&#039;&#039;- kuin &#039;&#039;free&#039;&#039;-kenttää kun miettii paljonko muistia on vapaana.&lt;br /&gt;
&lt;br /&gt;
==Muutospaketit (engl. &#039;&#039;patchset&#039;&#039;)==&lt;br /&gt;
&lt;br /&gt;
Yleisimpiä muutospaketteja ovat mm.&lt;br /&gt;
&lt;br /&gt;
* mm (Andrew Mortonin kokeellinen patchset, tässä testataan paljon asioita)&lt;br /&gt;
* ac (Alan Coxin patchset, RedHat tuntuu käyttävän näitä osina paketointiaan)&lt;br /&gt;
* xx-git (tarkoittaa että paketti on git paketoinnista)&lt;br /&gt;
* xx-pre (prerelease-versio)&lt;br /&gt;
* xx-rc (release candicate versio)&lt;br /&gt;
&lt;br /&gt;
Nämä yleisimmät muutospaketit löydät suoraan [http://www.kernel.org kernel.org]:ista. Vanilla on peruskerneli, eli tarkoittaa kernel.orgin virallista versiota. Korjauspaketeilla pyritään korjaamaan tai säätämään jotain kernelin ominaisuutta, esimerkiksi laitetukea tai vasteaikaa. Isommat patchsetit yleensä lisäävät paljon ominaisuuksia.&lt;br /&gt;
&lt;br /&gt;
Korjauspaketti asennetaan komennolla &lt;br /&gt;
 [[patch]] -pN &amp;lt; polku patch-tiedostoon&lt;br /&gt;
N on poistettavien polkujen lukumäärä, yleensä vaihtelee 0-1 välillä. Tämän jälkeen ydin pitää vielä kääntää uusiksi.&lt;br /&gt;
&lt;br /&gt;
== Miten vältät yleisimmät ongelmat käynnistyksen yhteydessä ==&lt;br /&gt;
&lt;br /&gt;
Parametri acpi=off voi auttaa bugisen ACPI-toteutuksen kiertämiseen.&lt;br /&gt;
&lt;br /&gt;
Parametria init=/bin/sh voi käyttää salasanan vaihtoon.&lt;br /&gt;
&lt;br /&gt;
Parametrillä vga=xxx voidaan määritellä framebuffer tilan resoluutio.&lt;br /&gt;
&lt;br /&gt;
== Kuinka ydin käännetään? ==&lt;br /&gt;
[[Ytimen kääntäminen]] on ohjeistettuna tässä wikissä.&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Järjestelmä]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=R&amp;diff=35155</id>
		<title>R</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=R&amp;diff=35155"/>
		<updated>2011-10-13T07:52:21Z</updated>

		<summary type="html">&lt;p&gt;Jem: /* Asennus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ohjelma&lt;br /&gt;
| nimi=Pinta&lt;br /&gt;
| kuva=&lt;br /&gt;
| kuvateksti=&lt;br /&gt;
| lisenssi=[[GNU]] [[GPL]]&lt;br /&gt;
| käyttöliittymä=&lt;br /&gt;
| kotisivu=[http://www.r-project.org/ www.r-project.org]}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;R on tilastolliseen laskentaan tarkoitettu ohjelmointiympäristö.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Se on GNU-projekti, joka pohjautuu S-kieleen. Tätä nykyä R on erittäin laajasti käytetty ja sen käyttöä opetetaan esimerkiksi yliopistojen tilastotieteen oppiaineissa. R:ään liittyen järjestetään nykyään myös kansainvälisiä kongresseja ja julkaistaan korkeatasoista nettilehteä. Ohjelman kotisivuilta löytyy R:ään laajan perustyökaluvalikoiman lisäksi tuhansia käyttäjien valmistamia lisäpaketteja (packages). Ohjelman kotisivuilta löytyy myös eri tasoisia oppaita R:n käyttöön. Sopiva opas R:n opetteluun ja myös edistyneille tilastotieteilijöille on esimerkiksi Tommi Viitasen kirjoittama &amp;quot;Tilastotiedettä soveltajille&amp;quot;. Katso myös Itä-Suomen yliopiston tuottama R-opas.&lt;br /&gt;
&lt;br /&gt;
Vaikka R onkin tehty tilastolliseen laskentaan, sen helposta opittavuudesta ja käytettävyydestä johtuen allekirjoittanut on mm. analysoinut R:llä musiikkia, piirrättänyt sillä Fraktaaleja, käyttänyt sitä matriisilaskentaan, matemaattiseen optimointiin jne. Tämä onnistuu funktionaalisella ohjelmoinnilla, mutta R on myös objektiorientoitunut kieli.&lt;br /&gt;
&lt;br /&gt;
Toimii seuraavilla alustoilla: Linux, Mac OS X, Windows, FreeBSD, muut Unixit.&lt;br /&gt;
&lt;br /&gt;
==Asennus==&lt;br /&gt;
Asennuspaketit löytyvät ohjelman kotisivuilta. Useimpiin Linux- ja Unix-jakeluihin&lt;br /&gt;
ohjelma löytyy myös suoraan jakelun omasta paketinhallinnasta. Debian GNU/Linuxissa ja&lt;br /&gt;
Ubuntussa komennolla&lt;br /&gt;
 apt-cache search ^r-.*&lt;br /&gt;
löytyy pitkä luettelo R-projektin paketteja. Katso myös&lt;br /&gt;
[http://cran.r-project.org/bin/linux/debian/ Debian Packages of R Software].&lt;br /&gt;
&lt;br /&gt;
==Aiheesta muualla==&lt;br /&gt;
Käyttöohjeita&lt;br /&gt;
*[http://users.utu.fi/totavi/ Tilastotiedettä soveltajille] (Tommi Viitanen)&lt;br /&gt;
*[http://www.uef.fi/c/document_library/get_file?p_l_id=138103&amp;amp;folderId=138117&amp;amp;name=DLFE-3780.pdf R-opas] (Itä-Suomen yliopisto)&lt;br /&gt;
*[http://www.r-ohjelmointi.org/ R-ohjelmointi]&lt;br /&gt;
&lt;br /&gt;
[[Luokka: Tiedeohjelmat]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Usein_kysyttyj%C3%A4_kysymyksi%C3%A4_ytimest%C3%A4&amp;diff=35154</id>
		<title>Usein kysyttyjä kysymyksiä ytimestä</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Usein_kysyttyj%C3%A4_kysymyksi%C3%A4_ytimest%C3%A4&amp;diff=35154"/>
		<updated>2011-10-13T07:07:42Z</updated>

		<summary type="html">&lt;p&gt;Jem: Lisätty tarinaa ongelman taustasta.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Miksi gigatavun muistista jää osa käyttämättä? ==&lt;br /&gt;
[[Prosessi]]n muistiavaruus on jaettu kahteen osaan, joista yksi osa on varattu vain [[ydin|ytimen]] käyttöön. 32-bittisiä osoitteita käyttävässä koneessa osoiteavaruuden koko on 4 gigatavua (4 GiB), joista perinteisesti ylin 1 GiB on ollut varattuna ytimelle ja loput 3 GiB prosessissa suoritettavan sovelluksen käytössä. Ytimelle varatussa osassa on kuvattuna koko fyysinen RAM-muisti. Tämä ei ollut ongelma niin kauan kuin tietokoneiden muistin koko oli korkeintaan tuo 1 GiB, mutta muistin määrän kasvaessa on tullut tarve kasvattaa ytimelle varatun osuuden kokoa (tai keksiä jokin toinen ratkaisu ongelmalle).&lt;br /&gt;
&lt;br /&gt;
Tarkempi kuvaus ongelman syistä ja ratkaisuista löytyy mm. artikkelista [http://groups-beta.google.com/group/cn.bbs.comp.unix.development.kernel/browse_thread/thread/ae812c4736d7aa10/0d1cc7cecaf6671d?q=linux+kernel+ram+896+arcangeli&amp;amp;rnum=1&amp;amp;hl=en&amp;amp;fwc=1 High Memory in the Linux Kernel]. Ytimen versiosta 2.6.16 alkaen on mahdollista käyttää ratkaisua, jossa muutetaan kernelin muistinjakoa, jolloin ei tarvitse vielä turvautua highmem-tukeen, joka tuo oman overheadinsä. Vanhemmille ytimille tarvittava patch löytyy mm. [http://members.optusnet.com.au/ckolivas/kernel/ Con Kolivasin seteistä].&lt;br /&gt;
Muisti voidaan jakaa neljällä eri tavalla:&lt;br /&gt;
&lt;br /&gt;
  * 3G/1G - vanha tapa, jossa muistia käytetään n. 896 MiB.&lt;br /&gt;
  * 3G/1G - Jako koneille, joissa on tasan 1 GiB muistia.&lt;br /&gt;
  * 2G/2G - Jako koneille, joissa on tasan 2 GiB muistia.&lt;br /&gt;
  * 1G/3G - Jako koneille, joissa on tasan 3 GiB muistia.&lt;br /&gt;
&lt;br /&gt;
Haittapuoli esimerkiksi 2G/2G jaosta on se, että user space virtuaalimuistiavaruus (prosessin maksimikoko) on enää 2 GiB entisen reilun 3GiB:n sijasta. Tämä estää esimerkiksi [[wine|winen]] toiminnan ja saattaa haitata prosesseja, jotka käyttävät matalan tason muistinhallintaa. Useimpia tämä ei kuitenkaan haittaa.&lt;br /&gt;
&lt;br /&gt;
Jos koneessa on enemmän kuin 2 GiB muistia ja 64-bittinen prosessori, on suositeltavaa käyttää 64-bittistä versiota Linuxista, jossa yllä kuvattuja ongelmia ei ole.&lt;br /&gt;
&lt;br /&gt;
== Miksi muistia on niin vähän vapaana? ==&lt;br /&gt;
&amp;quot;&amp;lt;tt&amp;gt;[[top]]&amp;lt;/tt&amp;gt; näyttää, että muistia ei ole vapaana kuin muutamia megatavuja - mistä on kyse?&amp;quot; Muistista on eniten hyötyä, kun sitä käytetään. Ydin käyttää prosesseilta varaamatta jääneen vapaan muistin välimuistiksi, eli pitää siellä tiedostoja joita se on hiljattain [[tiedostojärjestelmä]]medialta lukenut. Välimuistiksi käytetty muisti on nopeasti vapautettavissa prosesseille, jos niiden muistintarve kasvaa. Niin kauan kun muistia ei tarvita, se kannattaa käyttää välimuistiksi jolloin se nopeuttaa järjestelmän toimintaa, aina kun samoja tiedostoja tarvitaan uudestaan. Kannattaakin siis tarkkailla ennemmin &amp;lt;tt&amp;gt;top&amp;lt;/tt&amp;gt;-listauksen &#039;&#039;cached&#039;&#039;- kuin &#039;&#039;free&#039;&#039;-kenttää kun miettii paljonko muistia on vapaana.&lt;br /&gt;
&lt;br /&gt;
==Muutospaketit (engl. &#039;&#039;patchset&#039;&#039;)==&lt;br /&gt;
&lt;br /&gt;
Yleisimpiä muutospaketteja ovat mm.&lt;br /&gt;
&lt;br /&gt;
* mm (Andrew Mortonin kokeellinen patchset, tässä testataan paljon asioita)&lt;br /&gt;
* ac (Alan Coxin patchset, RedHat tuntuu käyttävän näitä osina paketointiaan)&lt;br /&gt;
* xx-git (tarkoittaa että paketti on git paketoinnista)&lt;br /&gt;
* xx-pre (prerelease-versio)&lt;br /&gt;
* xx-rc (release candicate versio)&lt;br /&gt;
&lt;br /&gt;
Nämä yleisimmät muutospaketit löydät suoraan [http://www.kernel.org kernel.org]:ista. Vanilla on peruskerneli, eli tarkoittaa kernel.orgin virallista versiota. Korjauspaketeilla pyritään korjaamaan tai säätämään jotain kernelin ominaisuutta, esimerkiksi laitetukea tai vasteaikaa. Isommat patchsetit yleensä lisäävät paljon ominaisuuksia.&lt;br /&gt;
&lt;br /&gt;
Korjauspaketti asennetaan komennolla &lt;br /&gt;
 [[patch]] -pN &amp;lt; polku patch-tiedostoon&lt;br /&gt;
N on poistettavien polkujen lukumäärä, yleensä vaihtelee 0-1 välillä. Tämän jälkeen ydin pitää vielä kääntää uusiksi.&lt;br /&gt;
&lt;br /&gt;
== Miten vältät yleisimmät ongelmat käynnistyksen yhteydessä ==&lt;br /&gt;
&lt;br /&gt;
Parametri acpi=off voi auttaa bugisen ACPI-toteutuksen kiertämiseen.&lt;br /&gt;
&lt;br /&gt;
Parametria init=/bin/sh voi käyttää salasanan vaihtoon.&lt;br /&gt;
&lt;br /&gt;
Parametrillä vga=xxx voidaan määritellä framebuffer tilan resoluutio.&lt;br /&gt;
&lt;br /&gt;
== Kuinka ydin käännetään? ==&lt;br /&gt;
[[Ytimen kääntäminen]] on ohjeistettuna tässä wikissä.&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Järjestelmä]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Tiedosto:Chrunchbang.png&amp;diff=35153</id>
		<title>Tiedosto:Chrunchbang.png</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Tiedosto:Chrunchbang.png&amp;diff=35153"/>
		<updated>2011-10-13T05:35:10Z</updated>

		<summary type="html">&lt;p&gt;Jem: tallensi uuden version Tiedosto:Chrunchbang.png: Chunch = #, Bang = !.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=PAM&amp;diff=35152</id>
		<title>PAM</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=PAM&amp;diff=35152"/>
		<updated>2011-10-12T17:13:10Z</updated>

		<summary type="html">&lt;p&gt;Jem: Lisätty taustaa.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PAM (&#039;&#039;Pluggable Authentication Modules&#039;&#039;) on Linuxissa käytettävä [[käyttäjä]]n tunnistusjärjestelmä. Sen avulla sovellus (esimerkiksi sisäänkirjautumisohjelma) voi tunnistaa käyttäjän monella eri tavalla ilman, että sovellusta tarvitsee muuttaa. Sovellus vain esittää käyttäjän tunnistuspyynnön PAM:ille, joka tunnistaa käyttäjän esimerkiksi salasanan tai sormenjäljen perusteella sen mukaan, mitä sen asetuksiin on määritetty.&lt;br /&gt;
&lt;br /&gt;
== Historiaa ==&lt;br /&gt;
PAM on alunperin Sun Microsystemsin 1995 kehittämä järjestelmä [[Solaris]]-käyttöjärjestelmää varten. Vuonna 1997 aloitettiin Linux-PAM-projekti, ja nykyään käytännössä kaikki Linux-jakelut käyttävät PAMia käyttäjän tunnistamiseen.&lt;br /&gt;
&lt;br /&gt;
PAM syntyi tarpeesta irrottaa sovellusten autentikointimekanismit erillisiksi moduuleiksi. Ennen PAM:ia jokaisessa sovelluksessa, jonka tarvitsi tunnistaa käyttäjä, oli oma toteutuksensa. Tyypillisesti nämä toteutukset samaa [[Passwd-tiedosto|/etc/passwd]]-tiedostoa kuin [[login]]-ohjelma, mikä johti siihen, että jokainen sovellus keksi pyörän uudestaan. Lisäksi tämä järjestely oli hyvin jäykkä, tehden vaikeaksi uusien salasanojen salausatapojen käyttöönoton tai siirtymisen [[Shadow-tiedosto|/etc/shadow]]-tiedoston käyttöön.&lt;br /&gt;
&lt;br /&gt;
PAM ratkaisee nämä ongelmat toimimalla eräänlaisena ristikytkentätauluna autentikointipalveluja tarvitsevien palvelujen ja erilaisten autentikointimekanismien välillä. Järjestely on joustava &amp;amp;ndash; sovelluksen käyttämä tunnistusmekanismi on vaihdettavissa konfiguraatiotiedostoa muokkaamalla, joten ohjelmakoodia ei tarvitse muuttaa. PAM mahdollistaa myös uusien tunnistusmekanismien käyttöönoton luomalla uusia PAM-moduuleja, joita jo olemassa olevat sovellukset pystyvät suoraan käyttämään.&lt;br /&gt;
&lt;br /&gt;
Linux-PAMin lisäksi on olemassa mm. FreeBSD:n käyttämä OpenPAM. Nämä kaikki ovat [http://www.opengroup.org/pubs/catalog/p702.htm avoimen PAM-standardin] mukaisia.&lt;br /&gt;
&lt;br /&gt;
== Toiminta ==&lt;br /&gt;
Ennen tietokoneen käyttöä on Linuxissa käyttäjän kirjauduttava sisään, eli sovellusten (esim. sisäänkirjautumisohjelman) on pystyttävä tunnistamaan käyttäjä. Ilman PAMia sovelluksiin on toteutettava tuki kaikille mahdollisille tunnistusmenetelmille, joita halutaan käyttää. Tällöin moniin sovelluksiin olisi hankalaa toteuttaa tuki esimerkiksi sormenjälkitunnistimille. &lt;br /&gt;
&lt;br /&gt;
Toisaalta kun sovellus käyttää PAMia, se voi pyytää PAMia tunnistamaan käyttäjän. PAM lukee asetustiedostosta, millä tavalla käyttäjän tunnistus halutaan tehdä, tekee tunnistuksen tällä tavalla ja palauttaa sovellukselle tiedon tunnistautumisen onnistumisesta. Tällöin sovellus ei itsessään ota kantaa tapaan, jolla käyttäjä tunnistetaan: sovelluksen kannalta on aivan sama, antaako käyttäjä salasanansa vai käyttääkö esimerkiksi silmän iirikseen perustuvaa tunnistusta.&lt;br /&gt;
&lt;br /&gt;
PAMin rakenne on modulaarinen, joten sen kanssa voidaan käyttää uusia tunnistautumistapoja tuovia moduuleita. Esimerkki tällaisesta moduulista on [[Thinkfinger]], joka lisää PAMiin tuen tietyille sormenjälkitunnistimille.&lt;br /&gt;
&lt;br /&gt;
== Asetukset ==&lt;br /&gt;
PAMin [[Asetustiedostojen perusteet|asetukset]] löytyvät tiedostosta &amp;lt;tt&amp;gt;/etc/pam.conf&amp;lt;/tt&amp;gt; tai hakemistossa &amp;lt;tt&amp;gt;/etc/pam.d&amp;lt;/tt&amp;gt; olevista tiedostoista. Jos &amp;lt;tt&amp;gt;/etc/pam.d&amp;lt;/tt&amp;gt;-hakemisto on olemassa, tiedostoa &amp;lt;tt&amp;gt;/etc/pam.conf&amp;lt;/tt&amp;gt; ei huomioida. Asetustiedostossa määritellään, mitä moduuleita käytetään käyttäjän tunnistamiseksi. Asetukset voidaan määritellä sovelluskohtaisesti. Tiedostossa &amp;lt;tt&amp;gt;pam.conf&amp;lt;/tt&amp;gt; rivit ovat muotoa&lt;br /&gt;
 palvelu tyyppi vaatimustaso moduuli asetukset&lt;br /&gt;
Sen sijaan hakemistossa &amp;lt;tt&amp;gt;/etc/pam.d&amp;lt;/tt&amp;gt; oleville asetuksille tiedoston nimi kertoo, minkä palvelun asetukset tehdään. Esimerkiksi seuraavat asetukset ovat samat:&lt;br /&gt;
 #/etc/pam.conf&lt;br /&gt;
 login auth required pam_unix.so nullok_secure&lt;br /&gt;
ja&lt;br /&gt;
 #/etc/pam.d/login&lt;br /&gt;
 auth required pam_unix.so nullok_secure&lt;br /&gt;
&lt;br /&gt;
== Katso myös ==&lt;br /&gt;
*[[Thinkfinger]] - Eräs PAMin moduuli&lt;br /&gt;
*[[PolicyKit]]&lt;br /&gt;
*[[HST]] - Sähköinen henkilökortti.&lt;br /&gt;
&lt;br /&gt;
== Aiheesta muualla ==&lt;br /&gt;
*[http://www.it.lut.fi/kurssit/01-02/010628000/semmat/pam.pdf PAM] - perustietoa PAMista suomeksi&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Järjestelmä]]&lt;br /&gt;
[[Luokka:Käyttäjät ja ryhmät]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Banner&amp;diff=35151</id>
		<title>Banner</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Banner&amp;diff=35151"/>
		<updated>2011-10-11T12:44:40Z</updated>

		<summary type="html">&lt;p&gt;Jem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;tt&amp;gt;banner&amp;lt;/tt&amp;gt; on [[Komentorivikomennot|komentorivikomento]], joka luo annetusta tekstistä [[wikipedia:fi:ASCII|ASCII]]-grafiikalla toteutetun bannerin. Banner-ohjelmaa käytettiin ennen vanhaan mm. tuottamaan tulosteiden välilehtiä, joista kävi ilmi tulostetun [[tiedosto]]n nimi tai tulostajan [[käyttäjätunnus]].&lt;br /&gt;
&lt;br /&gt;
Luodaan esimerkiksi Linux.fi-banneri:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ banner Linux.fi&lt;br /&gt;
 #          #    #    #  #    #  #    #          ######     #&lt;br /&gt;
 #          #    ##   #  #    #   #  #           #          #&lt;br /&gt;
 #          #    # #  #  #    #    ##            #####      #&lt;br /&gt;
 #          #    #  # #  #    #    ##     ###    #          #&lt;br /&gt;
 #          #    #   ##  #    #   #  #    ###    #          #&lt;br /&gt;
 ######     #    #    #   ####   #    #   ###    #          #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ohjelma ei löydy kaikista [[jakelu]]ista oletuksena. Sen voi asentaa paketista &amp;lt;tt&amp;gt;banner&amp;lt;/tt&amp;gt; tai &amp;lt;tt&amp;gt;sysvbanner&amp;lt;/tt&amp;gt;. Lisätietoja ohjelmien asentamisesta löytyy artikkelista [[Ohjelmien asentaminen]].&lt;br /&gt;
&lt;br /&gt;
== Katso myös ==&lt;br /&gt;
*[[Cowsay]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Komentorivin erikoisohjelmat]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Oracle_Linux&amp;diff=35150</id>
		<title>Oracle Linux</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Oracle_Linux&amp;diff=35150"/>
		<updated>2011-10-11T12:33:29Z</updated>

		<summary type="html">&lt;p&gt;Jem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Unbreakable Linux on [[Oracle]]n jakelema [[RHEL]]iin pohjautuva [[jakelu]] joka on lähinnä tarkoitettu alustaksi Oraclen omille [[tietokanta]]-, ym. [[palvelin]]ohjelmille. Unbreakable Linuxin on tarkoitus olla täysin binääriyhteensopiva vastaavan RHEL-version kanssa. Oraclen ajatuksena onkin siten kilpailla [[Red Hat]]in kanssa lähinnä tukipalveluiden osalta.&lt;br /&gt;
&lt;br /&gt;
==Aiheesta muualla==&lt;br /&gt;
*[[wikipedia:Oracle Enterprise Linux|Oracle Enterprise Linux englanninkielisessä Wikipediassa]]&lt;br /&gt;
*[http://www.oracle.com/technologies/linux/index.html Unbreakable Linuxin kotisivu]&lt;br /&gt;
&lt;br /&gt;
{{redhat}}&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Jakelut]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Keskustelu:IPv6&amp;diff=35149</id>
		<title>Keskustelu:IPv6</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Keskustelu:IPv6&amp;diff=35149"/>
		<updated>2011-10-11T08:24:38Z</updated>

		<summary type="html">&lt;p&gt;Jem: Ak: Uusi sivu: Liittyen poistettuun tekstiin:  &amp;quot;Samalla protokollaan on otettu mukaan huomattavasti uutta toiminnallisuutta. Eräs suuria käyttöönoton esteitä onkin ollut sen monimutkaisuus.&amp;quot;  I...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Liittyen poistettuun tekstiin:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Samalla protokollaan on otettu mukaan huomattavasti uutta toiminnallisuutta. Eräs suuria käyttöönoton esteitä onkin ollut sen monimutkaisuus.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
IPv6:n yleistymisen hitauteen ei varmasti ole syynä lisäominaisuuksien tuoma monimutkaisuus. Näillä ehkä viitattiin IPSec:iin, mobiiliin IPv6:een, ym? Nämä ei ole käytössä normaalissa IPv6 käytössä. IPv6 ei periaatteessa eroa IPv4:sta juuri mitenkään paitsi teknisiltä yksityiskohdiltaan, kuten osoitteen pituus, paketin rakenne, osoitteiden konfigurointi, jne.&lt;br /&gt;
&lt;br /&gt;
Todellinen syy IPv6 hitaaseen yleistymiseen on massiivinen muna-kana -ongelma. Kukaan ei halua nähdä vaivaa ottaa käyttöön uutta protokollaa, jolle ei ole juuri mitään käyttöä, koska kovin moni ei sitä ole ottanut käyttöön.&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=IPv6&amp;diff=35148</id>
		<title>IPv6</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=IPv6&amp;diff=35148"/>
		<updated>2011-10-11T08:12:35Z</updated>

		<summary type="html">&lt;p&gt;Jem: Poistettu perustelematon mielipide IPv6:n yleistymisen hitaudesta. Vaihdettu esimerkkiosoitteeseen RFC3849:n mukainen dokumentaatiota varten varattu prefiksi.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{perustietoa}}&lt;br /&gt;
&lt;br /&gt;
IPv6 luotiin paikkaamaan [[IPv4]]:n heikkouksia, eritoten pientä osoiteavaruutta. Kun [[IPv4]]-osoitteita on (teoriassa) mahdollista olla vain noin neljä miljardia (2&amp;lt;sup&amp;gt;32&amp;lt;/sup&amp;gt;) kappaletta, päästään IPv6:ssa moninkertaisesti suurempiin lukuihin. Vaikka [[IPv4]]:n osoiteavarus näyttää suurelta, kannattaa muistaa että koko osoiteavaruutta ei voi käyttää: osa on määritelty paikallisiksi osoitteiksi (mm. 192.168.*), osa kokeiluihin ja muihin erikoistarkoituksiin. Ennen kaikkea aliverkkojen kaikkia osoitteita ei voi hyödyntää, koska ne on jaettava lohkoittain (runkoverkon reitittimen taulukkojen pitää olla järkevän kokoisia). Jos maailman jokaiselle taloudelle pitäisi riittää muutama osoite, osoiteavaruus on joka tapauksessa riittämätön.&lt;br /&gt;
&lt;br /&gt;
IPv6-osoite kirjoitetaan yleensä kahdeksana neljän heksaluvun (0-F, 16-kantainen lukujärjestelmä) kenttänä, jotka erotetaan toisistaan kaksoispisteellä. Esimerkki IPv6-osoitteesta:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;2001:0db8:1bb7:0300:0a04:00a0:0030:011a&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erilaisia IPv6-osoitteita on todella paljon — 2&amp;lt;sup&amp;gt;128&amp;lt;/sup&amp;gt; tarkalleen. Näin osoitteita riittää esimerkiksi kotien kaikenlaisille laitteille.&lt;br /&gt;
&lt;br /&gt;
== Katso myös ==&lt;br /&gt;
*[[IPv6-tunneli|IPv6-tunnelin käyttöönotto]]&lt;br /&gt;
&lt;br /&gt;
==Aiheesta muualla==&lt;br /&gt;
*[http://fi.wikipedia.org/wiki/IPv6 Wikipedian IPv6-artikkeli]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Verkko]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Cpio&amp;diff=35147</id>
		<title>Cpio</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Cpio&amp;diff=35147"/>
		<updated>2011-10-10T12:30:20Z</updated>

		<summary type="html">&lt;p&gt;Jem: Optio → valitsin.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Komentoriviohjelma &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt; on [[tiedosto|tiedostojen]] arkistointityökalu. Ohjelman nimi tulee sanoista &#039;&#039;&#039;C&#039;&#039;&#039;o&#039;&#039;&#039;p&#039;&#039;&#039;y &#039;&#039;&#039;I&#039;&#039;&#039;n &#039;&#039;&#039;O&#039;&#039;&#039;ut. &amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt; käyttää omaa arkistoformaattia; arkistojen tiedostopääte on tyypillisesti &amp;lt;tt&amp;gt;.cpio&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt;-ohjelma pystyy kuitenkin lukemaan ja kirjoittamaan muitakin kuin omaa tiedostoformaattia, esimerkiksi &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt;-arkistoja.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt; ei ole saavuttanut yhtä suurta suosiota kuin [[tar]]-ohjelma, mikä saattaa johtua cpio-ohjelman käyttötavasta, joka poikkeaa hieman muiden arkistointiohjelmien käyttötavasta. &amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt;:lla on kuitenkin joitakin vahvuuksia verrattuna esimerkiksi &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt;-ohjelmaan.&lt;br /&gt;
&lt;br /&gt;
==Käyttö==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt;-ohjelman käytön yhteydessä käytetään termejä &#039;&#039;In&#039;&#039; ja &#039;&#039;Out&#039;&#039; ehkä tutumpien &#039;&#039;Create&#039;&#039; ja &#039;&#039;Extract&#039;&#039; sijasta. Suunta on [[tiedostojärjestelmä|tiedostojärjestelmästä]] päin tarkasteltuna: &#039;&#039;In&#039;&#039; tarkoittaa siis [[tiedosto|tiedostojen]] lukua arkistosta tiedostojärjestelmään, &#039;&#039;Out&#039;&#039; vastaavasti tiedostojen kopioimista tiedostojärjestelmästä arkistoon (esimerkiksi nauha-aseman nauhalle).&lt;br /&gt;
&lt;br /&gt;
Toinen merkittävä ero verrattuna esimerkiksi &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt;-ohjelmaan on se, että &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-ohjelma lukee luodessaan arkistoa talletettavien tiedostojen nimet ohjelman syötteenä [[Syötevirta|standard inputista]]. Useimmille muille arkistointiohjelmille arkistoitavien tiedostojen ja [[hakemisto|hakemistojen]] nimet annetaan [[komentorivi|komentorivin]] parametrina.&lt;br /&gt;
&lt;br /&gt;
Tiedostojen nimien lukeminen ohjelman syötteenä tekee &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-ohjelmasta &amp;quot;sovitetun parin&amp;quot; [[find]]-ohjelman kanssa. &amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt;-ohjelmaa käytetäänkin useimmiten find-ohjelman kanssa, kuten alla olevista esimerkeistä nähdään.&lt;br /&gt;
&lt;br /&gt;
===Arkiston luonti===&lt;br /&gt;
&lt;br /&gt;
Arkisto luodaan [[valitsin|valitsimella]] &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt; (Copy-out). Komento&lt;br /&gt;
&lt;br /&gt;
 find proj1 | cpio -o &amp;gt; proj1.cpio&lt;br /&gt;
&lt;br /&gt;
luo arkistotiedoston, johon on talletettu koko &amp;lt;tt&amp;gt;proj1&amp;lt;/tt&amp;gt;-alihakemiston sisältö. &amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt;-ohjelma tulostaa arkiston sisällön [[Syötevirta|standard outputiin]]. Jos arkiston haluaa tallentaa tiedostoon, pitää käyttää [[Komentotulkki|komentotulkin]] tiedostoonohjausmerkkiä &amp;gt;, tai vaihtoehtoisesti käyttää &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-ohjelman &amp;lt;tt&amp;gt;-F&amp;lt;/tt&amp;gt;-valitsinta. &#039;&#039;&#039;Huom!&#039;&#039;&#039; Luotavan arkistotiedoston ei ole hyvä sijaita arkistoitavan alihakemiston sisällä, sillä muuten lopputulos on ennalta arvaamaton, koska &amp;lt;tt&amp;gt;find&amp;lt;/tt&amp;gt;-ohjelma löytää myös arkistotiedoston ja antaa sen syötteeksi &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-ohjelmalle. Jos nykyisen hakemiston &amp;quot;&amp;lt;tt&amp;gt;.&amp;lt;/tt&amp;gt;&amp;quot; sisällöstä halutaan luoda &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-arkisto, sen voi tehdä esimerkiksi näin:&lt;br /&gt;
&lt;br /&gt;
 find . | cpio -o &amp;gt; ../proj1.cpio&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Find&amp;lt;/tt&amp;gt;-ohjelman avulla voidaan hyvin joustavasti valita mitkä tiedostot halutaan mukaan arkistoon, ja mitkä jätetään sen ulkopuolelle. Esimerkiksi seuraavalla komennolla arkistoidaan hakemiston &amp;lt;tt&amp;gt;proj1&amp;lt;/tt&amp;gt; sisältämät &amp;lt;tt&amp;gt;.c&amp;lt;/tt&amp;gt;- ja &amp;lt;tt&amp;gt;.h&amp;lt;/tt&amp;gt;-tiedostot. Komento tallentaa myös alihakemistoista löytyvät &amp;lt;tt&amp;gt;.c&amp;lt;/tt&amp;gt;- ja &amp;lt;tt&amp;gt;.h&amp;lt;/tt&amp;gt;-tiedostot, ja säilyttää hakemistorakenteen täsmäävien tiedostojen osalta.&lt;br /&gt;
&lt;br /&gt;
 find proj1 -name &amp;quot;*.c&amp;quot; -o -name &amp;quot;*.h&amp;quot; | cpio -o &amp;gt; proj1src.cpio&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;[[Find]]&amp;lt;/tt&amp;gt;-ohjelma mahdollistaa tiedostojen valitsemisen hyvin monipuolisesti, vaikkapa nimien, tiedoston omistajan tai aikaleiman mukaan. Tämä on &amp;lt;tt&amp;gt;find&amp;lt;/tt&amp;gt;-ohjelman ominaisuus; lisätietoja &amp;lt;tt&amp;gt;find&amp;lt;/tt&amp;gt;-ohjelman dokumentaatiosta.&lt;br /&gt;
&lt;br /&gt;
Jos on epävarma siitä, mitkä kaikki tiedostot tallentuvat arkistoon, voi komentoa kuivaharjoitella jättämällä &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-osan pois, jolloin find-komento tulostaa täsmäävien tiedostojen nimet.&lt;br /&gt;
&lt;br /&gt;
===Arkiston purku===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt;-arkisto puretaan &amp;lt;tt&amp;gt;-i&amp;lt;/tt&amp;gt;-valitsimella (Copy-in). Lisäksi kannattaa käyttää &amp;lt;tt&amp;gt;-d&amp;lt;/tt&amp;gt;-valitsinta, joka tarvittaessa luo alihakemistot, joihin tiedostot tallennetaan.&lt;br /&gt;
&lt;br /&gt;
 cpio -id &amp;lt; proj1.cpio&lt;br /&gt;
&lt;br /&gt;
Ohjelma lukee arkiston oletusarvoisesti standard inputista, mutta arkistotiedosto voidaan myös ilmoittaa &amp;lt;tt&amp;gt;-F&amp;lt;/tt&amp;gt;-valitsimella.&lt;br /&gt;
&lt;br /&gt;
Standard inputin ja standard outputin käyttö syöttö- ja tulostuskanavana mahdollistaa arkistojen joustavan käsittelyn. Arkisto voidaan esimerkiksi lähettää datavirtana ssh-yhteyden yli toiseen koneeseen, jossa se puretaan:&lt;br /&gt;
&lt;br /&gt;
 cat proj1.cpio | ssh hemmo@kone &#039;cpio -id&#039;&lt;br /&gt;
&lt;br /&gt;
===Copy-pass===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-ohjelma voidaan myös suorittaa ns. Copy-pass -tilassa, joka yhdistää arkiston luonnin ja purun yhdeksi komennoksi. Tässä tilassa alihakemisto voidaan kopioida kokonaisuudessaan toiseen paikkaan tiedostojärjestelmässä. Copy-pass -tilassa kohdehakemisto annetaan komentoriviparametrina; hakemiston on oltava olemassa etukäteen. Kopioitavien tiedostojen nimet luetaan syötteenä aivan kuten Copy-out -tilassa.&lt;br /&gt;
&lt;br /&gt;
 find proj1 -name &amp;quot;*.c&amp;quot; -o -name &amp;quot;*.h&amp;quot; | cpio -pd proj1src-backup&lt;br /&gt;
&lt;br /&gt;
===Arkiston selaus===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-arkiston sisällä olevien tiedostojen ja hakemistojen nimet saa tulostettua &amp;lt;tt&amp;gt;-t&amp;lt;/tt&amp;gt;-valitsimella:&lt;br /&gt;
&lt;br /&gt;
 cpio -t &amp;lt; proj1.cpio&lt;br /&gt;
&lt;br /&gt;
==Lisätietoja==&lt;br /&gt;
&lt;br /&gt;
*man cpio&lt;br /&gt;
*info cpio&lt;br /&gt;
&lt;br /&gt;
==Katso myös==&lt;br /&gt;
[[Tar]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Pakkausohjelmat]]&lt;br /&gt;
[[Luokka:Komentorivin perustyökalut]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Ajonaikainen_linkitt%C3%A4j%C3%A4&amp;diff=35146</id>
		<title>Ajonaikainen linkittäjä</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Ajonaikainen_linkitt%C3%A4j%C3%A4&amp;diff=35146"/>
		<updated>2011-10-10T12:26:02Z</updated>

		<summary type="html">&lt;p&gt;Jem: Viittaus Jaetut Kirjastot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ajonaikainen linkittäjä (dynamic linker, &amp;lt;tt&amp;gt;ld.so&amp;lt;/tt&amp;gt;) lataa ohjelman tarvitsemat jaetut [[kirjasto]]t, valmistelee ohjelman ajettavaksi, ja sitten ajaa sen. Mikäli Linux-ohjelmaa ei ole käännettäessä erikseen määritelty staattiseksi (kääntäjän vipu &amp;lt;tt&amp;gt;-static&amp;lt;/tt&amp;gt;), se tarvitsee ajonaikaista linkitystä toimiakseen. &lt;br /&gt;
&lt;br /&gt;
==Katso myös==&lt;br /&gt;
*[[Jaetut kirjastot]]&lt;br /&gt;
*[[Ldd]] näyttää ajettavan tiedoston kirjastoriippuvuudet&lt;br /&gt;
*[[Ldconfig]] päivittää linkittäjän välimuistin ja linkit&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Järjestelmä]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Tar&amp;diff=35145</id>
		<title>Tar</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Tar&amp;diff=35145"/>
		<updated>2011-10-10T12:25:00Z</updated>

		<summary type="html">&lt;p&gt;Jem: /* Katso myös */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Komentoriviohjelma tar (tape archiver) on työkalu tar-pakettien käsittelyyn. Tar-paketit sisältävät tiedoston tai lukuisan määrän tiedostoja ja hakemistoja koottuna yhden tiedoston sisälle. Tar-pakettimuoto ei itsessään sisällä mitään pakkausta, joten usein se yhdistetään joko [[gzip]]- tai kehittyneempään [[bzip2]]-pakkaustekniikkaan, jolloin tiedostopäätteeksi muodostuu .tar.gz tai .tar.bz2. &lt;br /&gt;
&lt;br /&gt;
Tämä ns. [[tarball]]-muoto on Unix- ja Linux-maailman ylivoimaisesti käytetyin tiedonpakkaustapa. Esimerkiksi ohjelmien lähdekoodit jaellaan käytännössä poikkeuksetta tässä muodossa. Tar-ohjelma osaa käsitellä myös .tar.gz- ja .tar.bz2-paketteja (eli pakattuja tar-arkistoja).&lt;br /&gt;
&lt;br /&gt;
== Käyttö ==&lt;br /&gt;
Tulostetaan tiedostolistaus arkistosta ja [[Komentorivin perusteet#Putkitus|näytetään]] tämä ohjelmalla [[less]]:&lt;br /&gt;
 tar tvf tiedosto.tgz | less&lt;br /&gt;
Puretaan tar.gz-paketti. Valitsin &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt; tarkoittaa purkamista, &amp;lt;tt&amp;gt;v&amp;lt;/tt&amp;gt; listaa purettavat tiedostot (ei pakollinen), &amp;lt;tt&amp;gt;k&amp;lt;/tt&amp;gt; estää taria ylikirjoittamasta olemassaolevia tiedostoja ja &amp;lt;tt&amp;gt;f&amp;lt;/tt&amp;gt; määrittää tiedoston, joka puretaan.&lt;br /&gt;
 tar xvkf tiedosto.tar.gz&lt;br /&gt;
Pakataan ([[valitsin]] &amp;lt;tt&amp;gt;-c&amp;lt;/tt&amp;gt;) hakemisto &amp;lt;tt&amp;gt;/home/jani-petteri/omat.laulut/&amp;lt;/tt&amp;gt; bzip2-pakattuun tar-pakettiin &amp;lt;tt&amp;gt;musiikki.tar.bz2&amp;lt;/tt&amp;gt;. Tar-paketin nimen on tultava heti valitsimen &amp;lt;tt&amp;gt;f&amp;lt;/tt&amp;gt; jälkeen. Valitsin &amp;lt;tt&amp;gt;j&amp;lt;/tt&amp;gt; korvataan &amp;lt;tt&amp;gt;z&amp;lt;/tt&amp;gt;:llä, mikäli pakattavan paketin halutaan olevan gzip-muodossa (tiedostopääte .tar.gz).&lt;br /&gt;
 tar cjf musiikki.tar.bz2 /home/jani-petteri/omat.laulut/&lt;br /&gt;
&lt;br /&gt;
==Vinkkejä==&lt;br /&gt;
* Siirrä kohdetta, älä arkistoa.&lt;br /&gt;
 tar -C pura/tänne/ -xvf arkisto.tar&lt;br /&gt;
&lt;br /&gt;
== Katso myös ==&lt;br /&gt;
* [[Tarball]]&lt;br /&gt;
* [[Cpio]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Pakkausohjelmat]]&lt;br /&gt;
[[Luokka:Komentorivin perustyökalut]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Cpio&amp;diff=35144</id>
		<title>Cpio</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Cpio&amp;diff=35144"/>
		<updated>2011-10-10T12:23:11Z</updated>

		<summary type="html">&lt;p&gt;Jem: Lisätty linkkejä ja muuta pientä.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Komentoriviohjelma &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt; on [[tiedosto|tiedostojen]] arkistointityökalu. Ohjelman nimi tulee sanoista &#039;&#039;&#039;C&#039;&#039;&#039;o&#039;&#039;&#039;p&#039;&#039;&#039;y &#039;&#039;&#039;I&#039;&#039;&#039;n &#039;&#039;&#039;O&#039;&#039;&#039;ut. &amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt; käyttää omaa arkistoformaattia; arkistojen tiedostopääte on tyypillisesti &amp;lt;tt&amp;gt;.cpio&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt;-ohjelma pystyy kuitenkin lukemaan ja kirjoittamaan muitakin kuin omaa tiedostoformaattia, esimerkiksi &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt;-arkistoja.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt; ei ole saavuttanut yhtä suurta suosiota kuin [[tar]]-ohjelma, mikä saattaa johtua cpio-ohjelman käyttötavasta, joka poikkeaa hieman muiden arkistointiohjelmien käyttötavasta. &amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt;:lla on kuitenkin joitakin vahvuuksia verrattuna esimerkiksi &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt;-ohjelmaan.&lt;br /&gt;
&lt;br /&gt;
==Käyttö==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt;-ohjelman käytön yhteydessä käytetään termejä &#039;&#039;In&#039;&#039; ja &#039;&#039;Out&#039;&#039; ehkä tutumpien &#039;&#039;Create&#039;&#039; ja &#039;&#039;Extract&#039;&#039; sijasta. Suunta on [[tiedostojärjestelmä|tiedostojärjestelmästä]] päin tarkasteltuna: &#039;&#039;In&#039;&#039; tarkoittaa siis [[tiedosto|tiedostojen]] lukua arkistosta tiedostojärjestelmään, &#039;&#039;Out&#039;&#039; vastaavasti tiedostojen kopioimista tiedostojärjestelmästä arkistoon (esimerkiksi nauha-aseman nauhalle).&lt;br /&gt;
&lt;br /&gt;
Toinen merkittävä ero verrattuna esimerkiksi &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt;-ohjelmaan on se, että &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-ohjelma lukee luodessaan arkistoa talletettavien tiedostojen nimet ohjelman syötteenä [[Syötevirta|standard inputista]]. Useimmille muille arkistointiohjelmille arkistoitavien tiedostojen ja [[hakemisto|hakemistojen]] nimet annetaan [[komentorivi|komentorivin]] parametrina.&lt;br /&gt;
&lt;br /&gt;
Tiedostojen nimien lukeminen ohjelman syötteenä tekee &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-ohjelmasta &amp;quot;sovitetun parin&amp;quot; [[find]]-ohjelman kanssa. &amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt;-ohjelmaa käytetäänkin useimmiten find-ohjelman kanssa, kuten alla olevista esimerkeistä nähdään.&lt;br /&gt;
&lt;br /&gt;
===Arkiston luonti===&lt;br /&gt;
&lt;br /&gt;
Arkisto luodaan &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;-optiolla (Copy-out). Komento&lt;br /&gt;
&lt;br /&gt;
 find proj1 | cpio -o &amp;gt; proj1.cpio&lt;br /&gt;
&lt;br /&gt;
luo arkistotiedoston, johon on talletettu koko &amp;lt;tt&amp;gt;proj1&amp;lt;/tt&amp;gt;-alihakemiston sisältö. &amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt;-ohjelma tulostaa arkiston sisällön [[Syötevirta|standard outputiin]]. Jos arkiston haluaa tallentaa tiedostoon, pitää käyttää [[Komentotulkki|komentotulkin]] tiedostoonohjausmerkkiä &amp;gt;, tai vaihtoehtoisesti käyttää &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-ohjelman &amp;lt;tt&amp;gt;-F&amp;lt;/tt&amp;gt;-optiota. &#039;&#039;&#039;Huom!&#039;&#039;&#039; Luotavan arkistotiedoston ei ole hyvä sijaita arkistoitavan alihakemiston sisällä, sillä muuten lopputulos on ennalta arvaamaton, koska &amp;lt;tt&amp;gt;find&amp;lt;/tt&amp;gt;-ohjelma löytää myös arkistotiedoston ja antaa sen syötteeksi &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-ohjelmalle. Jos nykyisen hakemiston &amp;quot;&amp;lt;tt&amp;gt;.&amp;lt;/tt&amp;gt;&amp;quot; sisällöstä halutaan luoda &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-arkisto, sen voi tehdä esimerkiksi näin:&lt;br /&gt;
&lt;br /&gt;
 find . | cpio -o &amp;gt; ../proj1.cpio&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Find&amp;lt;/tt&amp;gt;-ohjelman avulla voidaan hyvin joustavasti valita mitkä tiedostot halutaan mukaan arkistoon, ja mitkä jätetään sen ulkopuolelle. Esimerkiksi seuraavalla komennolla arkistoidaan hakemiston &amp;lt;tt&amp;gt;proj1&amp;lt;/tt&amp;gt; sisältämät &amp;lt;tt&amp;gt;.c&amp;lt;/tt&amp;gt;- ja &amp;lt;tt&amp;gt;.h&amp;lt;/tt&amp;gt;-tiedostot. Komento tallentaa myös alihakemistoista löytyvät &amp;lt;tt&amp;gt;.c&amp;lt;/tt&amp;gt;- ja &amp;lt;tt&amp;gt;.h&amp;lt;/tt&amp;gt;-tiedostot, ja säilyttää hakemistorakenteen täsmäävien tiedostojen osalta.&lt;br /&gt;
&lt;br /&gt;
 find proj1 -name &amp;quot;*.c&amp;quot; -o -name &amp;quot;*.h&amp;quot; | cpio -o &amp;gt; proj1src.cpio&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;[[Find]]&amp;lt;/tt&amp;gt;-ohjelma mahdollistaa tiedostojen valitsemisen hyvin monipuolisesti, vaikkapa nimien, tiedoston omistajan tai aikaleiman mukaan. Tämä on &amp;lt;tt&amp;gt;find&amp;lt;/tt&amp;gt;-ohjelman ominaisuus; lisätietoja &amp;lt;tt&amp;gt;find&amp;lt;/tt&amp;gt;-ohjelman dokumentaatiosta.&lt;br /&gt;
&lt;br /&gt;
Jos on epävarma siitä, mitkä kaikki tiedostot tallentuvat arkistoon, voi komentoa kuivaharjoitella jättämällä &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-osan pois, jolloin find-komento tulostaa täsmäävien tiedostojen nimet.&lt;br /&gt;
&lt;br /&gt;
===Arkiston purku===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt;-arkisto puretaan &amp;lt;tt&amp;gt;-i&amp;lt;/tt&amp;gt;-optiolla (Copy-in). Lisäksi kannattaa käyttää &amp;lt;tt&amp;gt;-d&amp;lt;/tt&amp;gt;-optiota, joka tarvittaessa luo alihakemistot, joihin tiedostot tallennetaan.&lt;br /&gt;
&lt;br /&gt;
 cpio -id &amp;lt; proj1.cpio&lt;br /&gt;
&lt;br /&gt;
Ohjelma lukee arkiston oletusarvoisesti standard inputista, mutta arkistotiedosto voidaan myös ilmoittaa &amp;lt;tt&amp;gt;-F&amp;lt;/tt&amp;gt;-optiolla.&lt;br /&gt;
&lt;br /&gt;
Standard inputin ja standard outputin käyttö syöttö- ja tulostuskanavana mahdollistaa arkistojen joustavan käsittelyn. Arkisto voidaan esimerkiksi lähettää datavirtana ssh-yhteyden yli toiseen koneeseen, jossa se puretaan:&lt;br /&gt;
&lt;br /&gt;
 cat proj1.cpio | ssh hemmo@kone &#039;cpio -id&#039;&lt;br /&gt;
&lt;br /&gt;
===Copy-pass===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-ohjelma voidaan myös suorittaa ns. Copy-pass -tilassa, joka yhdistää arkiston luonnin ja purun yhdeksi komennoksi. Tässä tilassa alihakemisto voidaan kopioida kokonaisuudessaan toiseen paikkaan tiedostojärjestelmässä. Copy-pass -tilassa kohdehakemisto annetaan komentoriviparametrina; hakemiston on oltava olemassa etukäteen. Kopioitavien tiedostojen nimet luetaan syötteenä aivan kuten Copy-out -tilassa.&lt;br /&gt;
&lt;br /&gt;
 find proj1 -name &amp;quot;*.c&amp;quot; -o -name &amp;quot;*.h&amp;quot; | cpio -pd proj1src-backup&lt;br /&gt;
&lt;br /&gt;
===Arkiston selaus===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-arkiston sisällä olevien tiedostojen ja hakemistojen nimet saa tulostettua &amp;lt;tt&amp;gt;-t&amp;lt;/tt&amp;gt;-optiolla:&lt;br /&gt;
&lt;br /&gt;
 cpio -t &amp;lt; proj1.cpio&lt;br /&gt;
&lt;br /&gt;
==Lisätietoja==&lt;br /&gt;
&lt;br /&gt;
*man cpio&lt;br /&gt;
*info cpio&lt;br /&gt;
&lt;br /&gt;
==Katso myös==&lt;br /&gt;
[[Tar]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Pakkausohjelmat]]&lt;br /&gt;
[[Luokka:Komentorivin perustyökalut]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Cpio&amp;diff=35142</id>
		<title>Cpio</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Cpio&amp;diff=35142"/>
		<updated>2011-10-10T12:07:27Z</updated>

		<summary type="html">&lt;p&gt;Jem: Tar-ohjelman aliarvostettu isoveli.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Komentoriviohjelma &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt; on tiedostojen arkistointityökalu. Ohjelman nimi tulee sanoista &#039;&#039;&#039;C&#039;&#039;&#039;o&#039;&#039;&#039;p&#039;&#039;&#039;y &#039;&#039;&#039;I&#039;&#039;&#039;n &#039;&#039;&#039;O&#039;&#039;&#039;ut. &amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt; käyttää omaa arkistoformaattia; arkistojen tiedostopääte on tyypillisesti &amp;lt;tt&amp;gt;.cpio&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt;-ohjelma pystyy kuitenkin lukemaan ja kirjoittamaan muitakin kuin omaa tiedostoformaattia, esimerkiksi &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt;-arkistoja.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt; ei ole saavuttanut yhtä suurta suosiota kuin [[tar]]-ohjelma, mikä saattaa johtua cpio-ohjelman käyttötavasta, joka poikkeaa hieman muiden arkistointiohjelmien käyttötavasta. &amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt;:lla on kuitenkin joitakin vahvuuksia verrattuna esimerkiksi &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt;-ohjelmaan.&lt;br /&gt;
&lt;br /&gt;
==Käyttö==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt;-ohjelman käytön yhteydessä käytetään termejä &#039;&#039;In&#039;&#039; ja &#039;&#039;Out&#039;&#039; ehkä tutumpien &#039;&#039;Create&#039;&#039; ja &#039;&#039;Extract&#039;&#039; sijasta. Suunta on tiedostojärjestelmästä päin tarkasteltuna: &#039;&#039;In&#039;&#039; tarkoittaa siis tiedostojen lukua arkistosta tiedostojärjestelmään, &#039;&#039;Out&#039;&#039; vastaavasti tiedostojen kopioimista tiedostojärjestelmästä arkistoon (esimerkiksi nauha-aseman nauhalle).&lt;br /&gt;
&lt;br /&gt;
Toinen merkittävä ero verrattuna esimerkiksi &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt;-ohjelmaan on se, että &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-ohjelma lukee luodessaan arkistoa talletettavien tiedostojen nimet ohjelman syötteenä [[Standard Input|standard inputista]]. Useimmille muille arkistointiohjelmille arkistoitavien tiedostojen ja hakemistojen nimet annetaan komentorivin parametrina.&lt;br /&gt;
&lt;br /&gt;
Tiedostojen nimien lukeminen ohjelman syötteenä tekee &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-ohjelmasta &amp;quot;sovitetun parin&amp;quot; [[find]]-ohjelman kanssa. &amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt;-ohjelmaa käytetäänkin useimmiten find-ohjelman kanssa, kuten alla olevista esimerkeistä nähdään.&lt;br /&gt;
&lt;br /&gt;
===Arkiston luonti===&lt;br /&gt;
&lt;br /&gt;
Arkisto luodaan &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;-optiolla (Copy-out). Komento&lt;br /&gt;
&lt;br /&gt;
 find proj1 | cpio -o &amp;gt; proj1.cpio&lt;br /&gt;
&lt;br /&gt;
luo arkistotiedoston, johon on talletettu koko &amp;lt;tt&amp;gt;proj1&amp;lt;/tt&amp;gt;-alihakemiston sisältö. &amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt;-ohjelma tulostaa arkiston sisällön [[Standard Output|standard outputiin]]. Jos arkiston haluaa tallentaa tiedostoon, pitää käyttää [[Komentotulkki|komentotulkin]] tiedostoonohjausmerkkiä &amp;gt;, tai vaihtoehtoisesti käyttää &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-ohjelman &amp;lt;tt&amp;gt;-F&amp;lt;/tt&amp;gt;-optiota. &#039;&#039;&#039;Huom!&#039;&#039;&#039; Luotavan arkistotiedoston ei ole hyvä sijaita arkistoitavan alihakemiston sisällä, sillä muuten lopputulos on ennalta arvaamaton, koska &amp;lt;tt&amp;gt;find&amp;lt;/tt&amp;gt;-ohjelma löytää myös arkistotiedoston ja antaa sen syötteeksi &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-ohjelmalle. Jos nykyisestä hakemistosta &amp;lt;tt&amp;gt;.&amp;lt;/tt&amp;gt; halutaan luoda &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-arkisto, sen voi tehdä esimerkiksi näin:&lt;br /&gt;
&lt;br /&gt;
 find . | cpio -o &amp;gt; ../proj1.cpio&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Find&amp;lt;/tt&amp;gt;-ohjelman avulla voidaan hyvin joustavasti valita mitkä tiedostot halutaan mukaan arkistoon, ja mitkä jätetään sen ulkopuolelle. Esimerkiksi seuraavalla komennolla arkistoidaan hakemiston proj1 sisältämät &amp;lt;tt&amp;gt;.c&amp;lt;/tt&amp;gt;- ja &amp;lt;tt&amp;gt;.h&amp;lt;/tt&amp;gt;-tiedostot. Komento tallentaa myös alihakemistoista löytyvät &amp;lt;tt&amp;gt;.c&amp;lt;/tt&amp;gt;- ja &amp;lt;tt&amp;gt;.h&amp;lt;/tt&amp;gt;-tiedostot, ja säilyttää hakemistorakenteen täsmäävien tiedostojen osalta.&lt;br /&gt;
&lt;br /&gt;
 find proj1 -name &amp;quot;*.c&amp;quot; -o -name &amp;quot;*.h&amp;quot; | cpio -o &amp;gt; proj1src.cpio&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;[[Find]]&amp;lt;/tt&amp;gt;-ohjelma mahdollistaa tiedostojen valitsemisen hyvin monipuolisesti, vaikkapa nimien, tiedoston omistajan tai aikaleiman mukaan. Tämä on &amp;lt;tt&amp;gt;find&amp;lt;/tt&amp;gt;-ohjelman ominaisuus; lisätietoja &amp;lt;tt&amp;gt;find&amp;lt;/tt&amp;gt;-ohjelman dokumentaatiosta.&lt;br /&gt;
&lt;br /&gt;
Jos on epävarma siitä, mitkä kaikki tiedostot tallentuvat arkistoon, voi komentoa kuivaharjoitella jättämällä &amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-osan pois, jolloin find-komento tulostaa täsmäävien tiedostojen nimet.&lt;br /&gt;
&lt;br /&gt;
===Arkiston purku===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Cpio&amp;lt;/tt&amp;gt;-arkisto puretaan &amp;lt;tt&amp;gt;-i&amp;lt;/tt&amp;gt;-optiolla (Copy-in). Lisäksi kannattaa käyttää &amp;lt;tt&amp;gt;-d&amp;lt;/tt&amp;gt;-optiota, joka tarvittaessa luo alihakemistot, joihin tiedostot tallennetaan.&lt;br /&gt;
&lt;br /&gt;
 cpio -id &amp;lt; proj1.cpio&lt;br /&gt;
&lt;br /&gt;
Ohjelma lukee arkiston oletusarvoisesti standard inputista, mutta arkistotiedosto voidaan myös ilmoittaa &amp;lt;tt&amp;gt;-F&amp;lt;/tt&amp;gt;-optiolla.&lt;br /&gt;
&lt;br /&gt;
Standard inputin ja standard outputin käyttö syöttö- ja tulostuskanavana mahdollistaa arkistojen joustavan käsittelyn. Esimerkiksi voidaan arkisto lähettää datavirtana ssh-yhteyden yli toiseen koneeseen, jossa se puretaan:&lt;br /&gt;
&lt;br /&gt;
 cat proj1.cpio | ssh hemmo@kone &#039;cpio -id&#039;&lt;br /&gt;
&lt;br /&gt;
===Copy-pass===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-ohjelma voidaan myös suorittaa ns. Copy-pass -tilassa, joka yhdistää arkiston luonnin ja purun yhdeksi komennoksi. Tässä tilassa alihakemisto voidaan kopioida kokonaisuudessaan toiseen paikkaan tiedostojärjestelmässä. Copy-pass -tilassa kohdehakemisto annetaan komentoriviparametrina; hakemiston on oltava olemassa etukäteen. Kopioitavien tiedostojen nimet luetaan syötteenä aivan kuten Copy-out -tilassa.&lt;br /&gt;
&lt;br /&gt;
 find proj1 -name &amp;quot;*.c&amp;quot; -o -name &amp;quot;*.h&amp;quot; | cpio -pd proj1src-backup&lt;br /&gt;
&lt;br /&gt;
===Arkiston selaus===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;cpio&amp;lt;/tt&amp;gt;-arkiston sisällä olevien tiedostojen ja hakemistojen nimet saa tulostettua &amp;lt;tt&amp;gt;-t&amp;lt;/tt&amp;gt;-optiolla:&lt;br /&gt;
&lt;br /&gt;
 cpio -t &amp;lt; proj1.cpio&lt;br /&gt;
&lt;br /&gt;
==Lisätietoja==&lt;br /&gt;
&lt;br /&gt;
*man cpio&lt;br /&gt;
*info cpio&lt;br /&gt;
&lt;br /&gt;
==Katso myös==&lt;br /&gt;
[[Tar]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Pakkausohjelmat]]&lt;br /&gt;
[[Luokka:Komentorivin perustyökalut]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Portaali:Ohjelmistokehitys&amp;diff=35099</id>
		<title>Portaali:Ohjelmistokehitys</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Portaali:Ohjelmistokehitys&amp;diff=35099"/>
		<updated>2011-09-24T17:56:45Z</updated>

		<summary type="html">&lt;p&gt;Jem: Lisätty Qt Creator.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Linux on erinomainen alusta ohjelmoijalle. Tarjolla on laadukkaita kääntäjiä lukuisille eri ohjelmointikielille, paljon vapaita lisäkirjastoja ja vapaita virheenhallintatyökaluja.&lt;br /&gt;
&lt;br /&gt;
Tässä wikissä ohjelmistokehitystä käsitellään mm. seuraavilla sivuilla:&lt;br /&gt;
&lt;br /&gt;
== Artikkeleita ==&lt;br /&gt;
*Kääntäjiä ja tulkkeja: [[GCC]] (mm. [[C]] ja [[C plus plus|C++]]), [[GCJ]] ([[Java]]), [[Mono]] (.NET), [[Python]], [[FreePascal]]&lt;br /&gt;
*Kehitysympäristöjä: [[Eclipse]], [[KDevelop]], [[Lazarus]], [[NetBeans]], [[Quanta plus]], [[Qt Creator]]&lt;br /&gt;
*Projektinhallinta: [[Make]], [[Cmake]], [[Patch]], [[Diff]]&lt;br /&gt;
*Virheenetsintä: [[Cppcheck]], [[Gdb]], [[Valgrind]]&lt;br /&gt;
*Kääntäminen suomeksi, monikieliset ohjelmat: [[Gettext]], [[Poedit]], [[Kotoistus]]&lt;br /&gt;
*[[Versionhallintajärjestelmä|Versionhallintajärjestelmiä]]: [[CVS]], [[Subversion]], [[Darcs]], [[Git]], [[Mercurial]]&lt;br /&gt;
*Kirjastoja: [[OpenGL]], [[SDL]], [[Ncurses]], [[GTK]], [[Qt]], [[Readline]]&lt;br /&gt;
&lt;br /&gt;
== Luokkia ==&lt;br /&gt;
*[[:Luokka:Kehitystyökalut|Kehitystyökalut]]&lt;br /&gt;
*[[:Luokka:Kirjastot|Kirjastot]]&lt;br /&gt;
&lt;br /&gt;
==Aiheesta muualla==&lt;br /&gt;
* [http://gambas.sourceforge.net/en/main.html Gambas] - on avoimen lähdekoodin kehitysympäristö, joka perustuu [[Basic]] tulkkiin. Vähän niin kuin Visual Basic™, mutta ei klooni.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Kehitystyökalut]]&lt;br /&gt;
[[Luokka:Portaalit]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Portaali:Ohjelmistokehitys&amp;diff=35097</id>
		<title>Portaali:Ohjelmistokehitys</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Portaali:Ohjelmistokehitys&amp;diff=35097"/>
		<updated>2011-09-23T12:16:27Z</updated>

		<summary type="html">&lt;p&gt;Jem: /* Artikkeleita */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Linux on erinomainen alusta ohjelmoijalle. Tarjolla on laadukkaita kääntäjiä lukuisille eri ohjelmointikielille, paljon vapaita lisäkirjastoja ja vapaita virheenhallintatyökaluja.&lt;br /&gt;
&lt;br /&gt;
Tässä wikissä ohjelmistokehitystä käsitellään mm. seuraavilla sivuilla:&lt;br /&gt;
&lt;br /&gt;
== Artikkeleita ==&lt;br /&gt;
*Kääntäjiä ja tulkkeja: [[GCC]] (mm. [[C]] ja [[C plus plus|C++]]), [[GCJ]] ([[Java]]), [[Mono]] (.NET), [[Python]], [[FreePascal]]&lt;br /&gt;
*Kehitysympäristöjä: [[Eclipse]], [[KDevelop]], [[Lazarus]], [[NetBeans]], [[Quanta plus]]&lt;br /&gt;
*Projektinhallinta: [[Make]], [[Cmake]], [[Patch]], [[Diff]]&lt;br /&gt;
*Virheenetsintä: [[Cppcheck]], [[Gdb]], [[Valgrind]]&lt;br /&gt;
*Kääntäminen suomeksi, monikieliset ohjelmat: [[Gettext]], [[Poedit]], [[Kotoistus]]&lt;br /&gt;
*[[Versionhallintajärjestelmä|Versionhallintajärjestelmiä]]: [[CVS]], [[Subversion]], [[Darcs]], [[Git]], [[Mercurial]]&lt;br /&gt;
*Kirjastoja: [[OpenGL]], [[SDL]], [[Ncurses]], [[GTK]], [[Qt]], [[Readline]]&lt;br /&gt;
&lt;br /&gt;
== Luokkia ==&lt;br /&gt;
*[[:Luokka:Kehitystyökalut|Kehitystyökalut]]&lt;br /&gt;
*[[:Luokka:Kirjastot|Kirjastot]]&lt;br /&gt;
&lt;br /&gt;
==Aiheesta muualla==&lt;br /&gt;
* [http://gambas.sourceforge.net/en/main.html Gambas] - on avoimen lähdekoodin kehitysympäristö, joka perustuu [[Basic]] tulkkiin. Vähän niin kuin Visual Basic™, mutta ei klooni.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Kehitystyökalut]]&lt;br /&gt;
[[Luokka:Portaalit]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Jaetut_kirjastot&amp;diff=35096</id>
		<title>Jaetut kirjastot</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Jaetut_kirjastot&amp;diff=35096"/>
		<updated>2011-09-23T12:05:36Z</updated>

		<summary type="html">&lt;p&gt;Jem: Pientä viilausta.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Aliohjelmakirjastolla, tai lyhyemmin kirjastolla, tarkoitetaan&lt;br /&gt;
kokoelmaa yleishyödyllisiä aliohjelmia tai funktioita, jotka on koottu&lt;br /&gt;
yhteen. Perusajatuksena on, ettei jokaista kehitettävää uutta ohjelmaa&lt;br /&gt;
varten tarvitsisi keksiä pyörää uudestaan, vaan ohjelman tekijä voi&lt;br /&gt;
hyödyntää jo olemassa olevia aliohjelmia. Tällöin ohjelman tekijä voi&lt;br /&gt;
nojautua olemassa olevaan alemman tason toiminnallisuuteen, kuten&lt;br /&gt;
syöttö- ja tulostusrutiineihin, ja keskittyä kirjoittamaan omalle&lt;br /&gt;
ohjelmalle olennaista koodia.&lt;br /&gt;
&lt;br /&gt;
Jaettu kirjasto on aliohjelmakirjaston muunnelma, jossa kirjasto on talletettu erilliseen tiedostoon, jolloin sama kirjasto on jaettavissa monen ohjelman kesken.&lt;br /&gt;
&lt;br /&gt;
==Ei-jaetut kirjastot==&lt;br /&gt;
&lt;br /&gt;
Aliohjelmakirjasto voi olla kahdessa eri muodossa, riippuen&lt;br /&gt;
käyttötavasta: joko staattisena ei-jaettuna kirjastona tai jaettuna&lt;br /&gt;
kirjastona. Ei-jaettu kirjasto koostuu joukosta,&lt;br /&gt;
tyypillisesti [[C]]-kielisestä lähdekoodista käännetyistä&lt;br /&gt;
objektikooditiedostoista, jotka on koottu yhteen&lt;br /&gt;
arkistotiedostoon. Tällaisen tiedoston pääte on &amp;lt;tt&amp;gt;.a&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Kun ohjelma rakennetaan käyttäen ei-jaettua kirjastoa, ohjelman&lt;br /&gt;
linkkausvaiheessa kerrotaan mistä arkistotiedostosta sen pitä etsiä&lt;br /&gt;
kirjastossa olevia aliohjelmia. Linkkeri kopioi arkistotiedostosta&lt;br /&gt;
tarvittavat osat, ja liittää ne ohjelman lopulliseen&lt;br /&gt;
suoritustiedostoon.&lt;br /&gt;
&lt;br /&gt;
Ei-jaetuissa kirjastoissa on haittapuolensa, jotka korostuvat sitä&lt;br /&gt;
mukaa kuin kirjastojen koot ja lukumäärä kasvavat. Koska linkkeri&lt;br /&gt;
liittää ohjelman rakennusvaiheessa ei-jaetusta kirjastosta tarvittavat&lt;br /&gt;
aliohjelmat, on jokaisessa kirjastoa käyttävässä ohjelmassa&lt;br /&gt;
aliohjelmista omat kopionsa. Tämä johtaa siihen, että ohjelmatiedostojen&lt;br /&gt;
koot kasvavat, mutta ennen kaikkea se vaikuttaa haitallisesti tietokoneen&lt;br /&gt;
keskusmuistin kulutukseen moniajojärjestelmässä, jossa on useampia&lt;br /&gt;
ohjelmia ajossa samanaikaisesti. Tilannetta helpottaa hieman se, että&lt;br /&gt;
älykäs linkkeri kopioi ainoastaan tarvittavat aliohjelmat, ei koko&lt;br /&gt;
kirjastoa, mutta käytännössä säästö ei ole kovin suuri.&lt;br /&gt;
&lt;br /&gt;
==Jaetut kirjastot==&lt;br /&gt;
&lt;br /&gt;
Edellä mainittua kirjastojen kopioitumisongelmaa ratkaisemaan on&lt;br /&gt;
kehitetty niin sanotut jaetut kirjastot. Jaettuja kirjastoja&lt;br /&gt;
käytettäessä ei kirjaston aliohjelmia liitetä osaksi suoritettavaa&lt;br /&gt;
ohjelmatiedostoa, vaan ohjelmaan liitetään vain viittaus jaetun&lt;br /&gt;
kirjaston sisältävään tiedostoon. Kun ohjelma suoritetaan, kirjasto&lt;br /&gt;
ladataan muistiin.&lt;br /&gt;
&lt;br /&gt;
Linuxin muistinhallinassa on ominaisuus, joka mahdollistaa&lt;br /&gt;
keskusmuistisivujen jakamisen [[Prosessi|prosessien]] kesken. Prosesseilla on&lt;br /&gt;
erilliset muistiavaruudet, jotka on suojattu toisiltaan,&lt;br /&gt;
mutta on mahdollista järjestää asiat niin, että yksi fyysinen&lt;br /&gt;
muistisivu näkyy useamman prosessin muistiavaruudessa. Tällä&lt;br /&gt;
mekanismilla saadaan ratkaistuksi toinenkin ei-jaettujen kirjastojen&lt;br /&gt;
ongelma, eli koodin kopioituminen keskusmuistissa.&lt;br /&gt;
&lt;br /&gt;
Myös kirjastojen määrittelemä data on jaettu prosessien&lt;br /&gt;
kesken. Kirjaston määrittelemät muuttujat eivät kuitenkaan ole&lt;br /&gt;
prosesseille yhteisiä, eli kun yhdessä prosessissa muutetaan muuttujan&lt;br /&gt;
arvoa, muutos ei saa näkyä toisessa prosessissa. Tämä on ratkaistu niin&lt;br /&gt;
sanotulla Copy-on-write -mekanismilla, jossa prosessille joka muuttaa&lt;br /&gt;
muuttujan arvoa, luodaan oma kopionsa musitisivusta, jossa muuttuja&lt;br /&gt;
sijaitsee.&lt;br /&gt;
&lt;br /&gt;
Huomaa, että mekanismi ei suoranaisesti liity Linuxin jaettuihin&lt;br /&gt;
kirjastoihin, vaan on Linuxin ytimen ominaisuus jota hyödynnetään&lt;br /&gt;
jaettujen kirjastojen käsittelyssä.&lt;br /&gt;
&lt;br /&gt;
==Jaettujen kirjastojen kehitys Linuxissa==&lt;br /&gt;
&lt;br /&gt;
Alunperin Linuxissa ei ollut tukea jaetuille kirjastoille. Linuxin&lt;br /&gt;
alkuvuosina käytettiin Unixin perintönä niin sanottua&lt;br /&gt;
&amp;quot;a.out&amp;quot;-tiedostomuotoa suoritettaville ohjelmille.&lt;br /&gt;
a.out-tiedostomuodolle suunniteltiin Linuxia varten mekanismi jaettujen kirjastojen&lt;br /&gt;
käyttämiseksi, joka olikin käytössä jonkin aikaa. Tämän mekanismin&lt;br /&gt;
suurin puute oli se, että kirjastot oli rakennettu ladattaviksi&lt;br /&gt;
kiinteisiin osoitteisiin, joita ei pystytty enää muuttamaan&lt;br /&gt;
latausvaiheessa. Tämän tyyppisiä jaettuja kirjastoja sanotaan&lt;br /&gt;
&#039;&#039;staattisiksi jaetuiksi kirjastoiksi&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Latausosoitteiden joustamattomuuden takia samaan prosessiin ei voitu&lt;br /&gt;
ladata päällekkäisiä muistiosoitteita käyttäviä kirjastoja.&lt;br /&gt;
Päällekkäisyyksien välttämiseksi Linuxin jaetuista kirjastoista&lt;br /&gt;
pidettiin keskitettyä rekisteriä, jossa niille allokoitiin jokaiselle&lt;br /&gt;
omat käytettävissä olevat muistiavaruudet.&lt;br /&gt;
&lt;br /&gt;
==Nykyaikaiset jaetut kirjastot==&lt;br /&gt;
&lt;br /&gt;
Linux siirtyi versiosta 1.2 käyttämään uudempaa ELF (Executable and&lt;br /&gt;
Linkable Format) -tiedostomuotoa suoritettaville ohjelmille ja&lt;br /&gt;
kirjastoille. Tässä formaatissa on otettu paremmin huomioon jaettujen&lt;br /&gt;
kirjastojen asettamat vaatimukset. ELF-formaattissa on tuki&lt;br /&gt;
ns. relokoinnille, jonka ansiosta kirjaston voi ladata alkaen mistä&lt;br /&gt;
tahansa vapaana olevasta muistiosoitteesta. Tämä vaatii tosin jonkin verran&lt;br /&gt;
ylimääräistä työtä sekä kirjaston latausvaiheessa että ohjelman ajon&lt;br /&gt;
aikana.&lt;br /&gt;
&lt;br /&gt;
===Jaettujen kirjastojen versionumerot===&lt;br /&gt;
&lt;br /&gt;
Käytäntönä on, että jaetun kirjaston versionumero koostuu kahdesta&lt;br /&gt;
osasta, ns. major- ja minor-versionumerot. Major-numeroa muutetaan,&lt;br /&gt;
kun kirjasto on olennaisesti erilainen kuin edellinen&lt;br /&gt;
versio. Olennaisella muutoksella tarkoitetaan, että esimerkiksi&lt;br /&gt;
funktion kutsutapa muuttuu, tai että kirjaston aliohjelmat toimivat&lt;br /&gt;
eri tavalla kuin ennen. Minor-numero muuttuu tyypillisesti kun&lt;br /&gt;
kirjastossa on korjattu virhe. (Toki kirjasto toimii silloinkin eri&lt;br /&gt;
tavalla kuin sen edellinen versio, mutta tässä tapauksessa se on&lt;br /&gt;
korjattu toimivaksi siten kuin se on dokumentoitu toimivan.)&lt;br /&gt;
&lt;br /&gt;
Kun jaettu kirjasto asennetaan järjestelmään, kirjaston sisältävän&lt;br /&gt;
tiedoston nimeksi annetaan nimi joka on muotoa&lt;br /&gt;
&amp;lt;tt&amp;gt;libfoo.so.&#039;&#039;M&#039;&#039;.&#039;&#039;N&#039;&#039;&amp;lt;/tt&amp;gt;. M on tässä edellä mainittu major-versionumero&lt;br /&gt;
ja N vastaavasti minor-versionumero. Tiedoston pääte .so tulee&lt;br /&gt;
sanoista shared object, eli jaettu objektitiedosto. Samaan hakemistoon&lt;br /&gt;
luodaan symbolinen linkki, jonka nimi on libfoo.so.&#039;&#039;M&#039;&#039;, joka osoittaa&lt;br /&gt;
kirjaston sisältämään tiedostoon. Esimerkki:&lt;br /&gt;
&lt;br /&gt;
 -rwxr-xr-x 1 root root 14616 Jul 24 19:34 libdl-2.13.so&lt;br /&gt;
 lrwxrwxrwx 1 root root    13 Jul 24 19:36 libdl.so.2 -&amp;gt; libdl-2.13.so&lt;br /&gt;
&lt;br /&gt;
===Versioidut symbolit===&lt;br /&gt;
&lt;br /&gt;
Edellä mainittu ei kuitenkaan ole koko totuus jaettujen kirjastojen&lt;br /&gt;
versioinnista. Linuxin jaetut kirjastot voivat sisältää myös&lt;br /&gt;
&#039;&#039;versioituja symboleja&#039;&#039;, joiden avulla sama kirjasto voi sisältää&lt;br /&gt;
monta eri versiota samannimisestä aliohjelmasta. Vanhempi ohjelma,&lt;br /&gt;
joka on rakennettu kirjaston vanhempaa versiota varten, löytää&lt;br /&gt;
kirjastosta vanhemman version aliohjelmasta, kun taas uudempi ohjelma&lt;br /&gt;
voi automaattisesti hyödyntää uutta versiota aliohjelmasta.&lt;br /&gt;
&lt;br /&gt;
Jaetut kirjastot voivat olla käyttämättä versioituja symboleja,&lt;br /&gt;
kirjaston tekijän valinnan mukaan. Yksi esimerkki kirjastosta joka&lt;br /&gt;
käyttää niitä on standardikirjasto &amp;lt;tt&amp;gt;[[libc]]&amp;lt;/tt&amp;gt;. Periaate on se, että&lt;br /&gt;
kaikki kirjaston aliohjelmat, jotka säilyvät muuttumattomina versiosta&lt;br /&gt;
toiseen, säilyttävät vanhan versionumeronsa. Kun kirjaston aliohjelmaa&lt;br /&gt;
muutetaan siten, ettei se ole enää yhteensopiva vanhan version kanssa,&lt;br /&gt;
kirjastoon lisätään uudella versionumerolla varustettu aliohjelma&lt;br /&gt;
vanhan rinnalle.&lt;br /&gt;
&lt;br /&gt;
Kun ohjelma linkataan &amp;lt;tt&amp;gt;libc&amp;lt;/tt&amp;gt;:llä, kirjastosta otetaan lähes poikkeuksetta&lt;br /&gt;
käyttöön uusin versio aliohjelmista. Kun suoritetaan vanhaa ohjelmaa,&lt;br /&gt;
joka on rakennusvaiheessa linkattu vanhempaa &amp;lt;tt&amp;gt;libc&amp;lt;/tt&amp;gt;:tä&lt;br /&gt;
käyttäen, se on myös yhteensopiva uuden jaetun kirjaston kanssa, sillä&lt;br /&gt;
uudesta kirjastosta löytyy myös vanhemmat versiot&lt;br /&gt;
aliohjelmista. Uudella &amp;lt;tt&amp;gt;libc&amp;lt;/tt&amp;gt;:llä linkattu ohjelmatiedosto&lt;br /&gt;
&#039;&#039;&#039;saattaa&#039;&#039;&#039; myös toimia siirrettynä ympäristöön, jossa on vanhempi&lt;br /&gt;
versio jaetusta kirjastosta. Tämä edellyttää kuitenkin, että ohjelma&lt;br /&gt;
ei käytä aliohjelmaa, josta on uudempi versio kirjastossa jota vasten&lt;br /&gt;
se on rakennettu. Nyrkkisääntönä on siis, että vanhempi ohjelma on&lt;br /&gt;
yhteensopiva uudemman kirjaston kanssa, mutta uudempi ohjelma ei&lt;br /&gt;
välttämättä toimi vanhemman kirjaston kanssa.&lt;br /&gt;
&lt;br /&gt;
Tarkastellaan edellistä esimerkin valossa. &amp;lt;tt&amp;gt;libc&amp;lt;/tt&amp;gt;-kirjasto&lt;br /&gt;
määrittelee &amp;lt;tt&amp;gt;realpath&amp;lt;/tt&amp;gt;-funktion:&lt;br /&gt;
&lt;br /&gt;
 char *realpath(const char *path, char *resolved_path);&lt;br /&gt;
&lt;br /&gt;
[[GNU]] Libc -kirjaston versiossa 2.3 muutettiin funktion toimintaa siten,&lt;br /&gt;
että resolved_path-parametrin arvoksi hyväksytään myös NULL, jolloin&lt;br /&gt;
funktio itse varaa tarvittavan muistin ja palauttaa sen funktion&lt;br /&gt;
paluuarvona.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;readelf&amp;lt;/tt&amp;gt;-ohjelmalla voi luetella kirjaston aliohjelmien nimet:&lt;br /&gt;
&lt;br /&gt;
 readelf -s /lib/libc.so.6&lt;br /&gt;
&lt;br /&gt;
Tulosteesta löytyy kaksi &amp;lt;tt&amp;gt;realpath&amp;lt;/tt&amp;gt;-funktiota:&lt;br /&gt;
&lt;br /&gt;
 1167: 000000000010e3c0    33 FUNC    GLOBAL DEFAULT   11 realpath@GLIBC_2.2.5&lt;br /&gt;
 1168: 000000000003d210  1213 FUNC    GLOBAL DEFAULT   11 realpath@@GLIBC_2.3&lt;br /&gt;
&lt;br /&gt;
Ohjelma, joka on tehty vanhemmalla &amp;lt;tt&amp;gt;libc&amp;lt;/tt&amp;gt;:n versiolla kuin 2.3,&lt;br /&gt;
sisältää viittauksen 2.2.5-versioon funktiosta, uudemmat ohjelmat&lt;br /&gt;
käyttävät versiota 2.3.&lt;br /&gt;
&lt;br /&gt;
===Jaettua kirjastoa käyttävän ohjelman lataus===&lt;br /&gt;
&lt;br /&gt;
Kun uusi ohjelma käynnistetään, käyttöjärjestelmän ydin lataa ohjelman&lt;br /&gt;
keskusmuistiin. Tarkemmin sanottuna, latausta ei tehdä vielä tässä&lt;br /&gt;
vaiheessa, vaan tehdään kuvaus ([[mmap]]) ohjelmatiedostosta prosessin&lt;br /&gt;
muistiavaruuteen. Lataus massamuistilta keskumuistiin tapahtuu sitä&lt;br /&gt;
mukaa kuin ohjelman suoritus etenee; jos ohjelman kontrolli siirtyy&lt;br /&gt;
muistisivulle, joka on &amp;quot;tyhjä&amp;quot;, eli jonka sisältöä ei ole ladattu&lt;br /&gt;
massamuistilta, tapahtuu ns. &#039;&#039;page fault&#039;&#039;. Tällöin ytimen&lt;br /&gt;
poikkeuskäsittelijä lataa sivun sisällön ohjelmatiedostosta ennen kuin&lt;br /&gt;
suoritus voi jatkua.&lt;br /&gt;
&lt;br /&gt;
Jos ohjelma käyttää ainakin yhtä jaettua kirjastoa, ohjelmaa ei vielä&lt;br /&gt;
käynnistetä tässä vaiheessa. Sen sijaan käyttöjärjestelmän ydin lukee&lt;br /&gt;
ELF-ohjelmatiedostosta dynaamisen linkkerin nimen. Dynaaminen linkkeri&lt;br /&gt;
on jaetun kirjaston muodossa oleva ohjelma, jonka tehtävänä on ladata&lt;br /&gt;
jaetut kirjastot muistiin. Dynaamisen linkkerin nimi on kerrottu&lt;br /&gt;
ELF-tiedoston .interp-sektiossa (sanasta &amp;quot;interpreter&amp;quot;, eli tulkki),&lt;br /&gt;
ja se on sinne kirjoitettu ohjelman rakennusvaiheessa. Ydin lataa myös&lt;br /&gt;
dynaamisen linkkerin prosessin muistiavaruuteen ja siirtää ohjelman&lt;br /&gt;
suorituksen siihen. Dynaamisen linkkerin nimi riippuu käytettävästä&lt;br /&gt;
prosessoriarkkitehtuurista, 64-bittisessä x86_64-koneessa se sijaitsee&lt;br /&gt;
tiedostossa &amp;lt;tt&amp;gt;/lib64/ld-linux-x86-64.so.2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Syy miksi näin tehdään on se, että ohjelma ei ole vielä ajokelpoinen&lt;br /&gt;
ilman tarvitsemiaan jaettuja kirjastoja. Yksinkertaisimmankin&lt;br /&gt;
C-kielellä kirjoitetun ohjelman suoritys tyssäisi heti ensimmäiseen&lt;br /&gt;
&amp;lt;tt&amp;gt;printf&amp;lt;/tt&amp;gt;-funktion kutsuun. Tämän ongelman olisi tietysti voinut&lt;br /&gt;
ratkaista siten, että dynaamisen linkkerin toiminnallisuus olisi&lt;br /&gt;
sisällytetty ytimeen ja ydin olisi ladannut sekä ohjelman että&lt;br /&gt;
ohjelman tarvitsemat kirjastot muistiin ennen suorituksen alkua. Tätä&lt;br /&gt;
ei kuitenkaan haluta tehdä, sillä ydin halutaan pitää mahdollisimman&lt;br /&gt;
pienenä ja toiminnallisuus, jota ytimessä ei tarvita, siirretään pois&lt;br /&gt;
sieltä.&lt;br /&gt;
&lt;br /&gt;
===Miten dynaaminen linkkeri löytää jaetut kirjastot?===&lt;br /&gt;
&lt;br /&gt;
Dynaaminen linkkeri etsii dynaamisia jaettuja kirjastoja seuraavassa&lt;br /&gt;
järjestyksessä:&lt;br /&gt;
&lt;br /&gt;
# Jos ohjelman ELF-tiedosto sisältää &#039;&#039;DT_RPATH&#039;&#039;-sektion, se sisältää listan hakemistoja, joista dynaaminen linkkeri etsii jaettuja kirjastoja (tätä mekanismia ei enää suositella käytettäväksi).&lt;br /&gt;
# Jos [[ympäristömuuttuja]] LD_LIBRARY_PATH on määritelty, ja se sisältää kasoispisteillä erotettuja hakemistojen nimiä, kirjastoja etsitään näistä hakemistoista.&lt;br /&gt;
# Jos ohjelman ELF-tiedosto sisältää &#039;&#039;DT_RUNPATH&#039;&#039;-sektion, se sisältää listan hakemistoja, joista dynaaminen linkkeri etsii jaettuja kirjastoja.&lt;br /&gt;
# Kirjastoa etsitään &amp;lt;tt&amp;gt;/etc/ld.so.cache&amp;lt;/tt&amp;gt;-tiedostosta. Tämä on normaali tapa, jolla dynaaminen linkkeri paikallistaa jaetut kirjastot.&lt;br /&gt;
# Viimeisenä oljenkortena dynaaminen linkkeri etsii kirjastoja hakemistoista /lib ja /usr/lib (ellei ohjelmaa ole linkattu &amp;lt;tt&amp;gt;-z nodeflib&amp;lt;/tt&amp;gt;-optiolla).&lt;br /&gt;
&lt;br /&gt;
LD_LIBRARY_PATH-muuttujaa ei turvallisuussyistä huomioida, jos suoritettava ohjelma on [[suid]]-binääri. Huomaa, että kirjastoa oletusarvoisesti &#039;&#039;ei&#039;&#039; etsitä&lt;br /&gt;
* hakemistosta, jossa ohjelma on käynnistetty&lt;br /&gt;
* hakemistosta, jossa ohjelmatiedosto sijaitsee&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/etc/ld.so.cache&amp;lt;/tt&amp;gt;-tiedosto on binääritiedosto, joka sisältää&lt;br /&gt;
kuvauksia kirjaston nimestä kirjaston sisältävän tiedoston&lt;br /&gt;
absoluuttiseen tiedostopolkuun. Kirjaston virallinen nimi on kerrottu&lt;br /&gt;
&#039;&#039;soname&#039;&#039;-kentässä kirjaston sisällä olevassa&lt;br /&gt;
&amp;lt;tt&amp;gt;.dynamic&amp;lt;/tt&amp;gt;-sektiossa. Tämän nimen ei tarvitse olla sama kuin&lt;br /&gt;
kirjaston sisältämän tiedoston nimi. Muissa tapauksissa kuin kohdassa&lt;br /&gt;
4 yllä olevassa hakujärjestyksessä käytetään kuitenkin tiedoston nimeä&lt;br /&gt;
samannimisen kirjaston paikallistamiseen.&lt;br /&gt;
&lt;br /&gt;
Aina kun järjestelmään on asennettu uusi jaettu kirjasto (joko&lt;br /&gt;
kokonaan uusi, tai uusi versio olemassaolevasta kirjastosta), pitää&lt;br /&gt;
suorittaa &amp;lt;tt&amp;gt;[[ldconfig]]&amp;lt;/tt&amp;gt;-ohjelma. Tämä ohjelma päivittää yllä&lt;br /&gt;
mainitun &amp;lt;tt&amp;gt;/etc/ld.so.cache&amp;lt;/tt&amp;gt;-tiedoston ajan tasalle, ja&lt;br /&gt;
huolehtii lisäksi siitä, että aiemmin mainitut symboliset linkit&lt;br /&gt;
osoittavat viimeisimpään versioon kirjastosta.&lt;br /&gt;
&amp;lt;tt&amp;gt;ldconfig&amp;lt;/tt&amp;gt;-ohjelma lukee luettelon hakemistoista, joista&lt;br /&gt;
kirjastoja etsitään, tiedostosta &amp;lt;tt&amp;gt;/etc/ld.so.conf&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Huom! Jos kirjastoja asennetaan jakelun ohjelmapaketeista, kaikesta tästä on tietenkin huolehdittu ja tapahtuu automaattisesti, eikä &amp;lt;tt&amp;gt;ldconfig&amp;lt;/tt&amp;gt;-ohjelmaa ole tarvetta suorittaa &amp;quot;käsin&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Jaettujen kirjastojen lataaminen ohjelmakoodista==&lt;br /&gt;
&lt;br /&gt;
Dynaamisen jaetun kirjaston pystyy myös lataamaan ohjelmasta käsin,&lt;br /&gt;
ajon aikana. Tämä tapahtuu &amp;lt;tt&amp;gt;dlopen&amp;lt;/tt&amp;gt;-funktiolla, joka palauttaa&lt;br /&gt;
onnistuneen kutsun tuloksena kahvan jaettuun kirjastoon. Kahvaa&lt;br /&gt;
annetaan &amp;lt;tt&amp;gt;dlsym&amp;lt;/tt&amp;gt;-funktiolle, joka palauttaa osoitteen, johon&lt;br /&gt;
haluttu symboli on ladattu muistiin. Lisätietoja &amp;lt;tt&amp;gt;dlopen&amp;lt;/tt&amp;gt;:n&lt;br /&gt;
manuaalisivulla.&lt;br /&gt;
&lt;br /&gt;
==Lisätietoja==&lt;br /&gt;
&lt;br /&gt;
Ohjelman käyttämistä dynaamisista jaetuista kirjastoista saa tietoa&lt;br /&gt;
komennolla &amp;lt;tt&amp;gt;[[ldd]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Esimerkki:&lt;br /&gt;
&lt;br /&gt;
 ldd /bin/ls&lt;br /&gt;
&lt;br /&gt;
 linux-vdso.so.1 =&amp;gt;  (0x00007fff5ddff000)&lt;br /&gt;
 librt.so.1 =&amp;gt; /lib64/librt.so.1 (0x00007f1e64e7c000)&lt;br /&gt;
 libacl.so.1 =&amp;gt; /lib64/libacl.so.1 (0x00007f1e64c73000)&lt;br /&gt;
 libc.so.6 =&amp;gt; /lib64/libc.so.6 (0x00007f1e648ed000)&lt;br /&gt;
 libpthread.so.0 =&amp;gt; /lib64/libpthread.so.0 (0x00007f1e646d0000)&lt;br /&gt;
 /lib64/ld-linux-x86-64.so.2 (0x00007f1e65085000)&lt;br /&gt;
 libattr.so.1 =&amp;gt; /lib64/libattr.so.1 (0x00007f1e644cb000)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;ldd&amp;lt;/tt&amp;gt;-komento myös ilmoittaa, jos jokin ohjelman tarvitsemista&lt;br /&gt;
kirjastoista ei löydy.&lt;br /&gt;
&lt;br /&gt;
Muita kiinnostavia ohjelmia, joilla voi tutkia kirjastoja,&lt;br /&gt;
objektitiedostoja ja ohjelmia ovat &amp;lt;tt&amp;gt;[[readelf]]&amp;lt;/tt&amp;gt; ja&lt;br /&gt;
&amp;lt;tt&amp;gt;[[objdump]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Käsitteet]]&lt;br /&gt;
[[Luokka:Järjestelmä]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Ty%C3%B6p%C3%B6yt%C3%A4asennuksen_viritt%C3%A4minen&amp;diff=35095</id>
		<title>Työpöytäasennuksen virittäminen</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Ty%C3%B6p%C3%B6yt%C3%A4asennuksen_viritt%C3%A4minen&amp;diff=35095"/>
		<updated>2011-09-23T11:20:59Z</updated>

		<summary type="html">&lt;p&gt;Jem: Eläimellisyyttä vähennetty.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tällä sivulla on esitelty parhaat käytännöt mitä tyypillisen aloittelevan Linux-käyttäjän kannattaa tehdä Linuxin perusasennuksen jälkeen. Ohjeet on tehty ajatellen Ubuntu 10.04 LTS -käyttäjiä, mikä on tällä hetkellä suositelluin jakelu ja versio aloittelijoille (toki muitakin jakeluita ja versioita kannattaa kokeilla jos on aikaa).&lt;br /&gt;
&lt;br /&gt;
== Suomalaiset verkkopalvelut ==&lt;br /&gt;
&lt;br /&gt;
[[Yle Areena]] ja [[Ruutu.fi]] vaativat toimiakseen [[Adobe Flash]]in. Sen asennus tapahtuu ohjatusti kun käy sivulla http://get.adobe.com/flashplayer/ ja valitsee asennusvaihtoehdon [apt:adobe-flashplugin?channel=$distro-partner APT for Ubuntu 10.04] (joka nykyisin on toteutettu pakettihallintaa oikeaoppisesti hyödyntäen Ubuntu partner -ohjelmalähteen kautta).&lt;br /&gt;
&lt;br /&gt;
[[MTV3 Katsomo.fi]] ja  [[Sub.fi]] käyttävät Silverlightia, jonka Linux-versio on nimeltään [[Moonlight]]. Sen asennus tapahtuu [http://www.go-mono.com/moonlight/download.aspx Moonlight-sivuston] kautta ja on toteutettu Firefox-laajennuksena joka toimii kaikilla Linuxeilla jakelusta riippumatta.&lt;br /&gt;
&lt;br /&gt;
== Automaattiset tietoturvapäivitykset ==&lt;br /&gt;
&lt;br /&gt;
Avaa valikosta &#039;&#039;Järjestelmä &amp;gt; Hallinta &amp;gt; Ohjelmalähteet&#039;&#039; ja edelleen välilehdestä &#039;&#039;Päivitykset&#039;&#039; valitse &#039;&#039;Asenna turvallisuuspäivitykset kysymättä&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Näytön lukitus pois päältä ==&lt;br /&gt;
&lt;br /&gt;
Vakioasetuksilla Ubuntu aktivoi näytönsäästäjän ja lukitsee näytön viiden minuutin käyttämättömyyden jälkeen. Tämä voi olla kotikäytössä ärsyttävää, joten ne kannattaa kytkeä pois valitsemalla &#039;&#039;Järjestelmä &amp;gt; Asetukset &amp;gt; Näytönsäästäjä&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Ulkoasun vaihtaminen miellyttävämmäksi ==&lt;br /&gt;
&lt;br /&gt;
Ubuntun vakioulkoasu on melko synkkä eikä välttämättä kaikille mieluisa. Ulkoasun teemaa, taustakuvaa ja jopa ikkunoiden sulkupainikkeen sijaintia vasemmasta yläkulmasta oikeaan yläkulmaan voi vaihtaa valitsemalla &#039;&#039;Järjestelmä &amp;gt; Asetukset &amp;gt; Ulkoasu&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Ikkunapainikkeet tutusti oikealle ===&lt;br /&gt;
&lt;br /&gt;
Ikkunapainikkeet saa siirrettyä tutustu oikealle ajamalla päätteessä (löytyy &#039;&#039;Sovellukset &amp;gt; Apuohjelmat &amp;gt; Pääte&#039;&#039;)&lt;br /&gt;
 gconftool-2 -s /apps/metacity/general/button_layout -t string menu:minimize,maximize,close&lt;br /&gt;
&lt;br /&gt;
== Käyttöjärjestelmän kielivaihtoehtojen säätö ==&lt;br /&gt;
&lt;br /&gt;
Jos asennusvaiheessa unohdit valita suomen käyttöliittymäsi kieleksi, tai haluat asennuksen jälkeen lisää kielivaihtoehtoja esimerksi muita käyttäjiä varten, voi tehdä sen helposti valitsemalla valikosta &#039;&#039;Järjestelmä &amp;gt; Ylläpito &amp;gt; Kieliasetukset&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Suomenkielinen oikoluku Mozilla-ohjelmiin ===&lt;br /&gt;
&lt;br /&gt;
Ubuntun kielipaketti ei vielä sisällä oikolukua Mozilla Firefoxiin, joten siihen täytyy erikseen hakea [https://addons.mozilla.org/fi/firefox/addon/finnish-spellchecker/ oikolukulaajennus Mozillan sivustolta]. Asennuksen jälkeen käynnistä Firefox uudestaan kahdesti, jotta oikoluku olisi käytettävissä. Oikolukulaajennus ei toimi Firefoxin versioissa 5 ja 6 (tilanne 2011-09-23).&lt;br /&gt;
&lt;br /&gt;
Jos näyttää siltä, että oikolukuohjelma alleviivaa kaikki sanat, saattaa kyse olla siitä, että väärä kielivalinta on käytössä. Suomenkielen saa käyttöön painamalla hiiren oikeaa nappia allevivatun sanan päällä ja edelleen ponnahdusvalikosta valitsemalla &#039;&#039;Kielet &amp;gt; Suomi (Voikko)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Jos kirjoitettavan tekstin kieltä vastaavaa oikolukijaa ei ole saatavilla, ja alleviivaukset häiritsevät, oikoluvun saa oletusarvoisesti pois päältä muokkaamalla Firefoxin asetuksia seraavasti:&lt;br /&gt;
&lt;br /&gt;
* kirjoita Firefoxin osoitekenttään &amp;lt;tt&amp;gt;about: config&amp;lt;/tt&amp;gt;&lt;br /&gt;
* etsi listasta kohta &amp;lt;tt&amp;gt;layout.spellcheckDefault&amp;lt;/tt&amp;gt;&lt;br /&gt;
* muuta asetus arvoon 0 kaksoisklikkaamalla sitä&lt;br /&gt;
&lt;br /&gt;
== Salasanan vaihtaminen ==&lt;br /&gt;
&lt;br /&gt;
Käyttäjien salasanat ovat tärkein osa tietoturvaa ja jokaisen käyttäjän tulisi vaihtaa salasansa säännöllisesti. Sen voi tehdä valitsemalla &#039;&#039;Järjestelmä &amp;gt; Asetukset &amp;gt; Omat tiedot&#039;&#039; ja avautuvan ikkunan oikeasta ylälaidasta Vaihda salasana.&lt;br /&gt;
&lt;br /&gt;
== Käyttäjätunnusten lisääminen ==&lt;br /&gt;
&lt;br /&gt;
Jokaisella tietokonetta käyttävällä henkilöllä kannattaa olla oma käyttäjätunnus. Käyttäjätunnuksia voi luoda ylläpito-oikeuksin varustettu käyttäjä valikosta &#039;&#039;Järjestelmä &amp;gt; Ylläpito &amp;gt; Käyttäjät ja ryhmät&#039;&#039; ja painamalla &#039;&#039;Lisää&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Multimediatuki ja lisenssirajoitteiset ohjelmistot ==&lt;br /&gt;
&lt;br /&gt;
Koska Ubuntu sisältää ainoastaan täysin vapaita ohjelmistoja, haluat todennäköisesti asentaa siihen muutaman ei-vapaan ohjelmapaketin pystyäksesi avaamaan tiedostomuotoja: DV, AVI, MPEG, ASF, MP3, AAC, MPEG4/DivX, Windows Media (WMV), Real Media (RM) ja QuickTime (MOV). Useimpien kaupallisten DVD-levyjen katselukaan ei onnistu ilman &amp;quot;content scrambling system&amp;quot;-ohitusta. Osa nettisivuista vaatii näkyäkseen selaimelta Flash-laajennuksen.&lt;br /&gt;
&lt;br /&gt;
Lisenssirajoitteiset lisäosat saat, kun asennat paketin [apt:ubuntu-restricted-extras?section=universe?section=multiverse ubuntu-restricted-extras]&lt;br /&gt;
&lt;br /&gt;
Kyseisiin ei-vapaisiin tiedostomuotohin tarvittavia ohjelmia ei ohjelmistopatenttiepäselvyyksien takia uskalleta jakaa virallisen Ubuntu-CD:n mukana, mutta ne voi itse asentaa jälkikäteen huoletta. Tämä on mahdollista, sillä ohjelmistopatentit eivät ole voimassa Suomessa ja useimmissa Euroopan maissa, vaikka ne ovatkin käytössä esim USA:ssa.&lt;br /&gt;
&lt;br /&gt;
Yksittäisistä valmistajista riippuvuuden välttämiseksi kannattaa jatkossa tietysti suosia avoimia tietostomuotoja, kuten esimerkiksi Ogg Vorbis -musiikkimuotoa mp3-formaatin sijasta.&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
[[Luokka: Ohjeet]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Ty%C3%B6p%C3%B6yt%C3%A4asennuksen_viritt%C3%A4minen&amp;diff=35089</id>
		<title>Työpöytäasennuksen virittäminen</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Ty%C3%B6p%C3%B6yt%C3%A4asennuksen_viritt%C3%A4minen&amp;diff=35089"/>
		<updated>2011-09-23T10:44:00Z</updated>

		<summary type="html">&lt;p&gt;Jem: Firefoxin oikolukulaajennuksen linkki korjattu. Todettu, että laajennus ei enää toimi uusissa Firefoxin versioissa. Lisätty ohje, miten oikoluvusta pääsee eroon lopullisesti.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tällä sivulla on esitelty parhaat käytännöt mitä tyypillisen aloittelevan Linux-käyttäjän kannattaa tehdä Linuxin perusasennuksen jälkeen. Ohjeet on tehty ajatellen Ubuntu 10.04 LTS -käyttäjiä, mikä on tällä hetkellä suositelluin jakelu ja versio aloittelijoille (toki muitakin jakeluita ja versioita kannattaa kokeilla jos on aikaa).&lt;br /&gt;
&lt;br /&gt;
== Suomalaiset verkkopalvelut ==&lt;br /&gt;
&lt;br /&gt;
Yle Areena ja Ruutu.fi vaativat toimiakseen Adobe Flashin. Sen asennus tapahtuu ohjatusti kun käy sivulla http://get.adobe.com/flashplayer/ ja valitsee asennusvaihtoehdon [apt:adobe-flashplugin?channel=$distro-partner APT for Ubuntu 10.04] (joka nykyisin on toteutettu pakettihallintaa oikeaoppisesti hyödyntäen Ubuntu partner -ohjelmalähteen kautta).&lt;br /&gt;
&lt;br /&gt;
MTV3 Katsomo.fi käyttää Silverlightiä, jonka Linux-versio on nimeltään Moonlight. Sen asennus tapahtuu [http://www.go-mono.com/moonlight/download.aspx Moonlight-sivuston] kautta ja on toteutettu Firefox-laajennuksena joka toimii kaikilla Linuxeilla jakelusta riippumatta.&lt;br /&gt;
&lt;br /&gt;
== Automaattiset tietoturvapäivitykset ==&lt;br /&gt;
&lt;br /&gt;
Avaa valikosta &#039;&#039;Järjestelmä &amp;gt; Hallinta &amp;gt; Ohjelmalähteet&#039;&#039; ja edelleen välilehdestä &#039;&#039;Päivitykset&#039;&#039; valitse &#039;&#039;Asenna turvallisuuspäivitykset kysymättä&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Näytön lukitus pois päältä ==&lt;br /&gt;
&lt;br /&gt;
Vakioasetuksilla Ubuntu aktivoi näytönsäästäjän ja lukitsee näytön viiden minuutin käyttämättömyyden jälkeen. Tämä voi olla kotikäytössä ärsyttävää, joten ne kannattaa kytkeä pois valitsemalla &#039;&#039;Järjestelmä &amp;gt; Asetukset &amp;gt; Näytönsäästäjä&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Ulkoasun vaihtaminen miellyttävämmäksi ==&lt;br /&gt;
&lt;br /&gt;
Ubuntun vakioulkoasu on melko synkkä eikä välttämättä kaikille mieluisa. Ulkoasun teemaa, taustakuvaa ja jopa ikkunoiden sulkupainikkeen sijaintia vasemmasta yläkulmasta oikeaan yläkulmaan voi vaihtaa valitsemalla &#039;&#039;Järjestelmä &amp;gt; Asetukset &amp;gt; Ulkoasu&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Ikkunapainikkeet tutusti oikealle ===&lt;br /&gt;
&lt;br /&gt;
Ikkunapainikkeet saa siirrettyä tutustu oikealle ajamalla päätteessä (löytyy &#039;&#039;Sovellukset &amp;gt; Apuohjelmat &amp;gt; Pääte&#039;&#039;)&lt;br /&gt;
 gconftool-2 -s /apps/metacity/general/button_layout -t string menu:minimize,maximize,close&lt;br /&gt;
&lt;br /&gt;
== Käyttöjärjestelmän kielivaihtoehtojen säätö ==&lt;br /&gt;
&lt;br /&gt;
Jos asennusvaiheessa unohdit valita suomen käyttöliittymäsi kieleksi, tai haluat asennuksen jälkeen lisää kielivaihtoehtoja esimerksi muita käyttäjiä varten, voi tehdä sen helposti valitsemalla valikosta &#039;&#039;Järjestelmä &amp;gt; Ylläpito &amp;gt; Kieliasetukset&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Suomenkielinen oikoluku Mozilla-ohjelmiin ===&lt;br /&gt;
&lt;br /&gt;
Ubuntun kielipaketti ei vielä sisällä oikolukua Mozilla Firefoxiin, joten siihen täytyy erikseen hakea [https://addons.mozilla.org/fi/firefox/addon/finnish-spellchecker/ oikolukulaajennus Mozillan sivustolta]. Asennuksen jälkeen käynnistä Firefox uudestaan kahdesti, jotta oikoluku olisi käytettävissä. Oikolukulaajennus ei toimi Firefoxin versioissa 5 ja 6 (tilanne 2011-09-23).&lt;br /&gt;
&lt;br /&gt;
Jos näyttää siltä, että oikolukuohjelma alleviivaa kaikki sanat, saattaa kyse olla siitä, että väärä kielivalinta on käytössä. Suomenkielen saa käyttöön painamalla hiiren oikeaa nappia allevivatun sanan päällä ja edelleen ponnahdusvalikosta valitsemalla &#039;&#039;Kielet &amp;gt; Suomi (Voikko)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Jos kirjoitettavan tekstin kieltä vastaavaa oikolukijaa ei ole saatavilla, ja alleviivaukset häiritsevät, oikoluvun saa oletusarvoisesti pois päältä muokkaamalla Firefoxin asetuksia seraavasti:&lt;br /&gt;
&lt;br /&gt;
* kirjoita Firefoxin osoitekenttään &amp;lt;tt&amp;gt;about: config&amp;lt;/tt&amp;gt;&lt;br /&gt;
* etsi listasta kohta &amp;lt;tt&amp;gt;layout.spellcheckDefault&amp;lt;/tt&amp;gt;&lt;br /&gt;
* muuta asetus arvoon 0 kaksoisklikkaamalla sitä&lt;br /&gt;
&lt;br /&gt;
== Salasanan vaihtaminen ==&lt;br /&gt;
&lt;br /&gt;
Käyttäjien salasanat ovat tärkein osa tietoturvaa ja jokaisen käyttäjän tulisi vaihtaa salasansa säännöllisesti. Sen voi tehdä valitsemalla &#039;&#039;Järjestelmä &amp;gt; Asetukset &amp;gt; Omat tiedot&#039;&#039; ja avautuvan ikkunan oikeasta ylälaidasta Vaihda salasana.&lt;br /&gt;
&lt;br /&gt;
== Käyttäjätunnusten lisääminen ==&lt;br /&gt;
&lt;br /&gt;
Jokaisella tietokonetta käyttävällä henkilöllä kannattaa olla oma käyttäjätunnus. Käyttäjätunnuksia voi luoda ylläpito-oikeuksin varustettu käyttäjä valikosta &#039;&#039;Järjestelmä &amp;gt; Ylläpito &amp;gt; Käyttäjät ja ryhmät&#039;&#039; ja painamalla &#039;&#039;Lisää&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Multimediatuki ja lisenssirajoitteiset ohjelmistot ==&lt;br /&gt;
&lt;br /&gt;
Koska Ubuntu sisältää ainoastaan täysin vapaita ohjelmistoja, haluat todennäköisesti asentaa siihen muutaman ei-vapaan ohjelmapaketin pystyäksesi avaamaan tiedostomuotoja: DV, AVI, MPEG, ASF, MP3, AAC, MPEG4/DivX, Windows Media (WMV), Real Media (RM) ja QuickTime (MOV). Useimpien kaupallisten DVD-levyjen katselukaan ei onnistu ilman &amp;quot;content scrambling system&amp;quot;-ohitusta. Osa nettisivuista vaatii näkyäkseen selaimelta Flash-laajennuksen.&lt;br /&gt;
&lt;br /&gt;
Lisenssirajoitteiset lisäosat saat, kun asennat paketin [apt:ubuntu-restricted-extras?section=universe?section=multiverse ubuntu-restricted-extras]&lt;br /&gt;
&lt;br /&gt;
Kyseisiin ei-vapaisiin tiedostomuotohin tarvittavia ohjelmia ei ohjelmistopatenttiepäselvyyksien takia uskalleta jakaa virallisen Ubuntu-CD:n mukana, mutta ne voi itse asentaa jälkikäteen huoletta. Tämä on mahdollista, sillä ohjelmistopatentit eivät ole voimassa Suomessa ja useimmissa Euroopan maissa, vaikka ne ovatkin käytössä esim USA:ssa.&lt;br /&gt;
&lt;br /&gt;
Yksittäisistä valmistajista riippuvuuden välttämiseksi kannattaa jatkossa tietysti suosia avoimia tietostomuotoja, kuten esimerkiksi Ogg Vorbis -musiikkimuotoa mp3-formaatin siasta.&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Jaetut_kirjastot&amp;diff=35088</id>
		<title>Jaetut kirjastot</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Jaetut_kirjastot&amp;diff=35088"/>
		<updated>2011-09-23T08:02:18Z</updated>

		<summary type="html">&lt;p&gt;Jem: Linuxin jaettujen kirjastojen historia, nykytila ja käyttö.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Aliohjelmakirjastolla, tai lyhyemmin kirjastolla, tarkoitetaan&lt;br /&gt;
kokoelmaa yleishyödyllisiä aliohjelmia tai funktioita, jotka on koottu&lt;br /&gt;
yhteen. Perusajatuksena on, ettei jokaista kehitettävää uutta ohjelmaa&lt;br /&gt;
varten tarvitsisi keksiä pyörää uudestaan, vaan ohjelman tekijä voi&lt;br /&gt;
hyödyntää jo olemassa olevia aliohjelmia. Tällöin ohjelman tekijä voi&lt;br /&gt;
nojautua olemassa olevaan alemman tason toiminnallisuuteen, kuten&lt;br /&gt;
syöttö- ja tulostusrutiineihin, ja keskittyä kirjoittamaan omalle&lt;br /&gt;
ohjelmalle olennaista koodia.&lt;br /&gt;
&lt;br /&gt;
Jaettu kirjasto on aliohjelmakirjaston muunnelma, jossa kirjasto on talletettu erilliseen tiedostoon, jolloin sama kirjasto on jaettavissa monen ohjelman kesken.&lt;br /&gt;
&lt;br /&gt;
==Ei-jaetut kirjastot==&lt;br /&gt;
&lt;br /&gt;
Aliohjelmakirjasto voi olla kahdessa eri muodossa, riippuen&lt;br /&gt;
käyttötavasta: joko staattisena ei-jaettuna kirjastona tai jaettuna&lt;br /&gt;
kirjastona. Ei-jaettu kirjasto koostuu joukosta,&lt;br /&gt;
tyypillisesti C-kielisestä lähdekoodista käännetyistä&lt;br /&gt;
objektikooditiedostoista, jotka on koottu yhteen&lt;br /&gt;
arkistotiedostoon. Tällaisen tiedoston pääte on &amp;lt;tt&amp;gt;.a&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Kun ohjelma rakennetaan käyttäen ei-jaettua kirjastoa, ohjelman&lt;br /&gt;
linkkausvaiheessa kerrotaan mistä arkistotiedostosta sen pitä etsiä&lt;br /&gt;
kirjastossa olevia aliohjelmia. Linkkeri kopioi arkistotiedostosta&lt;br /&gt;
tarvittavat osat, ja liittää ne ohjelman lopulliseen&lt;br /&gt;
suoritustiedostoon.&lt;br /&gt;
&lt;br /&gt;
Ei-jaetuissa kirjastoissa on haittapuolensa, jotka korostuvat sitä&lt;br /&gt;
mukaa kuin kirjastojen koot ja lukumäärä kasvavat. Koska linkkeri&lt;br /&gt;
liittää ohjelman rakennusvaiheessa ei-jaetusta kirjastosta tarvittavat&lt;br /&gt;
aliohjelmat, on jokaisessa kirjastoa käyttävässä ohjelmassa&lt;br /&gt;
aliohjelmista omat kopionsa. Tämä johtaa siihen, että ohjelmatiedostojen&lt;br /&gt;
koot kasvavat, mutta ennen kaikkea se vaikuttaa haitallisesti tietokoneen&lt;br /&gt;
keskusmuistin kulutukseen moniajojärjestelmässä, jossa on useampia&lt;br /&gt;
ohjelmia ajossa samanaikaisesti. Tilannetta helpottaa hieman se, että&lt;br /&gt;
älykäs linkkeri kopioi ainoastaan tarvittavat aliohjelmat, ei koko&lt;br /&gt;
kirjastoa, mutta käytännössä säästö ei ole kovin suuri.&lt;br /&gt;
&lt;br /&gt;
==Jaetut kirjastot==&lt;br /&gt;
&lt;br /&gt;
Edellä mainittua kirjastojen kopioitumisongelmaa ratkaisemaan on&lt;br /&gt;
kehitetty niin sanotut jaetut kirjastot. Jaettuja kirjastoja&lt;br /&gt;
käytettäessä ei kirjaston aliohjelmia liitetä osaksi suoritettavaa&lt;br /&gt;
ohjelmatiedostoa, vaan ohjelmaan liitetään vain viittaus jaetun&lt;br /&gt;
kirjaston sisältävään tiedostoon. Kun ohjelma suoritetaan, kirjasto&lt;br /&gt;
ladataan muistiin.&lt;br /&gt;
&lt;br /&gt;
Linuxin muistinhallinassa on ominaisuus, joka mahdollistaa&lt;br /&gt;
keskusmuistisivujen jakamisen prosessien kesken. Prosesseilla on&lt;br /&gt;
periaatteessa erilliset muistiavaruudet, jotka on suojattu toisiltaan,&lt;br /&gt;
mutta on mahdollista järjestää asiat niin, että yksi fyysinen&lt;br /&gt;
muistisivu näkyy useamman prosessin muistiavaruudessa. Tällä&lt;br /&gt;
mekanismilla saadaan ratkaistuksi toinenkin ei-jaettujen kirjastojen&lt;br /&gt;
ongelma, eli koodin kopioituminen keskusmuistissa.&lt;br /&gt;
&lt;br /&gt;
Myös kirjastojen määrittelemä data on jaettu prosessien&lt;br /&gt;
kesken. Kirjaston määrittelemät muuttujat eivät kuitenkaan ole&lt;br /&gt;
prosesseille yhteisiä, eli kun yhdessä prosessissa muutetaan muuttujan&lt;br /&gt;
arvoa, muutos ei saa näkyä toisessa prosessissa. Tämä on ratkaistu niin&lt;br /&gt;
sanotulla Copy-on-write -mekanismilla, jossa prosessille joka muuttaa&lt;br /&gt;
muuttujan arvoa, luodaan oma kopionsa musitisivusta, jossa muuttuja&lt;br /&gt;
sijaitsee.&lt;br /&gt;
&lt;br /&gt;
Huomaa, että mekanismi ei suoranaisesti liity Linuxin jaettuihin&lt;br /&gt;
kirjastoihin, vaan on Linuxin ytimen ominaisuus jota hyödynnetään&lt;br /&gt;
jaettujen kirjastojen käsittelyssä.&lt;br /&gt;
&lt;br /&gt;
==Jaettujen kirjastojen kehitys Linuxissa==&lt;br /&gt;
&lt;br /&gt;
Alunperin Linuxissa ei ollut tukea jaetuille kirjastoille. Linuxin&lt;br /&gt;
alkuvuosina käytettiin Unixin perintönä niin sanottua&lt;br /&gt;
&amp;quot;a.out&amp;quot;-tiedostomuotoa suoritettaville ohjelmille.&lt;br /&gt;
a.out-tiedostomuodolle suunniteltiin Linuxia varten mekanismi jaettujen kirjastojen&lt;br /&gt;
käyttämiseksi, joka olikin käytössä jonkin aikaa. Tämän mekanismin&lt;br /&gt;
suurin puute oli se, että kirjastot oli rakennettu ladattaviksi&lt;br /&gt;
kiinteisiin osoitteisiin, joita ei pystytty enää muuttamaan&lt;br /&gt;
latausvaiheessa. Tämän tyyppisiä jaettuja kirjastoja sanotaan&lt;br /&gt;
&#039;&#039;staattisiksi jaetuiksi kirjastoiksi&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Latausosoitteiden joustamattomuuden takia samaan prosessiin ei voitu&lt;br /&gt;
ladata päällekkäisiä muistiosoitteita käyttäviä kirjastoja.&lt;br /&gt;
Päällekkäisyyksien välttämiseksi Linuxin jaetuista kirjastoista&lt;br /&gt;
pidettiin keskitettyä rekisteriä, jossa niille allokoitiin jokaiselle&lt;br /&gt;
omat käytettävissä olevat muistiavaruudet.&lt;br /&gt;
&lt;br /&gt;
==Nykyaikaiset jaetut kirjastot==&lt;br /&gt;
&lt;br /&gt;
Linux siirtyi versiosta 1.2 käyttämään uudempaa ELF (Executable and&lt;br /&gt;
Linkable Format) -tiedostomuotoa suoritettaville ohjelmille ja&lt;br /&gt;
kirjastoille. Tässä formaatissa on otettu paremmin huomioon jaettujen&lt;br /&gt;
kirjastojen asettamat vaatimukset. ELF-formaattissa on tuki&lt;br /&gt;
ns. relokoinnille, jonka ansiosta kirjaston voi ladata alkaen mistä&lt;br /&gt;
tahansa vapaana olevasta muistiosoitteesta. Tämä vaatii tosin jonkin verran&lt;br /&gt;
ylimääräistä työtä sekä kirjaston latausvaiheessa että ohjelman ajon&lt;br /&gt;
aikana.&lt;br /&gt;
&lt;br /&gt;
===Jaettujen kirjastojen versionumerot===&lt;br /&gt;
&lt;br /&gt;
Käytäntönä on, että jaetun kirjaston versionumero koostuu kahdesta&lt;br /&gt;
osasta, ns. major- ja minor-versionumerot. Major-numeroa muutetaan,&lt;br /&gt;
kun kirjasto on olennaisesti erilainen kuin edellinen&lt;br /&gt;
versio. Olennaisella muutoksella tarkoitetaan, että esimerkiksi&lt;br /&gt;
funktion kutsutapa muuttuu, tai että kirjaston aliohjelmat toimivat&lt;br /&gt;
eri tavalla kuin ennen. Minor-numero muuttuu tyypillisesti kun&lt;br /&gt;
kirjastossa on korjattu virhe. (Toki kirjasto toimii silloinkin eri&lt;br /&gt;
tavalla kuin sen edellinen versio, mutta tässä tapauksessa se on&lt;br /&gt;
korjattu toimivaksi siten kuin se on dokumentoitu toimivan.)&lt;br /&gt;
&lt;br /&gt;
Kun jaettu kirjasto asennetaan järjestelmään, kirjaston sisältävän&lt;br /&gt;
tiedoston nimeksi annetaan nimi joka on muotoa&lt;br /&gt;
&amp;lt;tt&amp;gt;libfoo.so.M.N&amp;lt;/tt&amp;gt;. M on tässä edellä mainittu major-versionumero&lt;br /&gt;
ja N vastaavasti minor-versionumero. Tiedoston pääte .so tulee&lt;br /&gt;
sanoista shared object, eli jaettu objektitiedosto. Samaan hakemistoon&lt;br /&gt;
luodaan symbolinen linkki, jonka nimi on libfoo.so.M, joka osoittaa&lt;br /&gt;
kirjaston sisältämään tiedostoon. Esimerkki:&lt;br /&gt;
&lt;br /&gt;
 -rwxr-xr-x 1 root root 14616 Jul 24 19:34 libdl-2.13.so&lt;br /&gt;
 lrwxrwxrwx 1 root root    13 Jul 24 19:36 libdl.so.2 -&amp;gt; libdl-2.13.so&lt;br /&gt;
&lt;br /&gt;
===Versioidut symbolit===&lt;br /&gt;
&lt;br /&gt;
Edellä mainittu ei kuitenkaan ole koko totuus jaettujen kirjastojen&lt;br /&gt;
versioinnista. Linuxin jaetut kirjastot voivat sisältää myös&lt;br /&gt;
&#039;&#039;versioituja symboleja&#039;&#039;, joiden avulla sama kirjasto voi sisältää&lt;br /&gt;
monta eri versiota samannimisestä aliohjelmasta. Vanhempi ohjelma,&lt;br /&gt;
joka on rakennettu kirjaston vanhempaa versiota varten, löytää&lt;br /&gt;
kirjastosta vanhemman version aliohjelmasta, kun taas uudempi ohjelma&lt;br /&gt;
voi automaattisesti hyödyntää uutta versiota aliohjelmasta.&lt;br /&gt;
&lt;br /&gt;
Jaetut kirjastot voivat olla käyttämättä versioituja symboleja,&lt;br /&gt;
kirjaston tekijän valinnan mukaan. Yksi esimerkki kirjastosta joka&lt;br /&gt;
käyttää niitä on standardikirjasto &amp;lt;tt&amp;gt;libc&amp;lt;/tt&amp;gt;. Periaate on se, että&lt;br /&gt;
kaikki kirjaston aliohjelmat, jotka säilyvät muuttumattomina versiosta&lt;br /&gt;
toiseen, säilyttävät vanhan versionumeronsa. Kun kirjaston aliohjelmaa&lt;br /&gt;
muutetaan siten, ettei se ole enää yhteensopiva vanhan version kanssa,&lt;br /&gt;
kirjastoon lisätään uudella versionumerolla varustettu aliohjelma&lt;br /&gt;
vanhan rinnalle.&lt;br /&gt;
&lt;br /&gt;
Kun ohjelma linkataan &amp;lt;tt&amp;gt;libc&amp;lt;/tt&amp;gt;:llä, kirjastosta otetaan lähes poikkeuksetta&lt;br /&gt;
käyttöön uusin versio aliohjelmista. Kun suoritetaan vanhaa ohjelmaa,&lt;br /&gt;
joka on rakennusvaiheessa linkattu vanhempaa &amp;lt;tt&amp;gt;libc&amp;lt;/tt&amp;gt;:tä&lt;br /&gt;
käyttäen, se on myös yhteensopiva uuden jaetun kirjaston kanssa, sillä&lt;br /&gt;
uudesta kirjastosta löytyy myös vanhemmat versiot&lt;br /&gt;
aliohjelmista. Uudella &amp;lt;tt&amp;gt;libc&amp;lt;/tt&amp;gt;:llä linkattu ohjelmatiedosto&lt;br /&gt;
&#039;&#039;&#039;saattaa&#039;&#039;&#039; myös toimia siirrettynä ympäristöön, jossa on vanhempi&lt;br /&gt;
versio jaetusta kirjastosta. Tämä edellyttää kuitenkin, että ohjelma&lt;br /&gt;
ei käytä aliohjelmaa, josta on uudempi versio kirjastossa jota vasten&lt;br /&gt;
se on rakennettu. Nyrkkisääntönä on siis, että vanhempi ohjelma on&lt;br /&gt;
yhteensopiva uudemman kirjaston kanssa, mutta uudempi ohjelma ei&lt;br /&gt;
välttämättä toimi vanhemman kirjaston kanssa.&lt;br /&gt;
&lt;br /&gt;
Tarkastellaan edellistä esimerkin valossa. &amp;lt;tt&amp;gt;libc&amp;lt;/tt&amp;gt;-kirjasto&lt;br /&gt;
määrittelee &amp;lt;tt&amp;gt;realpath&amp;lt;/tt&amp;gt;-funktion:&lt;br /&gt;
&lt;br /&gt;
 char *realpath(const char *path, char *resolved_path);&lt;br /&gt;
&lt;br /&gt;
GNU Libc -kirjaston versiossa 2.3 muutettiin funktion toimintaa siten,&lt;br /&gt;
että resolved_path-parametrin arvoksi hyväksytään myös NULL, jolloin&lt;br /&gt;
funktio itse varaa tarvittavan muistin ja palauttaa sen funktion&lt;br /&gt;
paluuarvona.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;readelf&amp;lt;/tt&amp;gt;-ohjelmalla voi luetella kirjaston aliohjelmien nimet:&lt;br /&gt;
&lt;br /&gt;
 readelf -s /lib/libc.so.6&lt;br /&gt;
&lt;br /&gt;
Tulosteesta löytyy kaksi &amp;lt;tt&amp;gt;realpath&amp;lt;/tt&amp;gt;-funktiota:&lt;br /&gt;
&lt;br /&gt;
 1167: 000000000010e3c0    33 FUNC    GLOBAL DEFAULT   11 realpath@GLIBC_2.2.5&lt;br /&gt;
 1168: 000000000003d210  1213 FUNC    GLOBAL DEFAULT   11 realpath@@GLIBC_2.3&lt;br /&gt;
&lt;br /&gt;
Ohjelma, joka on tehty vanhemmalla &amp;lt;tt&amp;gt;libc&amp;lt;/tt&amp;gt;:n versiolla kuin 2.3,&lt;br /&gt;
sisältää viittauksen 2.2.5-versioon funktiosta, uudemmat ohjelmat&lt;br /&gt;
käyttävät versiota 2.3.&lt;br /&gt;
&lt;br /&gt;
===Jaettua kirjastoa käyttävän ohjelman lataus===&lt;br /&gt;
&lt;br /&gt;
Kun uusi ohjelma käynnistetään, käyttöjärjestelmän ydin lataa ohjelman&lt;br /&gt;
keskusmuistiin. Tarkemmin sanottuna, latausta ei tehdä vielä tässä&lt;br /&gt;
vaiheessa, vaan tehdään kuvaus (mmap) ohjelmatiedostosta prosessin&lt;br /&gt;
muistiavaruuteen. Lataus massamuistilta keskumuistiin tapahtuu sitä&lt;br /&gt;
mukaa kuin ohjelman suoritus etenee; jos ohjelman kontrolli siirtyy&lt;br /&gt;
muistisivulle, joka on &amp;quot;tyhjä&amp;quot;, eli jonka sisältöä ei ole ladattu&lt;br /&gt;
massamuistilta, tapahtuu ns. &#039;&#039;page fault&#039;&#039;. Tällöin ytimen&lt;br /&gt;
poikkeuskäsittelijä lataa sivun sisällön ohjelmatiedostosta ennen kuin&lt;br /&gt;
suoritus voi jatkua.&lt;br /&gt;
&lt;br /&gt;
Jos ohjelma käyttää ainakin yhtä jaettua kirjastoa, ohjelmaa ei vielä&lt;br /&gt;
käynnistetä tässä vaiheessa. Sen sijaan käyttöjärjestelmän ydin lukee&lt;br /&gt;
ELF-ohjelmatiedostosta dynaamisen linkkerin nimen. Dynaaminen linkkeri&lt;br /&gt;
on jaetun kirjaston muodossa oleva ohjelma, jonka tehtävänä on ladata&lt;br /&gt;
jaetut kirjastot muistiin. Dynaamisen linkkerin nimi on kerrottu&lt;br /&gt;
ELF-tiedoston .interp-sektiossa (sanasta &amp;quot;interpreter&amp;quot;, eli tulkki),&lt;br /&gt;
ja se on sinne kirjoitettu ohjelman rakennusvaiheessa. Ydin lataa myös&lt;br /&gt;
dynaamisen linkkerin prosessin muistiavaruuteen ja siirtää ohjelman&lt;br /&gt;
suorituksen siihen. Dynaamisen linkkerin nimi riippuu käytettävästä&lt;br /&gt;
prosessoriarkkitehtuurista, 64-bittisessä x86_64-koneessa se sijaitsee&lt;br /&gt;
tiedostossa &amp;lt;tt&amp;gt;/lib64/ld-linux-x86-64.so.2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Syy miksi näin tehdään on se, että ohjelma ei ole vielä ajokelpoinen&lt;br /&gt;
ilman tarvitsemiaan jaettuja kirjastoja. Yksinkertaisimmankin&lt;br /&gt;
C-kielellä kirjoitetun ohjelman suoritys tyssäisi heti ensimmäiseen&lt;br /&gt;
&amp;lt;tt&amp;gt;printf&amp;lt;/tt&amp;gt;-funktion kutsuun. Tämän ongelman olisi tietysti voinut&lt;br /&gt;
ratkaista siten, että dynaamisen linkkerin toiminnallisuus olisi&lt;br /&gt;
sisällytetty ytimeen ja ydin olisi ladannut sekä ohjelman että&lt;br /&gt;
ohjelman tarvitsemat kirjastot muistiin ennen suorituksen alkua. Tätä&lt;br /&gt;
ei kuitenkaan haluta tehdä, sillä ydin halutaan pitää mahdollisimman&lt;br /&gt;
pienenä ja toiminnallisuus, jota ytimessä ei tarvita, siirretään pois&lt;br /&gt;
sieltä.&lt;br /&gt;
&lt;br /&gt;
===Miten dynaaminen linkkeri löytää jaetut kirjastot?===&lt;br /&gt;
&lt;br /&gt;
Dynaaminen linkkeri etsii dynaamisia jaettuja kirjastoja seuraavassa&lt;br /&gt;
järjestyksessä:&lt;br /&gt;
&lt;br /&gt;
# Jos ohjelman ELF-tiedosto sisältää &#039;&#039;DT_RPATH&#039;&#039;-sektion, se sisältää listan hakemistoja, joista dynaaminen linkkeri etsii jaettuja kirjastoja (tätä mekanismia ei enää suositella käytettäväksi).&lt;br /&gt;
# Jos [[ympäristömuuttuja]] LD_LIBRARY_PATH on määritelty, ja se sisältää kasoispisteillä erotettuja hakemistojen nimiä, kirjastoja etsitään näistä hakemistoista.&lt;br /&gt;
# Jos ohjelman ELF-tiedosto sisältää &#039;&#039;DT_RUNPATH&#039;&#039;-sektion, se sisältää listan hakemistoja, joista dynaaminen linkkeri etsii jaettuja kirjastoja.&lt;br /&gt;
# Kirjastoa etsitään &amp;lt;tt&amp;gt;/etc/ld.so.cache&amp;lt;/tt&amp;gt;-tiedostosta. Tämä on normaali tapa, jolla dynaaminen linkkeri paikallistaa jaetut kirjastot.&lt;br /&gt;
# Viimeisenä oljenkortena dynaaminen linkkeri etsii kirjastoja hakemistoista /lib ja /usr/lib (ellei ohjelmaa ole linkattu &amp;lt;tt&amp;gt;-z nodeflib&amp;lt;/tt&amp;gt;-optiolla).&lt;br /&gt;
&lt;br /&gt;
LD_LIBRARY_PATH-muuttujaa ei turvallisuussyistä huomioida, jos suoritettava ohjelma on [[suid]]-binääri.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/etc/ld.so.cache&amp;lt;/tt&amp;gt;-tiedosto on binääritiedosto, joka sisältää&lt;br /&gt;
kuvauksia kirjaston nimestä kirjaston sisältävän tiedoston&lt;br /&gt;
absoluuttiseen tiedostopolkuun. Kirjaston virallinen nimi on kerrottu&lt;br /&gt;
&#039;&#039;soname&#039;&#039;-kentässä kirjaston sisällä olevassa&lt;br /&gt;
&amp;lt;tt&amp;gt;.dynamic&amp;lt;/tt&amp;gt;-sektiossa. Tämän nimen ei tarvitse olla sama kuin&lt;br /&gt;
kirjaston sisältämän tiedoston nimi. Muissa tapauksissa kuin kohdassa&lt;br /&gt;
3 yllä olevassa hakujärjestyksessä käytetään kuitenkin tiedoston nimeä&lt;br /&gt;
samannimisen kirjaston paikallistamiseen.&lt;br /&gt;
&lt;br /&gt;
Aina kun järjestelmään on asennettu uusi jaettu kirjasto (joko&lt;br /&gt;
kokonaan uusi, tai uusi versio olemassaolevasta kirjastosta), pitää&lt;br /&gt;
suorittaa &amp;lt;tt&amp;gt;[[ldconfig]]&amp;lt;/tt&amp;gt;-ohjelma. Tämä ohjelma päivittää yllä&lt;br /&gt;
mainitun &amp;lt;tt&amp;gt;/etc/ld.so.cache&amp;lt;/tt&amp;gt;-tiedoston ajan tasalle, ja&lt;br /&gt;
huolehtii lisäksi siitä, että aiemmin mainitut symboliset linkit&lt;br /&gt;
osoittavat viimeisimpään versioon kirjastosta.&lt;br /&gt;
&amp;lt;tt&amp;gt;ldconfig&amp;lt;/tt&amp;gt;-ohjelma lukee luettelon hakemistoista, joista&lt;br /&gt;
kirjastoja etsitään, tiedostosta &amp;lt;tt&amp;gt;/etc/ld.so.conf&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Huom! Jos kirjastoja asennetaan jakelun ohjelmapaketeista, kaikesta tästä on tietenkin huolehdittu ja tapahtuu automaattisesti, eikä &amp;lt;tt&amp;gt;ldconfig&amp;lt;/tt&amp;gt;-ohjelmaa ole tarvetta suorittaa &amp;quot;käsin&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Jaettujen kirjastojen lataaminen ohjelmakoodista==&lt;br /&gt;
&lt;br /&gt;
Dynaamisen jaetun kirjaston pystyy myös lataamaan ohjelmasta käsin,&lt;br /&gt;
ajon aikana. Tämä tapahtuu &amp;lt;tt&amp;gt;dlopen&amp;lt;/tt&amp;gt;-funktiolla, joka palauttaa&lt;br /&gt;
onnistuneen kutsun tuloksena kahvan jaettuun kirjastoon. Kahvaa&lt;br /&gt;
annetaan &amp;lt;tt&amp;gt;dlsym&amp;lt;/tt&amp;gt;-funktiolle, joka palauttaa osoitteen, johon&lt;br /&gt;
haluttu symboli on ladattu muistiin. Lisätietoja &amp;lt;tt&amp;gt;dlopen&amp;lt;/tt&amp;gt;:n&lt;br /&gt;
manuaalisivulla.&lt;br /&gt;
&lt;br /&gt;
==Lisätietoja==&lt;br /&gt;
&lt;br /&gt;
Ohjelman käyttämistä dynaamisista jaetuista kirjastoista saa tietoa&lt;br /&gt;
komennolla &amp;lt;tt&amp;gt;[[ldd]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Esimerkki:&lt;br /&gt;
&lt;br /&gt;
 ldd /bin/ls&lt;br /&gt;
&lt;br /&gt;
 linux-vdso.so.1 =&amp;gt;  (0x00007fff5ddff000)&lt;br /&gt;
 librt.so.1 =&amp;gt; /lib64/librt.so.1 (0x00007f1e64e7c000)&lt;br /&gt;
 libacl.so.1 =&amp;gt; /lib64/libacl.so.1 (0x00007f1e64c73000)&lt;br /&gt;
 libc.so.6 =&amp;gt; /lib64/libc.so.6 (0x00007f1e648ed000)&lt;br /&gt;
 libpthread.so.0 =&amp;gt; /lib64/libpthread.so.0 (0x00007f1e646d0000)&lt;br /&gt;
 /lib64/ld-linux-x86-64.so.2 (0x00007f1e65085000)&lt;br /&gt;
 libattr.so.1 =&amp;gt; /lib64/libattr.so.1 (0x00007f1e644cb000)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;ldd&amp;lt;/tt&amp;gt;-komento myös ilmoittaa, jos jokin ohjelman tarvitsemista&lt;br /&gt;
kirjastoista ei löydy.&lt;br /&gt;
&lt;br /&gt;
Muita kiinnostavia ohjelmia, joilla voi tutkia kirjastoja,&lt;br /&gt;
objektitiedostoja ja ohjelmia ovat &amp;lt;tt&amp;gt;[[readelf]]&amp;lt;/tt&amp;gt; ja&lt;br /&gt;
&amp;lt;tt&amp;gt;[[objdump]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Käsitteet]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Zero&amp;diff=35086</id>
		<title>Zero</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Zero&amp;diff=35086"/>
		<updated>2011-09-21T10:51:45Z</updated>

		<summary type="html">&lt;p&gt;Jem: tarkennus: mmap-kutsun parametriksi ei anneta &amp;quot;/dev/zero&amp;quot; suoraan, vaan open-kutsun palauttama tiedostokahva.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;tt&amp;gt;/dev/zero&amp;lt;/tt&amp;gt; on Unix-järjestelmissä (myös Linux) [[Linuxin hakemistorakenne|&amp;lt;tt&amp;gt;/dev&amp;lt;/tt&amp;gt;-hakemistossa]] sijaitseva [[laitetiedosto]], johon kaikilla käyttäjillä on [[tiedoston oikeudet|kirjoitusoikeus]], mutta johon kirjoitettu data yksinkertaisesti häviää. Se muistuttaa läheisesti [[null|&amp;lt;tt&amp;gt;/dev/null&amp;lt;/tt&amp;gt;-laitetiedostoa]], mutta erotuksena &amp;lt;tt&amp;gt;/dev/zero&amp;lt;/tt&amp;gt;sta lukeminen palauttaa nollatavuja  &#039;\0&#039;, eli [[wikipedia:fi:tavu|tavuja]], jossa kaikki [[wikipedia:fi:bitti|bitit]] ovat 0-arvoisia. Lukeminen &amp;lt;tt&amp;gt;/dev/zero&amp;lt;/tt&amp;gt;-tiedostosta ei koskaan katkea tiedoston loppuun, vaan nollatavuja palautetaan aina pyydetty määrä.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/dev/zero&amp;lt;/tt&amp;gt; on hyödyllinen myös [[mmap]]-systeemikutsun kanssa. Kun mmap:lla tehdään &amp;lt;tt&amp;gt;/dev/zero&amp;lt;/tt&amp;gt;-tiedoston kuvaus prosessin muistiavaruuteen, saadaan anonyymi kuvaus tiedoston ja muistialueen välille. Anonyymillä muistialueella tarkoitetaan tässä sitä, että alue ei liity mihinkään tiedostojärjestelmän tiedostoon. Tällaista muistialuetta voidaan mm. käyttää prosessien väliseen kommunikointiin isä- ja [[Prosessi|lapsiprosessin]] välillä.&lt;br /&gt;
&lt;br /&gt;
== Katso myös ==&lt;br /&gt;
*[[Null|/dev/null]]&lt;br /&gt;
*[[Full|/dev/full]]&lt;br /&gt;
[[Luokka:Järjestelmä]]&lt;br /&gt;
[[Luokka:Perustietoa]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=XFree86&amp;diff=35085</id>
		<title>XFree86</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=XFree86&amp;diff=35085"/>
		<updated>2011-09-21T06:28:20Z</updated>

		<summary type="html">&lt;p&gt;Jem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;XFree86-projekti on pitkään kehittänyt avointa [[X Window System|X-ikkunointipalvelinta]]. XFree86 -palvelin kehitettiin alunperin Intelin x86-käskykannan kanssa yhteensopivalle laitteistolle, siitä nimen osa 86. Nimi XFree86 on sanaleikki ja tulee nimestä X386, joka oli ensimmäinen X Window System -toteutus IBM PC -luokan tietokoneille. Nykyään hyvin harva [[Jakelut|Linux-jakelu]] käyttää XFree86:tta, sillä sen lisenssi vaihdettiin [[GNU GPL]] -yhteensopimattomaksi. Sen sijasta käytetään XFree86:sta [[haara]]utettua [[X.org]]ia.&lt;br /&gt;
&lt;br /&gt;
==Katso myös==&lt;br /&gt;
* [[X.org]]&lt;br /&gt;
&lt;br /&gt;
==Aiheesta muualla==&lt;br /&gt;
*[http://xfree86.org/ XFree86:n sivut.]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:X]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Zero&amp;diff=35083</id>
		<title>Zero</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Zero&amp;diff=35083"/>
		<updated>2011-09-20T19:33:11Z</updated>

		<summary type="html">&lt;p&gt;Jem: korjattu: /dev/zero ei palauta yhtä nollatavua, vaan niin monta kuin halutaan. Lisätty maininta mmap:sta.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;tt&amp;gt;/dev/zero&amp;lt;/tt&amp;gt; on Unix-järjestelmissä (myös Linux) [[Linuxin hakemistorakenne|&amp;lt;tt&amp;gt;/dev&amp;lt;/tt&amp;gt;-hakemistossa]] sijaitseva [[laitetiedosto]], johon kaikilla käyttäjillä on [[tiedoston oikeudet|kirjoitusoikeus]], mutta johon kirjoitettu data yksinkertaisesti häviää. Se muistuttaa läheisesti [[null|&amp;lt;tt&amp;gt;/dev/null&amp;lt;/tt&amp;gt;-laitetiedostoa]], mutta erotuksena &amp;lt;tt&amp;gt;/dev/zero&amp;lt;/tt&amp;gt;sta lukeminen palauttaa nollatavuja  &#039;\0&#039;, eli [[wikipedia:fi:tavu|tavuja]], jossa kaikki [[wikipedia:fi:bitti|bitit]] ovat 0-arvoisia. Lukeminen &amp;lt;tt&amp;gt;/dev/zero&amp;lt;/tt&amp;gt;-tiedostosta ei koskaan katkea tiedoston loppuun, vaan nollatavuja palautetaan aina pyydetty määrä.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/dev/zero&amp;lt;/tt&amp;gt; on hyödyllinen myös [[mmap]]-systeemikutsun parametrina. Kun mmap:lla tehdään &amp;lt;tt&amp;gt;/dev/zero&amp;lt;/tt&amp;gt;-tiedoston kuvaus prosessin muistiavaruuteen, saadaan anonyymi kuvaus tiedoston ja muistialueen välille. Anonyymillä muistialueella tarkoitetaan tässä sitä, että alue ei liity mihinkään tiedostojärjestelmän tiedostoon. Tällaista muistialuetta voidaan mm. käyttää prosessien väliseen kommunikointiin isä- ja [[Prosessi|lapsiprosessin]] välillä.&lt;br /&gt;
&lt;br /&gt;
== Katso myös ==&lt;br /&gt;
*[[Null|/dev/null]]&lt;br /&gt;
*[[Full|/dev/full]]&lt;br /&gt;
[[Luokka:Järjestelmä]]&lt;br /&gt;
[[Luokka:Perustietoa]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=ISO&amp;diff=35082</id>
		<title>ISO</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=ISO&amp;diff=35082"/>
		<updated>2011-09-20T19:03:53Z</updated>

		<summary type="html">&lt;p&gt;Jem: /* Linux ja ISO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{perustietoa}}&lt;br /&gt;
&#039;&#039;Tässä artikkelissa käsitellään ISO-standardoimisorganisaatiota. Myös [[levykuva|levykuvien]] tiedostopääte voi olla &amp;lt;tt&amp;gt;.iso&amp;lt;/tt&amp;gt;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[wikipedia:fi:ISO|Wikipedian ISO-artikkeli]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ISO lyhenne tulee sanoista International Organization for Standardization.&lt;br /&gt;
&lt;br /&gt;
== Linux ja ISO ==&lt;br /&gt;
&lt;br /&gt;
Kansainvälinen standardointijärjestö ISO on hyväksynyt Linuxin avoimien standardien työryhmän työstämän Linux Standard Base ([[LSB]]) 2.0.1 -version julkisesti saatavilla olevaksi spesifikaatioksi (ISO/PAS 23360). PAS-dokumentti ei ole tosin vielä täysi standardi, mutta sen virallinen esiaste.&lt;br /&gt;
&lt;br /&gt;
== ISO-standardeja ==&lt;br /&gt;
&lt;br /&gt;
* ISO/IEC 8859-1        8-bit single-byte coded graphic character sets -- Part 1: Latin alphabet No. 1&lt;br /&gt;
* ISO/IEC 8859-15       8-bit single-byte coded graphic character sets -- Part 15: Latin alphabet No. 9&lt;br /&gt;
* ISO/IEC 15948  	[[PNG|Portable Network Graphics (PNG)]]&lt;br /&gt;
* ISO 15740         	[[PTP|Picture Transfer Protocol]]&lt;br /&gt;
* ISO/IEC DIS 23360 	Linux Standard Base Core Specification 2.0.1&lt;br /&gt;
&lt;br /&gt;
== Aiheesta muualla ==&lt;br /&gt;
* [http://www.iso.org/ ISO]&lt;br /&gt;
* [http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=41481&amp;amp;COMMID=&amp;amp;scopelist=PROGRAMME ISO/IEC DIS 23360]&lt;br /&gt;
* [http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=29581&amp;amp;ICS1=35&amp;amp;ICS2=140&amp;amp;ICS3= ISO/IEC 15948:2004]&lt;br /&gt;
* [http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=37445&amp;amp;ICS1=37&amp;amp;ICS2=40&amp;amp;ICS3=99 ISO 15740:2005]&lt;br /&gt;
* [http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=29505&amp;amp;ICS1=35&amp;amp;ICS2=40&amp;amp;ICS3= ISO/IEC 8859-15]&lt;br /&gt;
* [http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=28245&amp;amp;ICS1=35&amp;amp;ICS2=40&amp;amp;ICS3= ISO/IEC 8859-1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Käsitteet]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Mount&amp;diff=35081</id>
		<title>Mount</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Mount&amp;diff=35081"/>
		<updated>2011-09-20T18:42:34Z</updated>

		<summary type="html">&lt;p&gt;Jem: shellin työhakemisto estää unmountin.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Komentorivi]]komennolla mount &#039;&#039;liitetään&#039;&#039; [[Linuxin hakemistorakenne|hakemistopuuhun]] eri tiedostojärjestelmiä, esimerkiksi levyosioita, [[verkkolevy]]jä ja [[levykuva|levykuvia]]. Linuxissa mihin tahansa hakemistoon voidaan liittää erillinen [[tiedostojärjestelmä]]: esimerkiksi [[juurihakemisto]] &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt; voi olla yhdellä levyosiolla, alihakemisto &amp;lt;tt&amp;gt;[[kotihakemisto|/home]]&amp;lt;/tt&amp;gt; toisella ja cd-asema vaikkapa hakemistossa &amp;lt;tt&amp;gt;/home/pentti/tavaraa/linux&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Liittäminen (&amp;quot;mounttaaminen&amp;quot;) on edellytys tiedostojärjestelmän sisällön näyttämiselle käyttöjärjestelmässä. Jos esimerkiksi jotakin kiintolevyosiota tai cd-levyä ei ole liitetty, näkyy se Linuxissa ainoastaan [[laitetiedosto]]na /dev-hakemiston alla. Esimerkiksi [[DVD-elokuvat|DVD-elokuva]]n toistaminen tai cd-levyn [[levyn polttaminen|polttaminen]] ei edellytä levyn liittämistä (levyn sisältöä ei tällöin käsitellä tiedosto tiedostolta). Liittäminen sen sijaan vaaditaan, mikäli levyn/tiedostojärjestelmän sisältöä halutaan käsitellä tiedostomuodossa esimerkiksi [[:Luokka:Tiedostonhallinta|tiedostonhallintaohjelmassa]].&lt;br /&gt;
&lt;br /&gt;
Liitoksen purkamista kutsutaan &#039;&#039;irrottamiseksi&#039;&#039; (engl. unmounting). Liitoksen voi irrottaa joko käsin tai antaa käyttöjärjestelmän hoitaa se automaattisesti esimerkiksi järjestelmän (hallitun) sulkemisen yhteydessä. &lt;br /&gt;
&lt;br /&gt;
Mikäli liitetyn tiedostojärjestelmän sisältävä media (esimerkiksi [[USB-muisti]]tikku tai verkkolevylle johtava kaapeli) otetaan fyysisesti irti koneesta irrottamatta ensin sillä sijaitsevaa tiedostojärjestelmää, jäävät monet väliaikaistiedostot kirjoittamatta tiedostojärjestelmään (mikä vahingoittaa tiedostojärjestelmää) ja lisäksi sen sisältö jää &amp;quot;kummittelemaan&amp;quot; hakemistopuuhun. &lt;br /&gt;
&lt;br /&gt;
Uusissa työpöytäkäyttöön suunnitelluissa Linux-järjestelmissä cd- ja dvd-levyt yleensä sekä liitetään että irrotetaan automaattisesti, joten käsin irrottaminen on niiden osalta yleensä tarpeen vain silloin, kun levy on myös liitetty käsin (mount-komennolla). Verkkoyhteyden takana sijaitsevat tiedostojärjestelmät (verkkolevyt) täytyy irrottaa käsin, mikäli verkkoyhteys on katkeamassa kesken järjestelmän päälläolon. USB-muistitikut ja ulkoiset kiintolevyt on irrotettava käsin, mikäli ne aiotaan ottaa irti koneesta ennen sen sulkemista. [[GUI|Graafisessa]] ympäristössä tiedostojärjestelmän irrottaminen tapahtuu yleensä klikkaamalla sen kuvaketta hiiren toisella näppäimellä sekä valitsemalla &amp;quot;Irrota&amp;quot;, &amp;quot;Remove safely&amp;quot;, &amp;quot;Unmount&amp;quot; ym. Komentorivillä tähän voidaan käyttää komentoa &amp;lt;tt&amp;gt;umount&amp;lt;/tt&amp;gt; (ks alla).&lt;br /&gt;
&lt;br /&gt;
Tiedostojärjestelmän liittämiseen ja irrottamiseen tarvitaan [[pääkäyttäjä]]n oikeudet, ellei tiettyä liittämistä (esimerkiksi USB-muistitikun liittämistä polkuun &amp;lt;tt&amp;gt;/media/usb-muisti&amp;lt;/tt&amp;gt;) ole erikseen sallittu &amp;lt;tt&amp;gt;[[fstab|/etc/fstab]]&amp;lt;/tt&amp;gt;-tiedostossa.&lt;br /&gt;
&lt;br /&gt;
== Käyttö ==&lt;br /&gt;
Yleinen muoto mount-komennolle on seuraava:&lt;br /&gt;
 mount [valitsimet] [-o liitosasetukset] mistä minne&lt;br /&gt;
Liitosasetukset ovat samat kuin [[fstab|/etc/fstab]]-tiedostossa käytettävät asetukset.&lt;br /&gt;
&lt;br /&gt;
Esimerkiksi ensimmäisen kiintolevyn ensimmäinen osio (vastaa Microsoft Windows -järjestelmässä C-asemaa) liitettäisiin hakemistoon &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; komennolla:&lt;br /&gt;
 mount /dev/hda1 /home&lt;br /&gt;
&lt;br /&gt;
Tässä &amp;lt;tt&amp;gt;/dev/hda1&amp;lt;/tt&amp;gt; on liitettävän osion [[laitetiedosto]]. Riippuen käytettävästä ajurista (esimerkiksi [[libata]]) sekä kiintolevyn liitäntätavasta saattaa yllämainittuna laitetiedostona olla myös &amp;lt;tt&amp;gt;/dev/sda1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Useissa järjestelmissä liitettävän osion määrittelemiseen voi käyttää myös sen nimeä (label), [[wikipedia:UUID|UUID]]-tunnusta, väyläosoitetta tai valmistajan laiteelle antamaa nimeä. Näitä vastaavat [[udev]]in ylläpitämät laitetiedostot löytyvät tällöin &amp;lt;tt&amp;gt;/dev/disk&amp;lt;/tt&amp;gt;-hakemiston alta.&lt;br /&gt;
&lt;br /&gt;
Jos mount ei tunnista automaattisesti levyosion tiedostojärjestelmää, voidaan se kertoa valitsimella &amp;lt;tt&amp;gt;-t&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 mount -t [[ext3]] /dev/hda1 /home&lt;br /&gt;
&lt;br /&gt;
Mount-komennolla voi liittää myös levykuvia (.iso). Tiedoston &amp;lt;tt&amp;gt;levy.iso&amp;lt;/tt&amp;gt; sisältö liitettäisiin hakemistoon &amp;lt;tt&amp;gt;/home/kayttaja/levy&amp;lt;/tt&amp;gt; seuraavasti:&lt;br /&gt;
 mount -o [[loop]] levy.iso /home/kayttaja/levy&lt;br /&gt;
&lt;br /&gt;
Levykuvien liittäminen vaatii [[ydin|ytimeen]] &amp;quot;&#039;&#039;Loopback device support&#039;&#039;&amp;quot; -tuen joko sisäänkäännettynä tai [[moduuli]]na (mikäli käytetään moduulia, on moduulin oltava ladattuna komennolla &amp;lt;tt&amp;gt;[[modprobe]] loop&amp;lt;/tt&amp;gt;). Lisätietoja artikkelissa [[ISO 9660]]. &lt;br /&gt;
&lt;br /&gt;
Yhdellä laitteella voi olla useampia liitoskohtia. Seuraava liittäisi laitteen &amp;lt;tt&amp;gt;/dev/sdf4&amp;lt;/tt&amp;gt; alkuperäiset liitoskohdan &amp;lt;tt&amp;gt;/mnt/sdf4&amp;lt;/tt&amp;gt; ohella myös liitoskohtaan &amp;lt;tt&amp;gt;/mnt/kuvat&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 mount --bind /mnt/sdf4 /mnt/kuvat&lt;br /&gt;
&lt;br /&gt;
Liitoskohta on mahdollista siirtää ilman sen irrottamista. Tämä tapahtuu käyttäen valitsinta &amp;lt;tt&amp;gt;--move&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 mount --move /vanha/sijainti /uusi/sijainti&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;remount&#039;&#039;-optiolla voidaan vaihtaa jo liitetyn tiedostojärjestelmän asetuksia: esimerkiksi komento&lt;br /&gt;
 mount -o remount,ro /home&lt;br /&gt;
asettaisi /home-osion vain luku -tilaan, jolloin se voidaan esimerkiksi tarkistaa [[fsck]]-ohjelmalla.&lt;br /&gt;
&lt;br /&gt;
Jos tiedostojärjestelmän liitos on mainittu [[fstab|/etc/fstab]]-tiedostossa, voidaan mount-komennolle antaa argumentiksi pelkän liitoskohdan tai liitettävän laitteen. Mount-komento lukee tällöin tarvittavan muun tiedon [[fstab|/etc/fstab]]-tiedostosta. Esimerkki:&lt;br /&gt;
&lt;br /&gt;
 mount /mnt/cdrom&lt;br /&gt;
&lt;br /&gt;
Pelkkä komento&lt;br /&gt;
 mount&lt;br /&gt;
listaa kaikki liitetyt tiedostojärjestelmät.&lt;br /&gt;
&lt;br /&gt;
=== Valitsimia ===&lt;br /&gt;
Mount-komennolle voidaan antaa seuraavia [[valitsin|valitsimia]] (luettelo ei ole täydellinen):&lt;br /&gt;
*-a: Liittää kaikki tiedostojärjestelmät jotka on määritelty tiedostossa [[fstab|/etc/fstab]] ilman määritettä &#039;&#039;noauto&#039;&#039;.&lt;br /&gt;
*-n: /etc/mtab-tiedostoa ei päivitetä. Käytettävä kun &amp;lt;tt&amp;gt;/etc&amp;lt;/tt&amp;gt; on kirjoitussuojattu, muutoin tarpeeton.&lt;br /&gt;
*-o &amp;lt;tt&amp;gt;asetukset&amp;lt;/tt&amp;gt;: Liittää tietyin liitosasetuksin, kts. [[fstab]].&lt;br /&gt;
*-r: Liitos vain luku -tilassa. Sama kuin -o ro.&lt;br /&gt;
*-w: Liitos luku/kirjoitus-tilassa. Oletusasetus, sama kuin -o rw.&lt;br /&gt;
*-t &amp;lt;tt&amp;gt;tiedostojärjestelmä&amp;lt;/tt&amp;gt;: Kertoo tiedostojärjestelmän tyypin. Esim. [[ext2]], [[reiserfs]], [[ISO 9660]] tai auto. Tiedostojärjestelmän tyypin eteen voidaan myös lisätä sana no, jolloin se kääntää valinnan päinvastaiseksi. Esimerkiksi komento &amp;lt;tt&amp;gt;mount -a -t nomsdos,ext&amp;lt;/tt&amp;gt; liittäisi kaikki [[fstab|fstabissa]] määritetyt tiedostojärjestelmät paitsi ne, joiden tyyppi on ext tai msdos.&lt;br /&gt;
*-L Osion liittäminen sen nimen (label) perusteella. Tarpeellinen, mikäli labeleille ei ole omia laitetiedostoja esimerkiksi hakemiston &amp;lt;tt&amp;gt;/dev/disk/by-label&amp;lt;/tt&amp;gt; alla.&lt;br /&gt;
*-U Osion liittäminen sen UUID-tunnuksen perusteella. Tarpeellinen, jos niille ei ole omia laitetiedostoja esimerkiksi hakemistossa &amp;lt;tt&amp;gt;/dev/disk/by-uuid&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Irrotus umount-komennolla ==&lt;br /&gt;
Liitetty tiedostojärjestelmä irrotetaan komennolla &amp;lt;tt&amp;gt;umount&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 umount laitetiedosto&lt;br /&gt;
tai&lt;br /&gt;
 umount liitoshakemisto&lt;br /&gt;
Esimerkiksi&lt;br /&gt;
 umount /dev/hda1&lt;br /&gt;
tai&lt;br /&gt;
 umount /mnt/varasto&lt;br /&gt;
&lt;br /&gt;
Jos irrottaminen ei onnistu vaan ohjelma antaa virheilmoituksen &amp;lt;tt&amp;gt;umount: /hakemisto: device is busy&amp;lt;/tt&amp;gt;, käyttää jokin prosessi jotain irrotettavassa tiedostojärjestelmässä olevaa tiedostoa tai hakemistoa. Jotta irrottaminen onnistuisi, on nämä sovellukset lopetettava tai saatava ne vapauttamaan hakemisto. Yleinen syy miksi laite on varattu on se, että komentotulkki on käynnissä ja sen [[työhakemisto]] on irrotettavan tiedostojärjestelmän sisällä. Ongelma ratkeaa vaihtamalla komentotulkin työhakemisto ([[cd]]-komennolla) hakemistoksi, joka on irrotettavan tiedostojärjestelmän ulkopuolella.&lt;br /&gt;
&lt;br /&gt;
Komennolla [[fuser]] voi selvittää, mikä prosessi käyttää tiettyä tiedostojärjestelmää.&lt;br /&gt;
&lt;br /&gt;
== Katso myös ==&lt;br /&gt;
*[[Fstab]]&lt;br /&gt;
*[[Ntfs-3g]]&lt;br /&gt;
*[[UnionFS]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Tiedostojärjestelmät]]&lt;br /&gt;
[[Luokka:Osiot]]&lt;br /&gt;
[[Luokka:Komentorivin perustyökalut]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Mount&amp;diff=35080</id>
		<title>Mount</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Mount&amp;diff=35080"/>
		<updated>2011-09-20T18:26:26Z</updated>

		<summary type="html">&lt;p&gt;Jem: mount-ohjelman käyttö pelkällä liitoskohdalla.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Komentorivi]]komennolla mount &#039;&#039;liitetään&#039;&#039; [[Linuxin hakemistorakenne|hakemistopuuhun]] eri tiedostojärjestelmiä, esimerkiksi levyosioita, [[verkkolevy]]jä ja [[levykuva|levykuvia]]. Linuxissa mihin tahansa hakemistoon voidaan liittää erillinen [[tiedostojärjestelmä]]: esimerkiksi [[juurihakemisto]] &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt; voi olla yhdellä levyosiolla, alihakemisto &amp;lt;tt&amp;gt;[[kotihakemisto|/home]]&amp;lt;/tt&amp;gt; toisella ja cd-asema vaikkapa hakemistossa &amp;lt;tt&amp;gt;/home/pentti/tavaraa/linux&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Liittäminen (&amp;quot;mounttaaminen&amp;quot;) on edellytys tiedostojärjestelmän sisällön näyttämiselle käyttöjärjestelmässä. Jos esimerkiksi jotakin kiintolevyosiota tai cd-levyä ei ole liitetty, näkyy se Linuxissa ainoastaan [[laitetiedosto]]na /dev-hakemiston alla. Esimerkiksi [[DVD-elokuvat|DVD-elokuva]]n toistaminen tai cd-levyn [[levyn polttaminen|polttaminen]] ei edellytä levyn liittämistä (levyn sisältöä ei tällöin käsitellä tiedosto tiedostolta). Liittäminen sen sijaan vaaditaan, mikäli levyn/tiedostojärjestelmän sisältöä halutaan käsitellä tiedostomuodossa esimerkiksi [[:Luokka:Tiedostonhallinta|tiedostonhallintaohjelmassa]].&lt;br /&gt;
&lt;br /&gt;
Liitoksen purkamista kutsutaan &#039;&#039;irrottamiseksi&#039;&#039; (engl. unmounting). Liitoksen voi irrottaa joko käsin tai antaa käyttöjärjestelmän hoitaa se automaattisesti esimerkiksi järjestelmän (hallitun) sulkemisen yhteydessä. &lt;br /&gt;
&lt;br /&gt;
Mikäli liitetyn tiedostojärjestelmän sisältävä media (esimerkiksi [[USB-muisti]]tikku tai verkkolevylle johtava kaapeli) otetaan fyysisesti irti koneesta irrottamatta ensin sillä sijaitsevaa tiedostojärjestelmää, jäävät monet väliaikaistiedostot kirjoittamatta tiedostojärjestelmään (mikä vahingoittaa tiedostojärjestelmää) ja lisäksi sen sisältö jää &amp;quot;kummittelemaan&amp;quot; hakemistopuuhun. &lt;br /&gt;
&lt;br /&gt;
Uusissa työpöytäkäyttöön suunnitelluissa Linux-järjestelmissä cd- ja dvd-levyt yleensä sekä liitetään että irrotetaan automaattisesti, joten käsin irrottaminen on niiden osalta yleensä tarpeen vain silloin, kun levy on myös liitetty käsin (mount-komennolla). Verkkoyhteyden takana sijaitsevat tiedostojärjestelmät (verkkolevyt) täytyy irrottaa käsin, mikäli verkkoyhteys on katkeamassa kesken järjestelmän päälläolon. USB-muistitikut ja ulkoiset kiintolevyt on irrotettava käsin, mikäli ne aiotaan ottaa irti koneesta ennen sen sulkemista. [[GUI|Graafisessa]] ympäristössä tiedostojärjestelmän irrottaminen tapahtuu yleensä klikkaamalla sen kuvaketta hiiren toisella näppäimellä sekä valitsemalla &amp;quot;Irrota&amp;quot;, &amp;quot;Remove safely&amp;quot;, &amp;quot;Unmount&amp;quot; ym. Komentorivillä tähän voidaan käyttää komentoa &amp;lt;tt&amp;gt;umount&amp;lt;/tt&amp;gt; (ks alla).&lt;br /&gt;
&lt;br /&gt;
Tiedostojärjestelmän liittämiseen ja irrottamiseen tarvitaan [[pääkäyttäjä]]n oikeudet, ellei tiettyä liittämistä (esimerkiksi USB-muistitikun liittämistä polkuun &amp;lt;tt&amp;gt;/media/usb-muisti&amp;lt;/tt&amp;gt;) ole erikseen sallittu &amp;lt;tt&amp;gt;[[fstab|/etc/fstab]]&amp;lt;/tt&amp;gt;-tiedostossa.&lt;br /&gt;
&lt;br /&gt;
== Käyttö ==&lt;br /&gt;
Yleinen muoto mount-komennolle on seuraava:&lt;br /&gt;
 mount [valitsimet] [-o liitosasetukset] mistä minne&lt;br /&gt;
Liitosasetukset ovat samat kuin [[fstab|/etc/fstab]]-tiedostossa käytettävät asetukset.&lt;br /&gt;
&lt;br /&gt;
Esimerkiksi ensimmäisen kiintolevyn ensimmäinen osio (vastaa Microsoft Windows -järjestelmässä C-asemaa) liitettäisiin hakemistoon &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; komennolla:&lt;br /&gt;
 mount /dev/hda1 /home&lt;br /&gt;
&lt;br /&gt;
Tässä &amp;lt;tt&amp;gt;/dev/hda1&amp;lt;/tt&amp;gt; on liitettävän osion [[laitetiedosto]]. Riippuen käytettävästä ajurista (esimerkiksi [[libata]]) sekä kiintolevyn liitäntätavasta saattaa yllämainittuna laitetiedostona olla myös &amp;lt;tt&amp;gt;/dev/sda1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Useissa järjestelmissä liitettävän osion määrittelemiseen voi käyttää myös sen nimeä (label), [[wikipedia:UUID|UUID]]-tunnusta, väyläosoitetta tai valmistajan laiteelle antamaa nimeä. Näitä vastaavat [[udev]]in ylläpitämät laitetiedostot löytyvät tällöin &amp;lt;tt&amp;gt;/dev/disk&amp;lt;/tt&amp;gt;-hakemiston alta.&lt;br /&gt;
&lt;br /&gt;
Jos mount ei tunnista automaattisesti levyosion tiedostojärjestelmää, voidaan se kertoa valitsimella &amp;lt;tt&amp;gt;-t&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 mount -t [[ext3]] /dev/hda1 /home&lt;br /&gt;
&lt;br /&gt;
Mount-komennolla voi liittää myös levykuvia (.iso). Tiedoston &amp;lt;tt&amp;gt;levy.iso&amp;lt;/tt&amp;gt; sisältö liitettäisiin hakemistoon &amp;lt;tt&amp;gt;/home/kayttaja/levy&amp;lt;/tt&amp;gt; seuraavasti:&lt;br /&gt;
 mount -o [[loop]] levy.iso /home/kayttaja/levy&lt;br /&gt;
&lt;br /&gt;
Levykuvien liittäminen vaatii [[ydin|ytimeen]] &amp;quot;&#039;&#039;Loopback device support&#039;&#039;&amp;quot; -tuen joko sisäänkäännettynä tai [[moduuli]]na (mikäli käytetään moduulia, on moduulin oltava ladattuna komennolla &amp;lt;tt&amp;gt;[[modprobe]] loop&amp;lt;/tt&amp;gt;). Lisätietoja artikkelissa [[ISO 9660]]. &lt;br /&gt;
&lt;br /&gt;
Yhdellä laitteella voi olla useampia liitoskohtia. Seuraava liittäisi laitteen &amp;lt;tt&amp;gt;/dev/sdf4&amp;lt;/tt&amp;gt; alkuperäiset liitoskohdan &amp;lt;tt&amp;gt;/mnt/sdf4&amp;lt;/tt&amp;gt; ohella myös liitoskohtaan &amp;lt;tt&amp;gt;/mnt/kuvat&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 mount --bind /mnt/sdf4 /mnt/kuvat&lt;br /&gt;
&lt;br /&gt;
Liitoskohta on mahdollista siirtää ilman sen irrottamista. Tämä tapahtuu käyttäen valitsinta &amp;lt;tt&amp;gt;--move&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 mount --move /vanha/sijainti /uusi/sijainti&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;remount&#039;&#039;-optiolla voidaan vaihtaa jo liitetyn tiedostojärjestelmän asetuksia: esimerkiksi komento&lt;br /&gt;
 mount -o remount,ro /home&lt;br /&gt;
asettaisi /home-osion vain luku -tilaan, jolloin se voidaan esimerkiksi tarkistaa [[fsck]]-ohjelmalla.&lt;br /&gt;
&lt;br /&gt;
Jos tiedostojärjestelmän liitos on mainittu [[fstab|/etc/fstab]]-tiedostossa, voidaan mount-komennolle antaa argumentiksi pelkän liitoskohdan tai liitettävän laitteen. Mount-komento lukee tällöin tarvittavan muun tiedon [[fstab|/etc/fstab]]-tiedostosta. Esimerkki:&lt;br /&gt;
&lt;br /&gt;
 mount /mnt/cdrom&lt;br /&gt;
&lt;br /&gt;
Pelkkä komento&lt;br /&gt;
 mount&lt;br /&gt;
listaa kaikki liitetyt tiedostojärjestelmät.&lt;br /&gt;
&lt;br /&gt;
=== Valitsimia ===&lt;br /&gt;
Mount-komennolle voidaan antaa seuraavia [[valitsin|valitsimia]] (luettelo ei ole täydellinen):&lt;br /&gt;
*-a: Liittää kaikki tiedostojärjestelmät jotka on määritelty tiedostossa [[fstab|/etc/fstab]] ilman määritettä &#039;&#039;noauto&#039;&#039;.&lt;br /&gt;
*-n: /etc/mtab-tiedostoa ei päivitetä. Käytettävä kun &amp;lt;tt&amp;gt;/etc&amp;lt;/tt&amp;gt; on kirjoitussuojattu, muutoin tarpeeton.&lt;br /&gt;
*-o &amp;lt;tt&amp;gt;asetukset&amp;lt;/tt&amp;gt;: Liittää tietyin liitosasetuksin, kts. [[fstab]].&lt;br /&gt;
*-r: Liitos vain luku -tilassa. Sama kuin -o ro.&lt;br /&gt;
*-w: Liitos luku/kirjoitus-tilassa. Oletusasetus, sama kuin -o rw.&lt;br /&gt;
*-t &amp;lt;tt&amp;gt;tiedostojärjestelmä&amp;lt;/tt&amp;gt;: Kertoo tiedostojärjestelmän tyypin. Esim. [[ext2]], [[reiserfs]], [[ISO 9660]] tai auto. Tiedostojärjestelmän tyypin eteen voidaan myös lisätä sana no, jolloin se kääntää valinnan päinvastaiseksi. Esimerkiksi komento &amp;lt;tt&amp;gt;mount -a -t nomsdos,ext&amp;lt;/tt&amp;gt; liittäisi kaikki [[fstab|fstabissa]] määritetyt tiedostojärjestelmät paitsi ne, joiden tyyppi on ext tai msdos.&lt;br /&gt;
*-L Osion liittäminen sen nimen (label) perusteella. Tarpeellinen, mikäli labeleille ei ole omia laitetiedostoja esimerkiksi hakemiston &amp;lt;tt&amp;gt;/dev/disk/by-label&amp;lt;/tt&amp;gt; alla.&lt;br /&gt;
*-U Osion liittäminen sen UUID-tunnuksen perusteella. Tarpeellinen, jos niille ei ole omia laitetiedostoja esimerkiksi hakemistossa &amp;lt;tt&amp;gt;/dev/disk/by-uuid&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Irrotus umount-komennolla ==&lt;br /&gt;
Liitetty tiedostojärjestelmä irrotetaan komennolla &amp;lt;tt&amp;gt;umount&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 umount laitetiedosto&lt;br /&gt;
tai&lt;br /&gt;
 umount liitoshakemisto&lt;br /&gt;
Esimerkiksi&lt;br /&gt;
 umount /dev/hda1&lt;br /&gt;
tai&lt;br /&gt;
 umount /mnt/varasto&lt;br /&gt;
&lt;br /&gt;
Jos irrottaminen ei onnistu vaan ohjelma antaa virheilmoituksen &amp;lt;tt&amp;gt;umount: /hakemisto: device is busy&amp;lt;/tt&amp;gt;, käyttää jokin prosessi jotain irrotettavassa tiedostojärjestelmässä olevaa tiedostoa tai hakemistoa. Jotta irrottaminen onnistuisi, on nämä sovellukset lopetettava tai saatava ne vapauttamaan hakemisto. Komennolla [[fuser]] voi selvittää, mikä prosessi käyttää tiettyä tiedostojärjestelmää.&lt;br /&gt;
&lt;br /&gt;
== Katso myös ==&lt;br /&gt;
*[[Fstab]]&lt;br /&gt;
*[[Ntfs-3g]]&lt;br /&gt;
*[[UnionFS]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Tiedostojärjestelmät]]&lt;br /&gt;
[[Luokka:Osiot]]&lt;br /&gt;
[[Luokka:Komentorivin perustyökalut]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Kansion_yhteisk%C3%A4ytt%C3%B6_ryhm%C3%A4ss%C3%A4&amp;diff=35031</id>
		<title>Kansion yhteiskäyttö ryhmässä</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Kansion_yhteisk%C3%A4ytt%C3%B6_ryhm%C3%A4ss%C3%A4&amp;diff=35031"/>
		<updated>2011-09-16T11:52:20Z</updated>

		<summary type="html">&lt;p&gt;Jem: Linkki korjattu.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Joskus on tarvetta sille, että tietokoneella on [[hakemisto]], johon usealla [[käyttäjä]]llä on sekä luku- että kirjoitus[[tiedoston oikeudet|oikeudet]] &#039;&#039;&#039;pysyvästi&#039;&#039;&#039; siten, että myös kaikissa uusissa ja muokatuissa tiedostoissa säilyy [[ryhmä]]n sisäinen luku- ja kirjoitusoikeus. &lt;br /&gt;
&lt;br /&gt;
Tällainen tilanne on esimerkiksi:&lt;br /&gt;
* [[palvelin|palvelimella]], jossa useampi henkilö tekee yhdessä jotakin projektia tietyssä hakemistossa ja halutaan, että ryhmän sisäinen luku- ja kirjoitusoikeus säilyy myös uusissa ja muokatuissa tiedostoissa.&lt;br /&gt;
* kotona, jos vaikkapa jokaisella perheenjäsenellä on oma käyttäjätunnus, mutta halutaan silti pitää tietyssä hakemistossa yhteinen multimedia-arkisto, joihin kaikilla on luku- ja kirjoitusoikeus.&lt;br /&gt;
&lt;br /&gt;
==Perinteinen järjestely==&lt;br /&gt;
Perinteinen asetelma on, että tietokoneen varsinaiset käyttäjät kuuluvat yhteen [[ryhmä]]än (&amp;quot;users&amp;quot;) tai että usein yhteistyötä tekevät kuuluvat samaan hallinnollisen jaon mukaiseen ryhmään (&amp;quot;asiakaspalvelu&amp;quot;). Tässä asetelmassa yleensä käytetään [[umask]]-arvoa 027, jolloin ryhmällä on lukuoikeudet, muttei kirjoitusoikeuksia, uusiin tiedostoihin.&lt;br /&gt;
&lt;br /&gt;
Jotta väljä umask ei haittaisi, henkilökohtaiset tiedostot laitetaan hakemistoihin, joiden käyttöoikeudet on käsin rajattu tai oikeudet rajoitetaan tiedostokohtaisesti. Kotihakemiston lukuoikeus voi myös olla hyvä poistaa:&lt;br /&gt;
 chmod go= ~/salainen/&lt;br /&gt;
 chmod go= ~/.netrc&lt;br /&gt;
 [[chmod]] go=x ~/.&lt;br /&gt;
&lt;br /&gt;
===Uusi ryhmä ja sgid===&lt;br /&gt;
Jos yhteistyötä tekevät eivät ennestään kuulu samaan ryhmään, perustetaan uusi ryhmä, johon yhteistyötä tekevät liitetään. Koska tämä ryhmä ei ole käyttäjien ensisijainen ryhmä, uudet tiedostot pitää joko erikseen siirtää kyseisen ryhmän omistukseen tai yhteiseen hakemistoon on asetettava [[sgid]]-bitti (&amp;quot;Set Group IDentity&amp;quot;), jolloin uudet tiedostot perivät hakemiston ryhmän ja alihakemistot myös sgid-bitin.&lt;br /&gt;
&lt;br /&gt;
 mkdir /export/leffat&lt;br /&gt;
 [[chgrp]] perhe /export/leffat&lt;br /&gt;
 chmod ug=rwx,o= /export/leffat&lt;br /&gt;
 chmod g+s /export/leffat&lt;br /&gt;
&lt;br /&gt;
Nyt tähän hakemistoon ei ole pääsyä kuin ryhmällä perhe, mutta perheen jäsenet voivat luoda, muokata ja poistaa tiedostoja hakemistosta. Uusi tiedosto tai alihakemisto saa omistajakseen sen luojan ja ryhmäkseen ryhmän perhe.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Huom! Tiedostojen g+s on eri asia kuin hakemistojen g+s. Jos tiedostolle asettaa g+s:n, se tarkoittaa sitä, että kun tiedosto suoritetaan, se suoritetaan tiedoston ryhmän oikeuksin (jos kyseessä siis on tietokoneohjelma). &#039;&#039;g+s&#039;&#039; pitääkin asettaa nimenomaan hakemistoille.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Toimivuus===&lt;br /&gt;
Ryhmällä ei ole oikeuksia muuta kuin mitä tiedoston luoja sille antaa (käyttäjän [[umask]] määrää oletusoikeudet). Jos käyttäjällä on umask 027 tai vastaava, joka antaa ryhmälle lukuoikeudet, kuka tahansa ryhmästä voi kopioida tiedoston ja tallettaa sen uudestaan haluamillaan oikeuksilla, mahdollisesti muokkauksen jälkeen. Kirjoitusoikeuksien puuttuminen ei siis käytännössä estä muita muokkaamasta tiedostoa.&lt;br /&gt;
&lt;br /&gt;
Ongelmia tulee silloin, kun jollakin käyttäjällä on tiukempi umask, joka ei automaattisesti anna muille lukuoikeuksia. Vastaava tilanne syntyy, kun tiedosto siirretään muualta, jolloin ryhmä ja oikeudet pysyvät entisellään. Tällöin käyttäjän on aina muistettava asettaa oikeudet sallivammiksi tai root (mahdollisesti ajastetun työn muodossa) joutuu korjaamaan oikeuksia.&lt;br /&gt;
&lt;br /&gt;
Liian väljä umask ei haittaa tässä yhteydessä, koska mahdollisesti salassapidettävät tiedostot pysyvät salassa hakemiston oikeuksien turvin, kuhan ryhmään kuulumattomilla ei ole oikeuksia hakemistoon. Salassapidettäviä ja julkisia tiedostoja ei kannata pitää samassa hakemistossa.&lt;br /&gt;
&lt;br /&gt;
===Rajoitettu kirjoitusoikeus===&lt;br /&gt;
Jos yhteisessä hakemistossa pidetään tiedostoja, joita ei haluta muiden tuhoavan, hakemistolle voi asettaa t-bitin. Tällöin kirjoitusoikeus hakemistoon ei riitä poistamaan muiden tiedostoja.&lt;br /&gt;
&lt;br /&gt;
 chmod +t /export/leffat&lt;br /&gt;
&lt;br /&gt;
== Oikeuksien ja omistajuuden korjaaminen ==&lt;br /&gt;
Koska käyttäjä voi asettaa tiedostoille vääriä oikeuksia ja omistajuuksia, oikeuksia voi joutua korjaamaan. Tällainen automaattinen &amp;quot;korjaus&amp;quot; edellyttää, että käyttäjät eivät odota voivansa hallita tiedostojen oikeuksia kyseisessä hakemistossa.&lt;br /&gt;
&lt;br /&gt;
=== Setgidin käyttöönottaminen näppärästi ===&lt;br /&gt;
&lt;br /&gt;
1. Anna hakemisto ryhmän omistukseen:&lt;br /&gt;
 sudo [[chgrp]] -R tiimi /export/tiimihakemisto&lt;br /&gt;
2. Aseta hakemistoille oikeudet JA setgid-bitti&lt;br /&gt;
 sudo [[find]] /export/tiimihakemisto -type d -exec chmod g+rwxs {} \;&lt;br /&gt;
3. Aseta tiedostoille muokkausoikeudet&lt;br /&gt;
 sudo find /export/tiimihakemisto  -type f -exec chmod g+rw {} \;&lt;br /&gt;
&lt;br /&gt;
Tässä muodossa komennot sisältävät ison tietoturva-aukon:&lt;br /&gt;
 $ ls -l ~joku/salainen.txt&lt;br /&gt;
 -rw------- 1 joku jotkut 43245 9.3.2011 salainen.txt&lt;br /&gt;
 $ [[ln]] ~joku/salainen.txt /export/tiimihakemisto&lt;br /&gt;
&lt;br /&gt;
Ja komentosarjan jälkeen tiimin jäsenillä olisi täydet oikeudet salaiseen tiedostoon (katso [[kova linkki]]). Parempi versio:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 find /export/tiimihakemisto \( -type d -o -type f -links 1 \) \! -group tiimi -execdir /bin/chgrp tiimi &#039;{}&#039; \;&lt;br /&gt;
 find /export/tiimihakemisto -type d \! -perm -2070 -execdir /bin/chmod g+rwxs &#039;{}&#039; \;&lt;br /&gt;
 find /export/tiimihakemisto -type f -links 1 \! -perm -060 -execdir /bin/chmod g+rw &#039;{}&#039; \;&lt;br /&gt;
&lt;br /&gt;
Tiedostojen osalta varmistetaan testillä &amp;quot;&amp;lt;tt&amp;gt;-links 1&amp;lt;/tt&amp;gt;&amp;quot;, että tiedosto esiintyy vain tässä hakemistossa (jolloin ylläkuvattu hyökkäys estetään; hakemistot toimivat eri tavalla). Omistaja ja oikeudet muutetaan vain jos on muutostarvetta (jolloin [[aikaleima|ctime]] ei muutu turhaan). &amp;quot;&amp;lt;tt&amp;gt;-execdir&amp;lt;/tt&amp;gt;&amp;quot; suoritetaan kyseisessä hakemistossa, millä vaikeutetaan joitakin hyökkäyksiä ([[race condition]]), mutta tämän takia komennoille on annettava koko polku, siltä varalta että suorittajalla on &amp;quot;[[työhakemisto|.]]&amp;quot; oletuspolussaan.&lt;br /&gt;
&lt;br /&gt;
=== Ajastettu oikeuksien korjaus (cron) ===&lt;br /&gt;
Hakemistorakenne kannattaa joissakin tapauksissa käydä läpi säännöllisesti virheellisyyksien korjaamiseksi. Tämä hoituu koneen käytöstä riippuen ohjelmilla [[Komentojen ajastaminen#Säännölliset työt: cron ja anacron|cron ja anacron]].&lt;br /&gt;
&lt;br /&gt;
Cronin ajettavaksi voi laittaa ylläkuvatun skriptin kerran tunnissa tai vuorokaudessa. Huono puoli on se, että ratkaisu kuluttaa turhaan resursseja silloin kun mikään ei ole muuttunut eivätkä muutokset tapahdu reaaliaikaisesti.&lt;br /&gt;
&lt;br /&gt;
=== Taustaprosessi ===&lt;br /&gt;
Ongelmista pääsisi [[taustaprosessi]]lla, jolle ydin kertoo muutoksista, jolloin virheet voitaisiin korjata sitä mukaa kuin ne syntyvät, eikä hakemistoja tarvitsisi käydä läpi turhaan. Tähän ei vielä ole vakiintunutta ratkaisua, vaan tarvitseva joutuu itse koodaamaan tai etsimään sopivaa ohjelmaa.&lt;br /&gt;
&lt;br /&gt;
=== ACL eli pääsynvalvontalistat ===&lt;br /&gt;
Linuxissa voi ottaa käyttöön [[Tiedostojärjestelmän pääsylistat (ACL)|ACL]]-toiminnon, jonka avulla tiedosto-oikeuksien hallintaa voi tehdä huomattavasti yksityiskohtaisemmin. ACL-toiminto vaatii kuitenkin jonkin verran opettelua ja konfigurointia.&lt;br /&gt;
&lt;br /&gt;
== Käyttö Windows-järjestelmien kautta ==&lt;br /&gt;
&lt;br /&gt;
===Samba===&lt;br /&gt;
[[Samba]]an voi melko tarkkaan määrätä uusien tiedostojen ja hakemistojen oikeudet ja omistajuudet. Käyttämällä jaettua hakemistoa samban kautta ei tällöin pääse muuttamaan oikeuksia vääriksi. Hakemistoa ei tarvitse jakaa verkkoon, vaan sitä voi käyttää [[localhost]]in kautta.&lt;br /&gt;
&lt;br /&gt;
=== Osio Windowsin tiedostojärjestelmällä ===&lt;br /&gt;
Esimerkiksi sellaisessa tilanteessa, jossa perheen kaikki multimediatiedostot ovat yhdellä osiolla ja sitä halutaan käyttää myös Windowsista, näppärä ratkaisu on laittaa osion tiedostojärjestelmäksi NTFS ja sitten liittää se Linuxin sopivalla umask- ja ryhmätiedoilla, jolloin kaikki osion tiedostot ovat varmasti samoilla omistus- ja käyttöoikeuksilla.&lt;br /&gt;
&lt;br /&gt;
Esimerkkirivi [[fstab|/etc/fstab]]-tiedostosta:&lt;br /&gt;
 /dev/hda1	/mnt/windows	ntfs	defaults,umask=002,gid=1005 0 0&lt;br /&gt;
&lt;br /&gt;
== Katso myös ==&lt;br /&gt;
*[[Tiedoston oikeudet]]&lt;br /&gt;
*[[Käyttäjä]]&lt;br /&gt;
*[[Ryhmä]]&lt;br /&gt;
*[[Tietoturva]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Järjestelmä]]&lt;br /&gt;
[[Luokka:Ohjeet]]&lt;br /&gt;
[[Luokka:Tiedostojärjestelmät]]&lt;br /&gt;
[[Luokka:Käyttäjät ja ryhmät]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Tiedostoj%C3%A4rjestelm%C3%A4n_p%C3%A4%C3%A4sylistat_(ACL)&amp;diff=35030</id>
		<title>Tiedostojärjestelmän pääsylistat (ACL)</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Tiedostoj%C3%A4rjestelm%C3%A4n_p%C3%A4%C3%A4sylistat_(ACL)&amp;diff=35030"/>
		<updated>2011-09-16T11:48:30Z</updated>

		<summary type="html">&lt;p&gt;Jem: Ulkoiset linkit ja luokat.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Linux tukee joillakin tiedostojärjestelmillä niin sanottuja pääsylistoja, englanniksi access control list (ACL). Pääsylistoilla voidaan Linuxin [[Tiedoston oikeudet|perinteisiä tiedoston oikeuksia]] joustavammin hallita kenellä on pääsy eri tavalla käsitellä tiedostoja ja hakemistoja. Tavallisella Linuxin pääsyoikeusmekanismilla ei esimerkiksi ole mahdollista antaa kahdelle tai useammalle ryhmälle räätälöityjä oikeuksia tiedostoon.&lt;br /&gt;
&lt;br /&gt;
==Taustaa==&lt;br /&gt;
&lt;br /&gt;
Unixissa ja sitä myötä Linuxissa ei perinteisesti ole ollut tukea pääsylistoille, vaikka joissakin muissa käyttöjärjestelmissä ne ovat olleet käytössä jo 1960-luvulla. Unixin ACL:n standardointia varten perustettiin POSIX-työryhmä, joka ei kuitenkaan saanut työtänsä päätökseen. Työryhmän työn tuloksena jäi kuitenkin &amp;quot;POSIX 1003.1e Draft 17&amp;quot;, joka oli viimeinen työversio jonka ryhmä sai aikaiseksi ennen rahoituksen loppumista. Tämän työversion pohjalta toteutettiin ACL:t Linuxin kernel-versioon 2.5.46 vuonna 2002.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;POSIX draft&amp;quot;-ACL:ien lisäksi on NFSv4-verkkotiedostojärjestelmää varten olemassa oma ACL-spesifikaatio ja toteutus. Tällä sivulla keskitytään kuitenkin &amp;quot;POSIX draft ACL&amp;quot;-pääsylistoihin.&lt;br /&gt;
&lt;br /&gt;
==Järjestelmävaatimukset==&lt;br /&gt;
&lt;br /&gt;
Pääsylistojen käyttöönotto edellyttää, että&lt;br /&gt;
* Linuxin ydin on käännetty optiolla CONFIG_FS_POSIX_ACL=y&lt;br /&gt;
* tiedostojärjestelmä, jolla pääsylistoja halutaan käyttää on myös konfiguroitu tukemaan niitä&lt;br /&gt;
** esim. CONFIG_EXT4_FS_POSIX_ACL=y (Ext4-tiedostojärjestelmällä)&lt;br /&gt;
* tiedostojärjestelmä on [[Mount|mountattu]] acl-optiolla&lt;br /&gt;
&lt;br /&gt;
Ytimen käännösoptiot on mahdollisesti saatavilla tiedostosta /proc/config.gz (riippuen siitä, onko ydin käännetty optiolla CONFIG_IKCONFIG_PROC).&lt;br /&gt;
&lt;br /&gt;
 zcat /proc/config | grep FS_POSIX_ACL&lt;br /&gt;
&lt;br /&gt;
Mount-optiot saa selville komennolla &amp;lt;tt&amp;gt;mount&amp;lt;/tt&amp;gt;. Jos suluissa olevassa optioiden listassa ei ole sanaa &#039;&amp;lt;tt&amp;gt;acl&amp;lt;/tt&amp;gt;&#039;, tiedostojärjestelmä on mountattava uudelleen tällä optiolla. Pysyvästi muutoksen saa aikaan lisäämällä &amp;lt;tt&amp;gt;acl&amp;lt;/tt&amp;gt;-optio &amp;lt;tt&amp;gt;/etc/fstab&amp;lt;/tt&amp;gt;-tiedoston &amp;lt;tt&amp;gt;&amp;lt;opts&amp;gt;&amp;lt;/tt&amp;gt;-sarakkeen kohdalle, halutun tiedostojärjestelmän riville. Esimerkki:&lt;br /&gt;
 &amp;amp;#35;/etc/fstab: static file system information.&lt;br /&gt;
 &amp;amp;#35;&amp;lt;fs&amp;gt;                &amp;lt;mountpoint&amp;gt;    &amp;lt;type&amp;gt;          &amp;lt;opts&amp;gt;          &amp;lt;dump/pass&amp;gt;&lt;br /&gt;
 /dev/sda3            /               ext4            noatime,acl     0 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Pääsylistojen toiminta==&lt;br /&gt;
&lt;br /&gt;
Tiedostojärjestelmä jakaa käyttäjät kolmeen eri luokkaan: &#039;&#039;tiedoston omistaja&#039;&#039;, &#039;&#039;ryhmä&#039;&#039; ja &#039;&#039;muut&#039;&#039;. Jokaiseen näistä luokista liittyy kolme eri pääsyoikeutta: lukuoikeus (&amp;lt;tt&amp;gt;r&amp;lt;/tt&amp;gt;), kirjoitusoikeus (&amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt;) ja suoritusoikeus (&amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt;). Perinteisessä Unixin tiedostomallissa tiedostoon (tai hakemistoon) liittyy yksi omistaja ja yksi ryhmä, jota sanotaan ryhmäomistajaksi. &#039;Muut käyttäjät&#039;-joukon muodostavat kaikki ne käyttäjät, jotka eivät kuulu ryhmään eikä ole tiedoston omistaja.&lt;br /&gt;
&lt;br /&gt;
Pääsylistat laajentavat tätä mallia siten, että tiedostoon voidaan liittää useampia käyttäjiä ja ryhmiä, joilla jokaisella voi olla omat pääsyehdot tiedostoon. Esimerkiksi ryhmälle &#039;toimitus&#039; voidaan määritellä &#039;&amp;lt;tt&amp;gt;rw-&amp;lt;/tt&amp;gt;&#039;-oikeudet ja ryhmälle &#039;julkaisu&#039; vaikkapa oikeudet &#039;&amp;lt;tt&amp;gt;r--&amp;lt;/tt&amp;gt;&#039;. Tiedostolla on edelleen yksi omistaja ja ensisijainen ryhmä, jotka näkyvät &#039;&amp;lt;tt&amp;gt;ls -l&amp;lt;/tt&amp;gt;&#039; -komennolla.&lt;br /&gt;
&lt;br /&gt;
Tiedoston omistajaksi ei voi liittää useampaa omistajaa, ainoastaan yksi käyttäjä kuuluu luokkaan &#039;&#039;tiedoston omistaja&#039;&#039;. Tiedoston omistajaa voi toki vaihtaa chown-komennolla. Kuten aiemmin mainittiin, tiedostoon voi liittää yksittäisiä käyttäjiä, mutta näistä käyttäjistä ei siis tule tiedoston omistajia, vaan ne muodostavat yhden käyttäjän mini-ryhmiä. Toisin sanoen, tiedostoon liitetty käyttäjä kuuluu myös luokkaan &#039;&#039;ryhmä&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Algoritmi===&lt;br /&gt;
&lt;br /&gt;
Kun Linuxin ydin päättelee, onko käyttäjällä pääsyoikeus tiedostoon, se käyttää alla esitettyä algoritmia. Ohjelman ajo tapahtuu &#039;&#039;prosessissa&#039;&#039;, johon liittyy erilaisia attribuutteja, joista olennaisia tämän tarkastelun kannalta ovat käyttäjä-id (uid) sekä ryhmä-id:t (gid). Ryhmä-id:t koostuvat käyttäjän ensisijaisesta ryhmä-id:stä (perinteisesti &amp;lt;tt&amp;gt;/etc/passwd&amp;lt;/tt&amp;gt;-tiedostosta) sekä listasta lisäryhmiä (&amp;lt;tt&amp;gt;/etc/group&amp;lt;/tt&amp;gt;-tiedostosta). &amp;lt;tt&amp;gt;id&amp;lt;/tt&amp;gt;-komennolla voi tulostaa käyttäjä-id:n sekä ryhmä-id:t.&lt;br /&gt;
&lt;br /&gt;
# Jos uid = tiedoston omistajan id, pääsy päätellään &#039;&#039;tiedoston omistaja&#039;&#039; -luokan suojausbiteistä.&lt;br /&gt;
# Jos uid löytyy tiedostoon liitetyn pääsylistan yksittäisten käyttäjien joukosta, pääsy päätellään tämän listan alkion mukaan (*).&lt;br /&gt;
# Jos jokin prosessin gid = tiedoston ryhmäomistajan id, pääsy päätellään tämän listan alkion mukaan (*).&lt;br /&gt;
# Tarkastellaan niitä pääsylistan nimettyjen ryhmien alkioita, joissa on mikä tahansa prosessin gideistä. Jos jokin näistä alkioista sisältää halutun pääsyoikuden, pääsy sallitaan (*), muussa tapauksessa pääsy evätään. Jos mikään listan alkioista ei täsmää prosessin gidien kanssa, siirrytään kohtaan 5.&lt;br /&gt;
# Pääsy päätellään &#039;&#039;muut&#039;&#039;-luokan suojausbiteistä.&lt;br /&gt;
&lt;br /&gt;
(*) Tähdellä merkityissä kohdissa suoritetaan lisätarkistus pääsylistan mask-alkiota vastaan. Jos mask-kenttä ei sisällä haluttua oikeutta, pääsy evätään.&lt;br /&gt;
&lt;br /&gt;
Nämä säännöt saattavat vaikuttaa monimutkaisilta, varsinkin kohta 4. Ne ovat kuitenkin yhteensopivia Unixin perinteisen tiedostojen suojausmallin kanssa, jonka mukaan suojaus päätellään käyttäjään tarkimmin täsmäävän säännön mukaan. Tiedoston omistajaan sovelletaan vain ja ainoastaan &#039;&#039;tiedoston omistaja&#039;&#039; -luokan suojausbittejä. Jos käyttäjä ei ole tiedoston omistaja, mutta kuuluu tiedoston omistajaryhmään, sovelletaan vain &#039;&#039;ryhmä&#039;&#039;-luokan suojausbittejä, ja vain muissa tapauksissa sovelletaan &#039;&#039;muut&#039;&#039;-luokan suojausbittejä. Tämä tarkoittaa käytännössä sitä, että tiedoston omistaja voi halutessaan sulkea itseltään pääsyn tiedostoon, mutta sallia sen muille (esimerkiksi suojauksella &amp;lt;tt&amp;gt;----rwxrwx&amp;lt;/tt&amp;gt;). Samalla tavalla tiedostoon pääsy voidaan estää tiedoston omistajaryhmään kuuluville, mutta sallia muille (esimerkiksi suojauksella &amp;lt;tt&amp;gt;-rwx---rwx&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Pääsylistan lisääminen tuo tiedostoon lisää &#039;&#039;ryhmä&#039;&#039;-luokkaan kuuluvia käyttäjiä ja ryhmiä. (Muista, että listaan lisätty yksittäinen käyttäjä kuuluu &#039;&#039;ryhmä&#039;&#039;-luokkaan; tiedostolla on vain yksi omistaja.) &amp;quot;Tarkimmin täsmäävän&amp;quot; -säännön takia algoritmin kohdassa 4 pääsy evätään heti, jos käyttäjä löytyy &#039;&#039;ryhmä&#039;&#039;-luokasta, mutta hänellä ei ole tämän luokan suojausten mukaan pääsyä tiedostoon. Vain siinä tapauksessa, että käyttäjä ei löydy &#039;&#039;ryhmä&#039;&#039;-luokasta, sovelletaan &#039;&#039;muut&#039;&#039;-luokan suojausta.&lt;br /&gt;
&lt;br /&gt;
Pääsylistan mask-alkio ansaitsee maininnan tässä yhteydessä. Linux noudattaa POSIX.1-standardia, joka sanoo, että tiedoston ryhmäsuojausbitit (siis ne jotka ovat näkyvillä &amp;lt;tt&amp;gt;ls -l&amp;lt;/tt&amp;gt; komennon tulosteessa) määräävät mikä suojaus tiedostolla on kun siihen sovelletaan &#039;&#039;ryhmä&#039;&#039;-luokan suojausmoodia. Pääsylistoilla on kuitenkin mahdollista antaa muille ryhmille kuin tiedoston omistajaryhmälle vapaampi suojaus kuin mitä ryhmäsuojauksella on. Esimerkiksi, jos tiedoston moodi on:&lt;br /&gt;
&lt;br /&gt;
 -rw-r--r--+ 1 jem users 0 Sep 14 19:28 juttu.txt&lt;br /&gt;
&lt;br /&gt;
sillä voi kuitenkin olla pääsylista, jonka mukaan &amp;lt;tt&amp;gt;staff&amp;lt;/tt&amp;gt;-ryhmällä on kirjoitusoikeus tiedostoon. Tämä ei ole yhteensopivaa POSIX.1-standardin mukaan. POSIX.1 ei salli, että tiedostoihin on maagisesti oikeuksia joillekin käyttäjille, mekanismilla jota se ei tunne. Tämän ongelman ratkaisemiseksi pääsylistoihin kuuluu myös &amp;lt;tt&amp;gt;mask&amp;lt;/tt&amp;gt;-alkio joka viime kädessä ratkaisee, onko tiedostoon pääsyä vai ei.&lt;br /&gt;
&lt;br /&gt;
Mask-alkioon vaikuttaa esimerkiksi &amp;lt;tt&amp;gt;chmod&amp;lt;/tt&amp;gt;-ohjelma. Jos tiedostolta poistetaan &amp;lt;tt&amp;gt;chmod&amp;lt;/tt&amp;gt;-komennolla lukuoikeusoikeus &#039;&#039;ryhmä&#039;&#039;-luokalta,&lt;br /&gt;
 chmod g-r juttu.txt&lt;br /&gt;
POSIX.1 sanoo, ettei ryhmän jäsenellä saa olla lukuoikeutta tuohon tiedostoon. Chmod-komento (tai oikeammin ytimen chmod-systeemikutsu, jota chown-ohjelma kutsuu) ratkaisee tämän poistamalla r-oikeuden mask-alkion arvosta. Jos chmod-käskyllä palautetaan lukuoikeus &#039;&#039;ryhmä&#039;&#039;-luokalle, mask-alkioon palautetaan taas r-oikeus. &amp;lt;tt&amp;gt;Chmod&amp;lt;/tt&amp;gt;-käsky ei vaikuta muiden pääsylistan alkioiden arvoihin, joten tiedosto on nyt samassa tilassa kuin ennen ensimmäistä &amp;lt;tt&amp;gt;chmod&amp;lt;/tt&amp;gt;-käskyä.&lt;br /&gt;
&lt;br /&gt;
==Oletuspääsylistat==&lt;br /&gt;
&lt;br /&gt;
Pääsylistoja voidaan käyttää esimerkiksi siten, että tietyssä hakemistossa olevilla tiedostoilla on kahdella eri ryhmällä pääsyoikeus, mutta ulkopuolisilla ei. Esimerkiksi ryhmällä &amp;lt;tt&amp;gt;kehitys&amp;lt;/tt&amp;gt; voi olla luku- ja kirjoitusoikeus kaikkiin tiedostoihin, ja ryhmällä &amp;lt;tt&amp;gt;testaus&amp;lt;/tt&amp;gt; lukuoikeus. Tämä järjestely on helppo saada aikaan muuttamalla tiedostojen pääsylistoja. Mutta entä kun hakemistoon luodaan uusi tiedosto? Olisi kovin työlästä ja virhealtista muistaa aina käsin muokata tiedoston pääsylistaa kun hakemistoon luodaan uusi tiedosto.&lt;br /&gt;
&lt;br /&gt;
Tätä tarkoitusta varten hakemistoihin voi liittää oletuspääsylistan. Oletuspääsylista ei vaikuta hakemiston pääsyoikeuksiin (sitä varten on olemassa hakemiston oma, varsinainen pääsylista), vaan toimii mallina pääsylistalle, jonka tiedosto saa kun se luodaan hakemistossa.&lt;br /&gt;
&lt;br /&gt;
==Pääsylistojen muokkaus==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;ls -l&amp;lt;/tt&amp;gt; -komento antaa vinkin tiedostoon liitetyistä pääsylistoista tulostamalla &amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;-merkin suojauskentän perään. Ls-ohjelmalla ei kuitenkaan kerro tämän enempää pääsylistoista.&lt;br /&gt;
&lt;br /&gt;
Pääsylistojen käsittelyä varten on olemassa ohjelmat &amp;lt;tt&amp;gt;getfacl&amp;lt;/tt&amp;gt; ja &amp;lt;tt&amp;gt;setfacl&amp;lt;/tt&amp;gt;. Ellei näitä ohjelmia ole asennettu jo valmiiksi, ne pitää ladata ja asentaa erikseen. Miten tämä tapahtuu on jakeluriippuvaista – ne löytyvät tyypillisesti paketista nimeltään &#039;acl&#039;, tms.&lt;br /&gt;
&lt;br /&gt;
Ohjelmalla &amp;lt;tt&amp;gt;getfacl&amp;lt;/tt&amp;gt; (&amp;quot;Get File ACL&amp;quot;) voi tutkia tiedostoon liittyvää pääsylistaa, ohjelmalla &amp;lt;tt&amp;gt;setfacl&amp;lt;/tt&amp;gt; (&amp;quot;Set File ACL&amp;quot;) voi pääsylistaa muokata tai kokonaan poistaa.&lt;br /&gt;
&lt;br /&gt;
Esimerkki getfacl-komennon tulosteesta:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; getfacl juttu.txt&lt;br /&gt;
 # file: juttu.txt&lt;br /&gt;
 # owner: hemmo&lt;br /&gt;
 # group: users&lt;br /&gt;
 user::rw-&lt;br /&gt;
 group::r--&lt;br /&gt;
 group:devel:rw-            #effective:r--&lt;br /&gt;
 mask::r-x&lt;br /&gt;
 other::r--&lt;br /&gt;
&lt;br /&gt;
Saman tiedoston listaus &amp;lt;tt&amp;gt;ls -l&amp;lt;/tt&amp;gt; -komennolla:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ls -l juttu.txt&lt;br /&gt;
 -rw-r-xr--+ 1 hemmo users 0 Sep 16 08:49 juttu.txt&lt;br /&gt;
&lt;br /&gt;
Getfacl-komennon tulosteesta nähdään, että&lt;br /&gt;
* tiedoston omistaa käyttäjä hemmo ja sen ryhmäomistaja on users&lt;br /&gt;
* hemmolla on luku- ja kirjoitusoikeus tiedostoon&lt;br /&gt;
* users-ryhmän jäsenillä on lukuoikeus tiedostoon&lt;br /&gt;
* devel-ryhmän jäsenille on erikseen annettu luku- ja kirjoitusoikeus tiedostoon, mutta...&lt;br /&gt;
** koska mask:n arvo on r-x, devel-ryhmällä ei kuitenkaan ole kirjoitusoikeutta&lt;br /&gt;
* jos tiedostoa käsittelee joku muu kuin hemmo tai edellä mainittujen ryhmien jäsen, sovelletaan other-kohdan lukuoikeutta&lt;br /&gt;
&lt;br /&gt;
Pääsylistojen muuttamiseen käytetään &amp;lt;tt&amp;gt;setfacl&amp;lt;/tt&amp;gt;-ohjelmaa. Pääsylistaa muutetaan komennon &amp;lt;tt&amp;gt;-m&amp;lt;/tt&amp;gt;-optiolla. Esimerkki:&lt;br /&gt;
 &amp;gt; setfacl -m u:lyyli:rw-,g:test:rw- juttu.txt&lt;br /&gt;
 &amp;gt; getfacl juttu.txt&lt;br /&gt;
 # file: juttu.txt&lt;br /&gt;
 # owner: hemmo&lt;br /&gt;
 # group: users&lt;br /&gt;
 user::rw-&lt;br /&gt;
 user:lyyli:rw-             #effective:r--&lt;br /&gt;
 group::r--&lt;br /&gt;
 group:devel:rw-            #effective:r--&lt;br /&gt;
 group:test:rw-             #effective:r--&lt;br /&gt;
 mask::r-x&lt;br /&gt;
 other::r--&lt;br /&gt;
&lt;br /&gt;
Uudet pääsylistan alkiot kerrotaan &amp;lt;tt&amp;gt;-m&amp;lt;/tt&amp;gt; option perään pilkuilla erotettuina (ei välilyöntiä pilkun jälkeen). Esimerkissä myönnettiin käyttäjälle lyyli sekä ryhmälle test luku- ja kirjoitusoikeus tiedostoon. Koska mask on edelleen r-w, tosiasiassa heillä ei edelleenkään ole kirjoitusoikeutta tiedostoon. Tämä voidaan korjata &amp;lt;tt&amp;gt;chmod&amp;lt;/tt&amp;gt;-komennolla:&lt;br /&gt;
 &amp;gt; chmod g+w juttu.txt&lt;br /&gt;
 &amp;gt; getfacl juttu.txt&lt;br /&gt;
 # file: juttu.txt&lt;br /&gt;
 # owner: hemmo&lt;br /&gt;
 # group: users&lt;br /&gt;
 user::rw-&lt;br /&gt;
 user:lyyli:rw-&lt;br /&gt;
 group::r--&lt;br /&gt;
 group:devel:rw-&lt;br /&gt;
 group:test:rw-&lt;br /&gt;
 mask::rwx&lt;br /&gt;
 other::r--&lt;br /&gt;
&lt;br /&gt;
Pääsylistan alkioita voi poistaa &amp;lt;tt&amp;gt;setfacl&amp;lt;/tt&amp;gt;-ohjelman &amp;lt;tt&amp;gt;-x&amp;lt;/tt&amp;gt;-optiolla, pääsylistan voi korvata kokonaan toisella &amp;lt;tt&amp;gt;--set&amp;lt;/tt&amp;gt; -optiolla, ja poistaa kokonaan &amp;lt;tt&amp;gt;-b&amp;lt;/tt&amp;gt;-optiolla. Tiedoston pääsylistan voi kopioida tiedostosta toiseen näin:&lt;br /&gt;
 getfacl tiedosto1 | setfacl --set-file=- tiedosto2&lt;br /&gt;
&lt;br /&gt;
Lisätietoja &amp;lt;tt&amp;gt;getfacl&amp;lt;/tt&amp;gt;- ja &amp;lt;tt&amp;gt;setfacl&amp;lt;/tt&amp;gt;-komentojen man-sivuilla.&lt;br /&gt;
&lt;br /&gt;
==Ongelmia==&lt;br /&gt;
&lt;br /&gt;
* Monet varmuuskopiointiin käytetyt ohjelmat, kuten &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt;, eivät ymmärrä pääsylistoja. Tämä johtaa siihen, että tiedostot menettävät pääsylistansa, jos ne joudutaan palauttamaan &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt;-arkistosta.&lt;br /&gt;
&lt;br /&gt;
* Jotkut editorit toimivat siten, että tallennuksen eivät kirjoita tiedostoa uudestaan, vaan kirjoittavat muokatun tekstin uuteen tiedostoon, jonka nimeävät vanhan tiedoston mukaan. Käyttäjä ei huomaa tiedoston vaihtumista, sillä nimi on sama. Koska tiedosto kuitenkin on järjestelmän kannalta uusi, jos editori ei ota asiaa huomioon, tiedostossa saattaa olla väärä pääsylista. Uusi tiedosto saattaa saada pääsylistansa hakemiston oletuspääsylista, tai ei mitään pääsylistaa. Mm. Emacs-editori toimii oletusarvoisesti näin.&lt;br /&gt;
&lt;br /&gt;
* Tiedosto perii oletuspääsylistan vain hakemistosta, jossa se luodaan. Tiedosto säilyttää pääsylistansa, jos se siirretään (&amp;lt;tt&amp;gt;mv&amp;lt;/tt&amp;gt;-käskyllä) tai kopioidaan (&amp;lt;tt&amp;gt;cp&amp;lt;/tt&amp;gt;-käskyllä) toiseen hakemistoon, vaikka kohdehakemistolla on oletuspääsylista. Jos tiedosto luodaan hakemistossa, jossa ei ole oletuspääsylistaa, tai tiedostojärjestelmä ei edes tue pääsylistoja, tiedostoon ei tule mitään pääsylistaa.&lt;br /&gt;
&lt;br /&gt;
==Aiheesta muualla==&lt;br /&gt;
* [http://www.suse.de/~agruen/acl/linux-acls/online/ POSIX Access Control Lists on Linux]&lt;br /&gt;
* [http://www.vanemery.com/Linux/ACL/linux-acl.html Using ACLs with Fedora Core 2   (Linux Kernel 2.6.5)]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Järjestelmä]]&lt;br /&gt;
[[Luokka:Ohjeet]]&lt;br /&gt;
[[Luokka:Tiedostojärjestelmät]]&lt;br /&gt;
[[Luokka:Käyttäjät ja ryhmät]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Keskustelu:Pankkipalvelut&amp;diff=35023</id>
		<title>Keskustelu:Pankkipalvelut</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Keskustelu:Pankkipalvelut&amp;diff=35023"/>
		<updated>2011-09-16T10:41:39Z</updated>

		<summary type="html">&lt;p&gt;Jem: Ak: Uusi sivu: Pankkipalvelut-sivulla mainitaan, että Nordnet ei tue Linuxia ja toimii vain Internet Explorerilla. Sivulla https://www.nordnet.fi/mux/login/startFI.html?cmpi=start-loggain kuitenkin...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pankkipalvelut-sivulla mainitaan, että Nordnet ei tue Linuxia ja toimii vain Internet Explorerilla. Sivulla https://www.nordnet.fi/mux/login/startFI.html?cmpi=start-loggain kuitenkin mainitaan, että tuetut selaimet ovat IE 7 tai uudempi, Firefox 1.5 tai uudempi, Safari 2.0 tai uudempi. Käyttöjärjestelmästä ei tosin sanota mitään.&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Tiedostoj%C3%A4rjestelm%C3%A4n_p%C3%A4%C3%A4sylistat_(ACL)&amp;diff=35021</id>
		<title>Tiedostojärjestelmän pääsylistat (ACL)</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Tiedostoj%C3%A4rjestelm%C3%A4n_p%C3%A4%C3%A4sylistat_(ACL)&amp;diff=35021"/>
		<updated>2011-09-16T08:44:42Z</updated>

		<summary type="html">&lt;p&gt;Jem: Valmis syötettäväksi leijonille.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Linux tukee joillakin tiedostojärjestelmillä niin sanottuja pääsylistoja, englanniksi access control list (ACL). Pääsylistoilla voidaan Linuxin [[Tiedoston oikeudet|perinteisiä tiedoston oikeuksia]] joustavammin hallita kenellä on pääsy eri tavalla käsitellä tiedostoja ja hakemistoja. Tavallisella Linuxin pääsyoikeusmekanismilla ei esimerkiksi ole mahdollista antaa kahdelle tai useammalle ryhmälle räätälöityjä oikeuksia tiedostoon.&lt;br /&gt;
&lt;br /&gt;
==Taustaa==&lt;br /&gt;
&lt;br /&gt;
Unixissa ja sitä myötä Linuxissa ei perinteisesti ole ollut tukea pääsylistoille, vaikka joissakin muissa käyttöjärjestelmissä ne ovat olleet käytössä jo 1960-luvulla. Unixin ACL:n standardointia varten perustettiin POSIX-työryhmä, joka ei kuitenkaan saanut työtänsä päätökseen. Työryhmän työn tuloksena jäi kuitenkin &amp;quot;POSIX 1003.1e Draft 17&amp;quot;, joka oli viimeinen työversio jonka ryhmä sai aikaiseksi ennen rahoituksen loppumista. Tämän työversion pohjalta toteutettiin ACL:t Linuxin kernel-versioon 2.5.46 vuonna 2002.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;POSIX draft&amp;quot;-ACL:ien lisäksi on NFSv4-verkkotiedostojärjestelmää varten olemassa oma ACL-spesifikaatio ja toteutus. Tällä sivulla keskitytään kuitenkin &amp;quot;POSIX draft ACL&amp;quot;-pääsylistoihin.&lt;br /&gt;
&lt;br /&gt;
==Järjestelmävaatimukset==&lt;br /&gt;
&lt;br /&gt;
Pääsylistojen käyttöönotto edellyttää, että&lt;br /&gt;
* Linuxin ydin on käännetty optiolla CONFIG_FS_POSIX_ACL=y&lt;br /&gt;
* tiedostojärjestelmä, jolla pääsylistoja halutaan käyttää on myös konfiguroitu tukemaan niitä&lt;br /&gt;
** esim. CONFIG_EXT4_FS_POSIX_ACL=y (Ext4-tiedostojärjestelmällä)&lt;br /&gt;
* tiedostojärjestelmä on [[Mount|mountattu]] acl-optiolla&lt;br /&gt;
&lt;br /&gt;
Ytimen käännösoptiot on mahdollisesti saatavilla tiedostosta /proc/config.gz (riippuen siitä, onko ydin käännetty optiolla CONFIG_IKCONFIG_PROC).&lt;br /&gt;
&lt;br /&gt;
 zcat /proc/config | grep FS_POSIX_ACL&lt;br /&gt;
&lt;br /&gt;
Mount-optiot saa selville komennolla &amp;lt;tt&amp;gt;mount&amp;lt;/tt&amp;gt;. Jos suluissa olevassa optioiden listassa ei ole sanaa &#039;&amp;lt;tt&amp;gt;acl&amp;lt;/tt&amp;gt;&#039;, tiedostojärjestelmä on mountattava uudelleen tällä optiolla. Pysyvästi muutoksen saa aikaan lisäämällä &amp;lt;tt&amp;gt;acl&amp;lt;/tt&amp;gt;-optio &amp;lt;tt&amp;gt;/etc/fstab&amp;lt;/tt&amp;gt;-tiedoston &amp;lt;tt&amp;gt;&amp;lt;opts&amp;gt;&amp;lt;/tt&amp;gt;-sarakkeen kohdalle, halutun tiedostojärjestelmän riville. Esimerkki:&lt;br /&gt;
 &amp;amp;#35;/etc/fstab: static file system information.&lt;br /&gt;
 &amp;amp;#35;&amp;lt;fs&amp;gt;                &amp;lt;mountpoint&amp;gt;    &amp;lt;type&amp;gt;          &amp;lt;opts&amp;gt;          &amp;lt;dump/pass&amp;gt;&lt;br /&gt;
 /dev/sda3            /               ext4            noatime,acl     0 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Pääsylistojen toiminta==&lt;br /&gt;
&lt;br /&gt;
Tiedostojärjestelmä jakaa käyttäjät kolmeen eri luokkaan: &#039;&#039;tiedoston omistaja&#039;&#039;, &#039;&#039;ryhmä&#039;&#039; ja &#039;&#039;muut&#039;&#039;. Jokaiseen näistä luokista liittyy kolme eri pääsyoikeutta: lukuoikeus (&amp;lt;tt&amp;gt;r&amp;lt;/tt&amp;gt;), kirjoitusoikeus (&amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt;) ja suoritusoikeus (&amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt;). Perinteisessä Unixin tiedostomallissa tiedostoon (tai hakemistoon) liittyy yksi omistaja ja yksi ryhmä, jota sanotaan ryhmäomistajaksi. &#039;Muut käyttäjät&#039;-joukon muodostavat kaikki ne käyttäjät, jotka eivät kuulu ryhmään eikä ole tiedoston omistaja.&lt;br /&gt;
&lt;br /&gt;
Pääsylistat laajentavat tätä mallia siten, että tiedostoon voidaan liittää useampia käyttäjiä ja ryhmiä, joilla jokaisella voi olla omat pääsyehdot tiedostoon. Esimerkiksi ryhmälle &#039;toimitus&#039; voidaan määritellä &#039;&amp;lt;tt&amp;gt;rw-&amp;lt;/tt&amp;gt;&#039;-oikeudet ja ryhmälle &#039;julkaisu&#039; vaikkapa oikeudet &#039;&amp;lt;tt&amp;gt;r--&amp;lt;/tt&amp;gt;&#039;. Tiedostolla on edelleen yksi omistaja ja ensisijainen ryhmä, jotka näkyvät &#039;&amp;lt;tt&amp;gt;ls -l&amp;lt;/tt&amp;gt;&#039; -komennolla.&lt;br /&gt;
&lt;br /&gt;
Tiedoston omistajaksi ei voi liittää useampaa omistajaa, ainoastaan yksi käyttäjä kuuluu luokkaan &#039;&#039;tiedoston omistaja&#039;&#039;. Tiedoston omistajaa voi toki vaihtaa chown-komennolla. Kuten aiemmin mainittiin, tiedostoon voi liittää yksittäisiä käyttäjiä, mutta näistä käyttäjistä ei siis tule tiedoston omistajia, vaan ne muodostavat yhden käyttäjän mini-ryhmiä. Toisin sanoen, tiedostoon liitetty käyttäjä kuuluu myös luokkaan &#039;&#039;ryhmä&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Algoritmi===&lt;br /&gt;
&lt;br /&gt;
Kun Linuxin ydin päättelee, onko käyttäjällä pääsyoikeus tiedostoon, se käyttää alla esitettyä algoritmia. Ohjelman ajo tapahtuu &#039;&#039;prosessissa&#039;&#039;, johon liittyy erilaisia attribuutteja, joista olennaisia tämän tarkastelun kannalta ovat käyttäjä-id (uid) sekä ryhmä-id:t (gid). Ryhmä-id:t koostuvat käyttäjän ensisijaisesta ryhmä-id:stä (perinteisesti &amp;lt;tt&amp;gt;/etc/passwd&amp;lt;/tt&amp;gt;-tiedostosta) sekä listasta lisäryhmiä (&amp;lt;tt&amp;gt;/etc/group&amp;lt;/tt&amp;gt;-tiedostosta). &amp;lt;tt&amp;gt;id&amp;lt;/tt&amp;gt;-komennolla voi tulostaa käyttäjä-id:n sekä ryhmä-id:t.&lt;br /&gt;
&lt;br /&gt;
# Jos uid = tiedoston omistajan id, pääsy päätellään &#039;&#039;tiedoston omistaja&#039;&#039; -luokan suojausbiteistä.&lt;br /&gt;
# Jos uid löytyy tiedostoon liitetyn pääsylistan yksittäisten käyttäjien joukosta, pääsy päätellään tämän listan alkion mukaan (*).&lt;br /&gt;
# Jos jokin prosessin gid = tiedoston ryhmäomistajan id, pääsy päätellään tämän listan alkion mukaan (*).&lt;br /&gt;
# Tarkastellaan niitä pääsylistan nimettyjen ryhmien alkioita, joissa on mikä tahansa prosessin gideistä. Jos jokin näistä alkioista sisältää halutun pääsyoikuden, pääsy sallitaan (*), muussa tapauksessa pääsy evätään. Jos mikään listan alkioista ei täsmää prosessin gidien kanssa, siirrytään kohtaan 5.&lt;br /&gt;
# Pääsy päätellään &#039;&#039;muut&#039;&#039;-luokan suojausbiteistä.&lt;br /&gt;
&lt;br /&gt;
(*) Tähdellä merkityissä kohdissa suoritetaan lisätarkistus pääsylistan mask-alkiota vastaan. Jos mask-kenttä ei sisällä haluttua oikeutta, pääsy evätään.&lt;br /&gt;
&lt;br /&gt;
Nämä säännöt saattavat vaikuttaa monimutkaisilta, varsinkin kohta 4. Ne ovat kuitenkin yhteensopivia Unixin perinteisen tiedostojen suojausmallin kanssa, jonka mukaan suojaus päätellään käyttäjään tarkimmin täsmäävän säännön mukaan. Tiedoston omistajaan sovelletaan vain ja ainoastaan &#039;&#039;tiedoston omistaja&#039;&#039; -luokan suojausbittejä. Jos käyttäjä ei ole tiedoston omistaja, mutta kuuluu tiedoston omistajaryhmään, sovelletaan vain &#039;&#039;ryhmä&#039;&#039;-luokan suojausbittejä, ja vain muissa tapauksissa sovelletaan &#039;&#039;muut&#039;&#039;-luokan suojausbittejä. Tämä tarkoittaa käytännössä sitä, että tiedoston omistaja voi halutessaan sulkea itseltään pääsyn tiedostoon, mutta sallia sen muille (esimerkiksi suojauksella &amp;lt;tt&amp;gt;----rwxrwx&amp;lt;/tt&amp;gt;). Samalla tavalla tiedostoon pääsy voidaan estää tiedoston omistajaryhmään kuuluville, mutta sallia muille (esimerkiksi suojauksella &amp;lt;tt&amp;gt;-rwx---rwx&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Pääsylistan lisääminen tuo tiedostoon lisää &#039;&#039;ryhmä&#039;&#039;-luokkaan kuuluvia käyttäjiä ja ryhmiä. (Muista, että listaan lisätty yksittäinen käyttäjä kuuluu &#039;&#039;ryhmä&#039;&#039;-luokkaan; tiedostolla on vain yksi omistaja.) &amp;quot;Tarkimmin täsmäävän&amp;quot; -säännön takia algoritmin kohdassa 4 pääsy evätään heti, jos käyttäjä löytyy &#039;&#039;ryhmä&#039;&#039;-luokasta, mutta hänellä ei ole tämän luokan suojausten mukaan pääsyä tiedostoon. Vain siinä tapauksessa, että käyttäjä ei löydy &#039;&#039;ryhmä&#039;&#039;-luokasta, sovelletaan &#039;&#039;muut&#039;&#039;-luokan suojausta.&lt;br /&gt;
&lt;br /&gt;
Pääsylistan mask-alkio ansaitsee maininnan tässä yhteydessä. Linux noudattaa POSIX.1-standardia, joka sanoo, että tiedoston ryhmäsuojausbitit (siis ne jotka ovat näkyvillä &amp;lt;tt&amp;gt;ls -l&amp;lt;/tt&amp;gt; komennon tulosteessa) määräävät mikä suojaus tiedostolla on kun siihen sovelletaan &#039;&#039;ryhmä&#039;&#039;-luokan suojausmoodia. Pääsylistoilla on kuitenkin mahdollista antaa muille ryhmille kuin tiedoston omistajaryhmälle vapaampi suojaus kuin mitä ryhmäsuojauksella on. Esimerkiksi, jos tiedoston moodi on:&lt;br /&gt;
&lt;br /&gt;
 -rw-r--r--+ 1 jem users 0 Sep 14 19:28 juttu.txt&lt;br /&gt;
&lt;br /&gt;
sillä voi kuitenkin olla pääsylista, jonka mukaan &amp;lt;tt&amp;gt;staff&amp;lt;/tt&amp;gt;-ryhmällä on kirjoitusoikeus tiedostoon. Tämä ei ole yhteensopivaa POSIX.1-standardin mukaan. POSIX.1 ei salli, että tiedostoihin on maagisesti oikeuksia joillekin käyttäjille, mekanismilla jota se ei tunne. Tämän ongelman ratkaisemiseksi pääsylistoihin kuuluu myös &amp;lt;tt&amp;gt;mask&amp;lt;/tt&amp;gt;-alkio joka viime kädessä ratkaisee, onko tiedostoon pääsyä vai ei.&lt;br /&gt;
&lt;br /&gt;
Mask-alkioon vaikuttaa esimerkiksi &amp;lt;tt&amp;gt;chmod&amp;lt;/tt&amp;gt;-ohjelma. Jos tiedostolta poistetaan &amp;lt;tt&amp;gt;chmod&amp;lt;/tt&amp;gt;-komennolla lukuoikeusoikeus &#039;&#039;ryhmä&#039;&#039;-luokalta,&lt;br /&gt;
 chmod g-r juttu.txt&lt;br /&gt;
POSIX.1 sanoo, ettei ryhmän jäsenellä saa olla lukuoikeutta tuohon tiedostoon. Chmod-komento (tai oikeammin ytimen chmod-systeemikutsu, jota chown-ohjelma kutsuu) ratkaisee tämän poistamalla r-oikeuden mask-alkion arvosta. Jos chmod-käskyllä palautetaan lukuoikeus &#039;&#039;ryhmä&#039;&#039;-luokalle, mask-alkioon palautetaan taas r-oikeus. &amp;lt;tt&amp;gt;Chmod&amp;lt;/tt&amp;gt;-käsky ei vaikuta muiden pääsylistan alkioiden arvoihin, joten tiedosto on nyt samassa tilassa kuin ennen ensimmäistä &amp;lt;tt&amp;gt;chmod&amp;lt;/tt&amp;gt;-käskyä.&lt;br /&gt;
&lt;br /&gt;
==Oletuspääsylistat==&lt;br /&gt;
&lt;br /&gt;
Pääsylistoja voidaan käyttää esimerkiksi siten, että tietyssä hakemistossa olevilla tiedostoilla on kahdella eri ryhmällä pääsyoikeus, mutta ulkopuolisilla ei. Esimerkiksi ryhmällä &amp;lt;tt&amp;gt;kehitys&amp;lt;/tt&amp;gt; voi olla luku- ja kirjoitusoikeus kaikkiin tiedostoihin, ja ryhmällä &amp;lt;tt&amp;gt;testaus&amp;lt;/tt&amp;gt; lukuoikeus. Tämä järjestely on helppo saada aikaan muuttamalla tiedostojen pääsylistoja. Mutta entä kun hakemistoon luodaan uusi tiedosto? Olisi kovin työlästä ja virhealtista muistaa aina käsin muokata tiedoston pääsylistaa kun hakemistoon luodaan uusi tiedosto.&lt;br /&gt;
&lt;br /&gt;
Tätä tarkoitusta varten hakemistoihin voi liittää oletuspääsylistan. Oletuspääsylista ei vaikuta hakemiston pääsyoikeuksiin (sitä varten on olemassa hakemiston oma, varsinainen pääsylista), vaan toimii mallina pääsylistalle, jonka tiedosto saa kun se luodaan hakemistossa.&lt;br /&gt;
&lt;br /&gt;
==Pääsylistojen muokkaus==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;ls -l&amp;lt;/tt&amp;gt; -komento antaa vinkin tiedostoon liitetyistä pääsylistoista tulostamalla &amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;-merkin suojauskentän perään. Ls-ohjelmalla ei kuitenkaan kerro tämän enempää pääsylistoista.&lt;br /&gt;
&lt;br /&gt;
Pääsylistojen käsittelyä varten on olemassa ohjelmat &amp;lt;tt&amp;gt;getfacl&amp;lt;/tt&amp;gt; ja &amp;lt;tt&amp;gt;setfacl&amp;lt;/tt&amp;gt;. Ellei näitä ohjelmia ole asennettu jo valmiiksi, ne pitää ladata ja asentaa erikseen. Miten tämä tapahtuu on jakeluriippuvaista – ne löytyvät tyypillisesti paketista nimeltään &#039;acl&#039;, tms.&lt;br /&gt;
&lt;br /&gt;
Ohjelmalla &amp;lt;tt&amp;gt;getfacl&amp;lt;/tt&amp;gt; (&amp;quot;Get File ACL&amp;quot;) voi tutkia tiedostoon liittyvää pääsylistaa, ohjelmalla &amp;lt;tt&amp;gt;setfacl&amp;lt;/tt&amp;gt; (&amp;quot;Set File ACL&amp;quot;) voi pääsylistaa muokata tai kokonaan poistaa.&lt;br /&gt;
&lt;br /&gt;
Esimerkki getfacl-komennon tulosteesta:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; getfacl juttu.txt&lt;br /&gt;
 # file: juttu.txt&lt;br /&gt;
 # owner: hemmo&lt;br /&gt;
 # group: users&lt;br /&gt;
 user::rw-&lt;br /&gt;
 group::r--&lt;br /&gt;
 group:devel:rw-            #effective:r--&lt;br /&gt;
 mask::r-x&lt;br /&gt;
 other::r--&lt;br /&gt;
&lt;br /&gt;
Saman tiedoston listaus &amp;lt;tt&amp;gt;ls -l&amp;lt;/tt&amp;gt; -komennolla:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ls -l juttu.txt&lt;br /&gt;
 -rw-r-xr--+ 1 hemmo users 0 Sep 16 08:49 juttu.txt&lt;br /&gt;
&lt;br /&gt;
Getfacl-komennon tulosteesta nähdään, että&lt;br /&gt;
* tiedoston omistaa käyttäjä hemmo ja sen ryhmäomistaja on users&lt;br /&gt;
* hemmolla on luku- ja kirjoitusoikeus tiedostoon&lt;br /&gt;
* users-ryhmän jäsenillä on lukuoikeus tiedostoon&lt;br /&gt;
* devel-ryhmän jäsenille on erikseen annettu luku- ja kirjoitusoikeus tiedostoon, mutta...&lt;br /&gt;
** koska mask:n arvo on r-x, devel-ryhmällä ei kuitenkaan ole kirjoitusoikeutta&lt;br /&gt;
* jos tiedostoa käsittelee joku muu kuin hemmo tai edellä mainittujen ryhmien jäsen, sovelletaan other-kohdan lukuoikeutta&lt;br /&gt;
&lt;br /&gt;
Pääsylistojen muuttamiseen käytetään &amp;lt;tt&amp;gt;setfacl&amp;lt;/tt&amp;gt;-ohjelmaa. Pääsylistaa muutetaan komennon &amp;lt;tt&amp;gt;-m&amp;lt;/tt&amp;gt;-optiolla. Esimerkki:&lt;br /&gt;
 &amp;gt; setfacl -m u:lyyli:rw-,g:test:rw- juttu.txt&lt;br /&gt;
 &amp;gt; getfacl juttu.txt&lt;br /&gt;
 # file: juttu.txt&lt;br /&gt;
 # owner: hemmo&lt;br /&gt;
 # group: users&lt;br /&gt;
 user::rw-&lt;br /&gt;
 user:lyyli:rw-             #effective:r--&lt;br /&gt;
 group::r--&lt;br /&gt;
 group:devel:rw-            #effective:r--&lt;br /&gt;
 group:test:rw-             #effective:r--&lt;br /&gt;
 mask::r-x&lt;br /&gt;
 other::r--&lt;br /&gt;
&lt;br /&gt;
Uudet pääsylistan alkiot kerrotaan &amp;lt;tt&amp;gt;-m&amp;lt;/tt&amp;gt; option perään pilkuilla erotettuina (ei välilyöntiä pilkun jälkeen). Esimerkissä myönnettiin käyttäjälle lyyli sekä ryhmälle test luku- ja kirjoitusoikeus tiedostoon. Koska mask on edelleen r-w, tosiasiassa heillä ei edelleenkään ole kirjoitusoikeutta tiedostoon. Tämä voidaan korjata &amp;lt;tt&amp;gt;chmod&amp;lt;/tt&amp;gt;-komennolla:&lt;br /&gt;
 &amp;gt; chmod g+w juttu.txt&lt;br /&gt;
 &amp;gt; getfacl juttu.txt&lt;br /&gt;
 # file: juttu.txt&lt;br /&gt;
 # owner: hemmo&lt;br /&gt;
 # group: users&lt;br /&gt;
 user::rw-&lt;br /&gt;
 user:lyyli:rw-&lt;br /&gt;
 group::r--&lt;br /&gt;
 group:devel:rw-&lt;br /&gt;
 group:test:rw-&lt;br /&gt;
 mask::rwx&lt;br /&gt;
 other::r--&lt;br /&gt;
&lt;br /&gt;
Pääsylistan alkioita voi poistaa &amp;lt;tt&amp;gt;setfacl&amp;lt;/tt&amp;gt;-ohjelman &amp;lt;tt&amp;gt;-x&amp;lt;/tt&amp;gt;-optiolla, pääsylistan voi korvata kokonaan toisella &amp;lt;tt&amp;gt;--set&amp;lt;/tt&amp;gt; -optiolla, ja poistaa kokonaan &amp;lt;tt&amp;gt;-b&amp;lt;/tt&amp;gt;-optiolla. Tiedoston pääsylistan voi kopioida tiedostosta toiseen näin:&lt;br /&gt;
 getfacl tiedosto1 | setfacl --set-file=- tiedosto2&lt;br /&gt;
&lt;br /&gt;
Lisätietoja &amp;lt;tt&amp;gt;getfacl&amp;lt;/tt&amp;gt;- ja &amp;lt;tt&amp;gt;setfacl&amp;lt;/tt&amp;gt;-komentojen man-sivuilla.&lt;br /&gt;
&lt;br /&gt;
==Ongelmia==&lt;br /&gt;
&lt;br /&gt;
* Monet varmuuskopiointiin käytetyt ohjelmat, kuten &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt;, eivät ymmärrä pääsylistoja. Tämä johtaa siihen, että tiedostot menettävät pääsylistansa, jos ne joudutaan palauttamaan &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt;-arkistosta.&lt;br /&gt;
&lt;br /&gt;
* Jotkut editorit toimivat siten, että tallennuksen eivät kirjoita tiedostoa uudestaan, vaan kirjoittavat muokatun tekstin uuteen tiedostoon, jonka nimeävät vanhan tiedoston mukaan. Käyttäjä ei huomaa tiedoston vaihtumista, sillä nimi on sama. Koska tiedosto kuitenkin on järjestelmän kannalta uusi, jos editori ei ota asiaa huomioon, tiedostossa saattaa olla väärä pääsylista. Uusi tiedosto saattaa saada pääsylistansa hakemiston oletuspääsylista, tai ei mitään pääsylistaa. Mm. Emacs-editori toimii oletusarvoisesti näin.&lt;br /&gt;
&lt;br /&gt;
* Tiedosto perii oletuspääsylistan vain hakemistosta, jossa se luodaan. Tiedosto säilyttää pääsylistansa, jos se siirretään (&amp;lt;tt&amp;gt;mv&amp;lt;/tt&amp;gt;-käskyllä) tai kopioidaan (&amp;lt;tt&amp;gt;cp&amp;lt;/tt&amp;gt;-käskyllä) toiseen hakemistoon, vaikka kohdehakemistolla on oletuspääsylista. Jos tiedosto luodaan hakemistossa, jossa ei ole oletuspääsylistaa, tai tiedostojärjestelmä ei edes tue pääsylistoja, tiedostoon ei tule mitään pääsylistaa.&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
</feed>