<chapter id="security">
<title
>&kppp; in vprašanja varnosti</title>

<para
>Ta razdelek je v glavnem za superuporabnike (<systemitem
>root</systemitem
>), ljudi s pomembnimi varnostnimi vprašanji ali za preprosto tehnično zainteresirane ljudi. Ni vam potrebno prebrati tega, če uporabljate &Linux; samo doma za vaše potrebe (čeprav se lahko naučite kaj novega, če to preberete).</para>

<sect1 id="security-restricting-access">
<title
>Omejevanje dostopa do &kppp;</title>

<para
>Sistemski administrator bo mogoče želel omejiti dostop, komu je dovoljeno uporabljati &kppp;. Za to obstajata dva načina:</para>

<sect2 id="security-group-permissions">
<title
>Omejevanje dostopa z dovoljenji za skupine</title>

<para
>Ustvarite novo skupino (mogoče jo boste hoteli poimenovati <systemitem
>dialout</systemitem
> ali podobno), dodajte vse uporabnike, ki naj bi imeli dovoljenje za uporabo &kppp;-ja v to skupino in vtipkajte:</para>

<screen
><prompt
>#</prompt
> <userinput
><command
>chown</command
> <option
>root.dialout</option
> <filename
>/opt/kde/bin/kppp</filename
></userinput>
<prompt
>#</prompt
> <userinput
><command
>chmod</command
> <option
>4750</option
> <filename
>/opt/kde/bin/kppp</filename
></userinput>
</screen>

<para
>Tukaj se privzame, da je bil &kde; nameščen v <filename class="directory"
>/usr/local/kde</filename
>in vaša nova skupina se imenuje <systemitem
>dialout</systemitem
>.</para>

</sect2>

<sect2 id="security-kppps-way">
<title
>Omejevanje dostopa na &kppp;-jev način</title>

<para
>Preden se karkoli naredi, &kppp; preveri, če obstaja datoteka imenovana <filename
>/etc/kppp.allow</filename
>. Če ta datoteka obstaja, bodo SAMO uporabniki imenovani v tej datoteki imeli dovoljenje za klicanje. Ta datoteka mora biti berljiva vsakemu uporabniku (seveda <emphasis
>NE</emphasis
> zapisljiva). Prepoznana so samo imena s katerimi se uporabniki prijavijo, zato ne morete uporabiti <acronym
>UID</acronym
>-jev v tej datoteki. Tukaj je kratek primer:</para>

<screen>
# /etc/kppp.allow
# comment lines like this are ignored
# as well as empty lines

fred
karl
daisy
</screen>

<para
>V zgornjem primeru samo uporabniki <systemitem
>fred</systemitem
>, <systemitem
>karl</systemitem
> in <systemitem
>daisy</systemitem
> lahko kličejo, kot tudi vsak uporabnik z <acronym
>UID</acronym
> nastavljen na 0. Zato vam ni potrebno postaviti uporabnika root v to datoteko.</para>

</sect2>

</sect1>

<sect1 id="security-why-suid">
<title
>&kppp; ima nastavljen <acronym
>SUID</acronym
> bit. Kaj pa varnost?</title>

<para
>Navidezno je nemogoče napisati program za klicanje brez <acronym
>SUID</acronym
> bita, ki je istočasno varen in preprost za uporabo za neizkušene uporabnike. &kppp; odgovarja na varnostna vprašanja z naslednjo strategijo:</para>

<itemizedlist
> <listitem
> <para
>Takoj ko se program zažene, se &kppp; razveji.</para
> </listitem
> <listitem
> <para
>Glavni proces (master process) (kateri skrbi za vse <acronym
>GUI</acronym
> stvari, uporabniško medsebojno delovanje in podobno) takoj za tem prekine <acronym
>SUID</acronym
> način in teče z navadnimi uporabniškimi privilegiji.</para
> </listitem
> <listitem
> <para
>Podrejeni proces (slave process) ohrani svoje privilegije in je odgovoren za akcije, ki potrebujejo privilegije <systemitem
>root</systemitem
>-a. Da ohranimo ta del varen, se tukaj ne uporabijo nobeni klici &kde; ali &Qt; knjižnic, ampak samo preprosti klici C knjižnic. Izvorna koda za ta proces je kratka (okrog 500 vrstic) in dobro dokumentirana, zato jo je lahko preveriti, če vsebuje varnostne luknje.</para
> </listitem
> <listitem
> <para
>Glavni in podrejeni proces komunicirata s standardnim &UNIX; <acronym
>IPC</acronym
>.</para
> </listitem
> </itemizedlist>

<para
>Resnično hvala Harriju Portenu, da je napisal ta odlični del kode. Jaz sem mislil, da je nemogoče - on pa jo je napisal v enem tednu.</para>

</sect1>

</chapter>

