<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>
<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>
<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>
<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>
<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>
<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>