<para>Vitajte v &tdesu;! &tdesu; je grafické rozhranie pre príkaz &UNIX;"<command>su</command>" pre prostredie K Desktop Environment. Umožňuje spúšťať programy ako iný používateľ zadaním hesla pre tohto používateľa. &tdesu; nemá žiadne špeciálne práva, používa príkaz systému <command>su</command>.</para>
<para>&tdesu; obsahuje ešte jednu funkciu: môže si za vás pamätať heslá. Ak túto funkciu používate, musíte pre každý príkaz zadať heslo iba raz. Informácie o tejto funkcii a bezpečnostných otázkach nájdete v <xref linkend="sec-password-keeping"/></para>
<para>Tento program by mal byť používaný z príkazového riadku alebo zo súborov <filename>.desktop</filename>. Aj ked pre zadanie hesla <systemitem class="username">root</systemitem> používa dialógové okno &GUI;, považujte to skôr za <-> &GUI;obálku, než za &GUI; program.</para>
<para>Možnosti príkazového riadku sú vysvetlené nižšie.</para>
<variablelist> <varlistentry> <term><option>-c <replaceable>PROGRAM</replaceable></option></term> <listitem><para>Toto určuje, aký program spustiť ako root. Musí to byť jeden argument, takže, ak chcete spustiť nového správcu súborov, zadáte príkaz <userinput><command>tdesu <option>-c <replaceable>kfm -sw</replaceable></option></command></userinput></para></listitem> </varlistentry> <varlistentry> <term><option>-f <replaceable>SÚBOR</replaceable></option></term> <listitem><para>Táto voľba umožňuje efektívne použitie &tdesu; v súboroch <filename>.desktop</filename>. Povie &tdesu;, aby sa pozrel do súboru <parameter>SÚBOR</parameter>. Ak do tohto súboru môže aktuálny používateľ zapisovať, &tdesu; spustí príkaz ako aktuálny používateľ. Ak zapisovať nemôže, príkaz spustí ako používateľ <parameter>POUŽÍVATEĽ</parameter> (štandardne root).</para> <para><parameter>SÚBOR</parameter> sa použije takto: ak <parameter>SÚBOR</parameter> začína na <literal>/</literal>, považuje sa za absolútne meno súboru. Inak sa považuje za meno globálneho konfiguračného súboru &kde;. Napríklad: aby ste nastavili správcu prihlásení pre &kde;, <application>tdm</application>, môžete použiť príkaz <command>tdesu <option>-c tdmconfig -f tdmrc</option></command></para></listitem> </varlistentry> <varlistentry> <term><option>-t</option></term> <listitem><para>Povolí terminálový výstup. Toto vypne zapamätanie hesiel. Používa sa hlavne pre ladenie programov, ak chcete spustiť príkaz v termináli, použite štandardný príkaz <command>su</command>.</para> </listitem> </varlistentry> <varlistentry> <term><option>-n</option></term> <listitem><para>Nepamätať si heslo. Toto zakáže voľbu <guilabel>Uložiť heslo</guilabel> v dialógu pre zadanie hesla.</para></listitem> </varlistentry> <varlistentry> <term><option>-q</option></term> <listitem><para>Potichu.</para></listitem> </varlistentry> <varlistentry> <term><option>-d</option></term> <listitem><para>Zobrazí ladiace informácie.</para></listitem> </varlistentry> <varlistentry> <term><option>-v</option></term> <listitem><para>Vytlačí informáciu o verzii a skončí.</para></listitem> </varlistentry> <varlistentry> <term><option>-h</option></term> <listitem><para>Vytlačí informácie o použití.</para></listitem> </varlistentry> <varlistentry> <term><option>-s</option></term> <listitem><para>Zastaví démona tdesu. Prečítajte si <xref linkend="sec-password-keeping"/>.</para></listitem> </varlistentry> </variablelist>
<para>&tdesu; obsahuje ovládací modul <application>kcmtdesu</application>. Nájdete ho v menu <guimenu>K</guimenu> v <menuchoice><guisubmenu>Nastavenia</guisubmenu> <guisubmenu>Aplíkácie</guisubmenu> <guimenuitem>KDE su</guimenuitem></menuchoice>. V ňom môžete nastaviť tieto veci:</para>
<variablelist> <varlistentry> <term><guilabel>Echo mód</guilabel></term> <listitem><para>Určuje, koľko znakov sa zobrazí pri písaní hesla na obrazovke. Možnosti sú: jedna hviezdička na jeden znak, tri hviezdičky na jeden znak, alebo sa nič vypisovať nemá. Štandardné nastavenie je jedna hviezdička na jeden znak.</para></listitem> </varlistentry> <varlistentry> <term><guilabel>Ukladanie hesiel</guilabel></term> <listitem><para>&tdesu; si môže za vás pamätať zadané heslá, ak použijete voľbu <guilabel>Uložiť heslo</guilabel>. Ak je zaškrtnutá, môžete do poľa pod ňou zadať dobu v minútach, ako dlho bude heslo platné a uložené. Štandardné nastavenie je neukladať heslá.</para></listitem> </varlistentry> </variablelist>
<para>Program môže byť spustený pod používateľským id root a nebude mať štandardne právo používať váš X displej. &tdesu; to obchádza pridaním overovacieho cookie pre váš displej do súboru <filename>.Xauthority</filename>. Po ukončení programu je tento súbor odstránený. </para>
<para>Ak nepoužívate X cookies, musíte si to zariadiť sami. &tdesu; túto situáciu detekuje a nebude pridávať cookie, ale vy musíte zariadiť, aby mal root právo pre prístup k vášmu displeju.</para>
<title>Rozhranie pre <command>su</command></title>
<para>&tdesu; používa systémový príkaz <command>su</command> pre získanie práv. V tejto časti je detailne popísané, ako to &tdesu; robí. </para>
<para>Pretože niektoré implementácie <command>su</command> (<abbrev>napr.</abbrev> tá od &RedHat;) odmietajú čítať heslá z <literal>stdin</literal>, &tdesu; vytvára pár zariadení pty/tty a spúšťa <command>su</command> so štandardnými vstupmi a výstupmi napojenými na toto tty.</para>
<para>Pre spustenie programu namiesto interaktívneho príkazového riadku používa &tdesu; prepínač <option>-c</option> príkazu <command>su</command>. Tento prepínač podporuje každá známa implementácia tohto príkazu. <command>su</command> predá tento prepínač <option>-c</option> cieľovému príkazovému riadku a ten spustí program. Napríklad: <command>su <option>root -c <replaceable>program</replaceable></option></command>.</para>
<para>Namiesto priameho spustenia príkazu <command>su</command>, &tdesu; spustí malý program označený ako <application>tdesu_stub</application>. Táto obálka (bežiaca ako cieľový používateľ), si vypíta od &tdesu; niektoré informácie pomocou kanálu pty/tty (štandardný vstup a výstup obálky) a potom spustí požadovaný program. Predaná informácia obsahuje : X displej, X overovacie cookie (ak je k dispozícii), premennú <envar>PATH</envar> a spúšťaný príkaz. Dôvod je prenos súkromnej informácie o X cookie, ktorú nie je možné predať pomocou príkazového riadku.</para>
<para>&tdesu; overuje zadané heslo a oznámi chybu v prípade, že nie je správne. Kontrola je implementovaná spustením testovacieho programu: <filename>/bin/true</filename>. Ak je jeho spustenie úspešné, heslo sa považuje za správne.</para>
<para>Aby sa zvýšil váš komfort, &tdesu; implementuje funkciu <quote>ukladania hesiel</quote>. Ak vás zaujíma bezpečnosť vášho systému, asi by ste si tento odstavec mali prečítať.</para>
<para>Povolením ukladania hesla sa vo vašom systéme otvára (malá) bezpečnostná diera. Samozrejme, &tdesu; nedovolí nikomu inému používať tieto heslá, ale ak si nedáte pozor, znížite tým zabezpečenie účtu <systemitem class="username">root</systemitem> na vašu úroveň. Hacker, ktorý sa dostane na váš účet tak získa prístup na úrovni <systemitem class="username">root</systemitem>. &tdesu; sa tomu snaží zabrániť, použitím bezpečnostnej schémy, ktorá je, aspoň podľa mňa, rozumná.</para>
<para>&tdesu; používa démona <application>tdesud</application>. Démon čaká na sokete UNIX v <filename>/tmp</filename> na príkazy. Mód soketu je 0600, takže iba používateľ s vaším id sa k nemu môže pripojiť. Ak je povolené ukladanie hesiel, &tdesu; spúšťa príkazy pomocou tohto démon. Zapisuje príkaz a heslo <systemitem class="username">root</systemitem> do soketu démon príkaz vykoná pomocou <command>su</command> tak, ako to bolo popísané hore. Potom ale príkaz a heslo nie sú zahodené. Namiesto toho sa uchovávajú po danú dobu. To je práve hodnota, ktorú ste zadali v ovládacom module. Ak sa objaví ďalšia požiadavka na rovnaký príkaz v danej dobe, klient nemusí predávať heslo. Aby hackeri, ktorí sa dostali na váš účet, nezískali heslá od démona (napríklad pripojením debuggera), démon je nainštalovaný so skupinou nogroup. To by malo zabrániť všetkým normálnym používateľom (aj vám) v získaní hesla z procesu <application>tdesud</application>. Démon navyše nastavuje premennú prostredia <envar>DISPLAY</envar> na hodnotu, ktorú obsahovala pri jeho štarte. Jediná vec, ktorú hacker môže urobiť, je spustiť aplikáciu na vašom displeji.</para>
<para>Jeden slabý bod v tejto schéme je, že programy, ktoré spúšťate, asi neboli napísané ako bezpečné (narozdiel od napríklad programov využívajúcich setuid <systemitem class="username">root</systemitem>). To znamená, že môžu obsahovať pretečenia pamäte alebo iné problémy, ktoré môže hacker využiť.</para>
<para>Použitie ukladania hesiel je o rozhodnutí, či dať prednosť bezpečnosti alebo komfortu. Doporučujem, aby ste si to poriadne premysleli a rozhodli sa, či ho chcete používať alebo nie.</para>
<para>&tdesu; vytvoril Geert Jansen. Je trochu založený na &tdesu; verzia 0.3 od Pietra Iglio. Pietro a ja sme sa zhodli, že ja sa budem v budúcnosti o tento program starať.</para>
<para>Autora môžete kontaktovať e-mailom na adrese <email>g.t.jansen@stud.tue.nl</email>. Prosím, oznámte mi všetky chyby, na ktoré narazíte, aby som ich mohol opraviť. Ak máte nejaké nápady, rád sa o nich dozviem.</para>