<para>Dobrodošli v &tdesu;! &tdesu; je grafični vmesnik za &UNIX;-ov ukaz <command>su</command> za namizno okolje KDE. Omogoča vam, da poganjate program kot drug uporabnik, s tem, da zagotovite geslo tega uporabnika. &tdesu; je nepriviligiran program; uporablja sistemski <command>su</command>.</para>
<para>&tdesu; ima dodatno možnost: za vas si lahko zapomni gesla. Če uporabljate to možnost, morate vnesti vsako geslo le enkrat za vsak ukaz. Glejte <xref linkend="sec-password-keeping"/> za več informacij o tem in za varnostno analizo.</para>
<para>Ta program je mišljen za zagon iz ukazne vrstice ali <filename>.desktop</filename> datoteke. Čeprav vpraša za korensko (<systemitem class="username">root</systemitem>) geslo z uporabo &GUI; pogovornega okna, ga smatram bolj za lepilo med ukazno vrstico <-> &GUI;, kot pa za čist &GUI; program.</para>
<para>Možnosti ukazne vrstice so razložene spodaj.</para>
<variablelist> <varlistentry> <term><option>-c <replaceable>PROGRAM</replaceable></option></term> <listitem><para>To določa, da program teče kot root. Podan mora biti v enem argumentu. Če torej želite pognati nov datotečni upravljalnik morate v lupini vtipkati: <userinput><command>tdesu <option>-c <replaceable>kfm -sw</replaceable></option></command></userinput></para></listitem> </varlistentry> <varlistentry> <term><option>-f <replaceable>FILE</replaceable></option></term> <listitem><para>Ta možnost omogoča učinkovito uporabo &tdesu; v <filename>.desktop</filename> datotekah. tdesu; namreč pove, da mora pregledati datoteko določeno z <parameter>FILE</parameter>. Če lahko to datoteko zapiše trenutni uporabnik bo tdesu; izvedel ukaz kot trenutni uporabnik. Če pa ni zapisljiva, je ukaz izveden kot uporabnik <parameter>USER</parameter> (privzeto kot root).</para> <para><parameter>FILE</parameter> se obravnava takole: če se <parameter>FILE</parameter> (ime datoteke) prične z <literal>/</literal>, je obravnavano kot absolutno ime datoteke. Drugače pa je vzeto kot ime globalne &kde; nastavitvene datoteke. Naj podam primer: da nastavite K display manager, <application>tdm</application>, bi lahko uporabili <command>tdesu <option>-c tdmconfig -f tdmrc</option></command></para></listitem> </varlistentry> <varlistentry> <term><option>-t</option></term> <listitem><para>Omogoči terminalski izhod. To onemogoči shranjevanje gesel. Uporabno je predvsem za razhroščevanje; če želite poganjati program v konzolnem načinu, uporabite običajni <command>su</command>.</para> </listitem> </varlistentry> <varlistentry> <term><option>-n</option></term> <listitem><para>Ne shrani gesla. To onemogoči potrditveno polje <guilabel>Obdrži geslo</guilabel> v pogovornem oknu gesel.</para></listitem> </varlistentry> <varlistentry> <term><option>-q</option></term> <listitem><para>Bodi tiho.</para></listitem> </varlistentry> <varlistentry> <term><option>-d</option></term> <listitem><para>Prikaži informacije za razhroščevanje.</para></listitem> </varlistentry> <varlistentry> <term><option>-v</option></term> <listitem><para>Izpiši informacijo o različici in končaj.</para></listitem> </varlistentry> <varlistentry> <term><option>-h</option></term> <listitem><para>Izpiši nekaj pomoči.</para></listitem> </varlistentry> <varlistentry> <term><option>-s</option></term> <listitem><para>Ustavi tdesu daemona. Poglejte v <xref linkend="sec-password-keeping"/>.</para></listitem> </varlistentry> </variablelist>
<para>&tdesu; pride z nadzornim modulom imenovanim <application>kcmtdesu</application>. Najdete ga lahko v menuju <guimenu>K</guimenu> pod <menuchoice><guisubmenu>Nastavitve</guisubmenu> <guisubmenu>Uporabniški programi</guisubmenu> <guimenuitem>KDE su</guimenuitem></menuchoice>. Spremenite lahko naslednje stvari:</para>
<variablelist> <varlistentry> <term><guilabel>Echo Mode</guilabel></term> <listitem><para>To je način, kako na zaslonu odmevajo znaki ki jih vtipkate. Možne izbire so: ena zvezda za znak, tri zvezde ali brez odmeva. Privzeto je to ena zvezda za znak.</para></listitem> </varlistentry> <varlistentry> <term><guilabel>Shranjevanje gesel</guilabel></term> <listitem><para>&tdesu; lahko naročite da shranjuje gesla z odkljukanjem izbire <guilabel>Obdrži geslo</guilabel>. Če je ta označena, lahko vnesete časovno vrednost v tekstno polje pod njo. To določa (v minutah), kako dolgo se bo geslo shranilo. Privzeto je neshranjevanje gesel.</para></listitem> </varlistentry> </variablelist>
<para>Program, ki ga izvedete bo tekel pod korenskim (root) id in v splošnem ne bo imel avtoritete za dostop do vašega X zaslona. &tdesu; se temu izogne z dodajanjem avtentifikacijskega piškotka za vaš zaslon v začasno datoteko <filename>.Xauthority</filename>. Ko je ukaz končan, je ta datoteka odstranjena. </para>
<para>Če ne uporabljate X piškotkov, ste odvisni od samega sebe. &tdesu; bo to zaznal in ne bo dodal piškotka, vendar pa boste morali zagotoviti, da ima root dovoljen dostop do vašega zaslona.</para>
<para>&tdesu; uporablja sistemski <command>su</command> za dosego privilegijev. V tem odstavku bom razložil podrobnosti, kako &tdesu; to naredi. </para>
<para>Ker nekatere implementacije <command>su</command> (⊀ &RedHat;ova) nočejo brati gesla iz <literal>stdin</literal>, ustvari &tdesu; par pty/tty in izvede <command>su</command> z njegovimi standardnimi datotečnimi opisi (filedescriptors) povezanimi na tty.</para>
<para>Da izvede ukaz, ki ga je izbral uporabnik in ne interaktivno lupino, uporablja &tdesu; skupaj z <command>su</command> argument <option>-c</option>. Ta argument razume vsaka lupina, ki jo poznam, tako da bi to moralo delovati prenosljivo. <command>su</command> preda <option>-c</option> lupini in ta prevzame program. Zgled: <command>su <option>root -c <replaceable>nek_program</replaceable></option></command>.</para>
<para>Namesto izvajanja uporabnikovega ukaza direktno z <command>su</command>, izvede &tdesu; majhen programček imenovan <application>tdesu_stub</application>. Ta programček (teče kot uporabnik), zahteva nekaj podatkov od &tdesu; preko pty/tty kanala (njegov stdin in stdout) in potem izvede uporabniški program. Predane so naslednje informacije: X zaslon, X avtentifikacijski piškotek (če je dostopen), <envar>PATH</envar>in ukaz, ki naj bo pognan. Razlog, zakaj je uporabljen kratek programček je, da je X piškotek zasebna informacija in tako ne more biti predan na ukazni vrstici.</para>
<para>&tdesu; bo preveril geslo ki ga vnesete in vrnil sporočilo o napaki, če je napačno. Preverjanje je izvedeno s testnim programom: <filename>/bin/true</filename>. Če to uspe, je geslo smatrano kot pravilno.</para>
<para>Za vaše udobje ima &tdesu; izvedeno možnost <quote>Obdrži geslo</quote>. Če se zanimate za varnost, potem morate prebrati ta odstavek.</para>
<para>Dovoljenje &tdesu;, da si zapomni gesla odpre (majhno) varnostno luknjo v vašem sistemu. Jasno je, da &tdesu; ne dovoli nikomur razen vašemu uporabniškemu id da uporablja gesla, vendar pa, če je to narejeno brez previdnosti, lahko zniža <systemitem class="username">root</systemitem>-ov varnostni nivo na uporabniškega. Heker, ki bi vdrl v vaš račun, bi dobil korenski (<systemitem class="username">root</systemitem>) dostop. tdesu; poskuša to preprečiti. Varnostna shema, ki jo uporablja je, vsaj po mojem prepričanju, razumno varna in je razložena tukaj.</para>
<para>&tdesu; uporablja deamona, imenovanega <application>tdesud</application>. Ta posluša &UNIX;-ov socket v <filename>/tmp</filename> za ukazi. Način socketa je 0600, tako da se nanj lahko priključi le vaš uporabniški id. Če je shranjevanje gesel omogočeno, tdesu; izvede ukaze skozi ta deamon. Ukaze in korensko (<systemitem class="username">root</systemitem>) geslo zapiše v socket in deamon izvede ukaz z uporabo <command>su</command>, kot je opisano prej. Po tem ukaz in geslo nista zavržena. Namesto tega sta shranjena za določen čas. To je časovna vrednost iz krmilnega modula. Če se v tem času pojavi nova zahteva klientu ni treba dostaviti gesla. Da prepreči hekerjem, ki so vdrli v vaš račun, krajo gesel (na primer z prilepljenjem razhroščevalnika), je deamon nameščen kot set-group-id nogrup. To bi moralo preprečiti vsem normalnim uporabnikom (vključno z vami) da bi dobili gesla od <application>tdesud</application> procesa. Prav tako deamon postavi spremenljivko <envar>DISPLAY</envar> na vrednost, ki jo je imela ob zagonu. Edina stvar, ki jo lahko heker naredi, je da na vašem zaslonu izvede program.</para>
<para>Šibko mesto v tej shemi je, da programi, ki jih izvajate verjetno niso pisani z varnostjo v mislih (kot setuid <systemitem class="username">root </systemitem> programi). To pomeni, da imajo morda prelitja medpomnilnika (buffer overruns) ali druge težave in jih lahko heker izkoristi.</para>
<para>Uporaba možnosti shranjevanja gesel je trgovina med varnostjo in udobjem. Spodbujam vas, da razmislite o tem in se odločite zase, ali to želite uporabljati ali ne.</para>
<para>&tdesu; je spisal Geert Jansen. Je nekako osnovan na tdesu;, Pierta Iglia, različice 0.3. S Pietrom sva se strinjala, da bom v prihodnosti ta program vzdreževal jaz.</para>
<para>Avtor je dosegljiv preko e-pošte <email>g.t.jansen@stud.tue.nl</email>. Prosim poročajte mi o vseh hroščih, ki jih najdete, tako, da jih lahko popravim. Če imate predloge, ne oklevajte in me kontaktirajte.</para>