# Priročnik za KDE su

Geert
Jansen

    g.t.jansen@stud.tue.nl

??/??/??
Različica ??.??.??

To je uradna dokumentacija za KDE su.

KDE
su
password
root

## Uvod

Dobrodošli v KDE su! KDE su je grafična maska UNIX-ovega ukaza "su" za namizno okolje KDE. Omogoča vam, da poganjate program kot drug uporabnik, s tem, da zagotovite geslo tega uporabnika. KDE su je nepriviligiran program; uporablja sistemski su.

KDE 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 za več informacij o tem in varnostno analizo.

Ta program je mišljen za zagon iz ukazne vrstice ali .desktop datoteke. Čeprav vpraša za korensko (root) geslo z uporabo GUI pogovornega okna, ga smatram bolj za lepilo med ukazno vrstico <-> GUI, kota pa za čist GUI program.

## Namestitev

### Nalaganje

KDE su je sedaj v KDE CVS, v kdebase. Moral bi biti vključen v vsaki (2.x) KDE distribuciji. Dobite lahko tudi KDE 1.x različico z moje domače strani `ftp://skynet.stack.nl/pub/users/geertj/`.

### Prevajanje

KDE su je v kdebase, tako da ga ali že imate ali pa ga boste imeli, ko boste namestili kdebase.

Da prevedete KDE 1.x različico uporabite:

    &dollar; ./configure
    &dollar; make
    &dollar; make install

Zadnji korak boste morali izvesti kot root. Namestitevni proces mora biti sposoben pisati v sistemski imenik KDE.

## Uporaba KDE su

Uporaba KDE su je zelo preprosta. Slovnica gre takole:

    &dollar; kdesu &lsqb;USER&rsqb; &lsqb;-ntqd&rsqb; &lsqb;-f FILE&rsqb; -c
     COMMAND &lsqb;ARG1 &lsqb;ARG2 &lsqb;...&rsqb;&rsqb;&rsqb;
    &dollar; kdesu -v|-h|-s

Možnosti ukazne vrstice so razložene spodaj.

-c PROGRAM

  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:

      &dollar; kdesu -c "kfm -sw"

-f FILE

  Ta možnost omogoča učinkovito uporabo KDE su v .desktop datotekah. Pove namreč, da mora KDE su pregledati datoteko določeno z FILE. Če je lahko to datoteko zapiše trenutni uporabnik, bo KDE su izvedel ukaz kot trenutni uporabnik. Če pa ni zapisljiva, je ukaz izveden kot USER (privzeto root).

  FILE se obravnava takole: če se FILE (ime datoteke) prične z "/", je obravnavano kot absolutno ime. Drugače pa je vzeto kot ime globalne KDE nastavitvene datoteke. Naj podam primer: da nastavite K display manager, kdm, lahko uporabite:

      &dollar; kdesu -c kdmconfig -f kdmrc

-t

  Omogoči terminalski izhod. To onemogoči shranjevanje gesel. To je uporabno predvsem za razhroščevanje; če želite poganjati program v konzolnem načinu, uporabite običajni "su".

-n

  Ne shranjuj gesel. To onemogoči izbiro "shrani geslo" v pogovornem oknu gesel.

-q

  Bodi tiho.

-d

  Prikaži informacije za razhroščevanje.

-v

  Izpiši različico in končaj.

-h

  Izpiši nekaj pomoči.

-s

  Ustavi kdesu deamona. Glejte .

## Nastavitev

KDE su pride z nadzornim modulom imenovanim kcmkdesu. Najdete ga lahko v menuju K pod Nastavitve->Uporabniški programi->KDE su. Spremenite lahko naslednje stvari:

- Echo način (odmev). 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.

- Shranjevanje gesel. KDE su lahko naročite da shranjuje gesla z odkljukanjem izbire "shrani geslo". Č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.

## Podrobnosti

### X avtentifikacija

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. KDE su se temu izogne z dodajanjem avtentifikacijskega piškotka za vaš zaslon v začasno `.Xauthority` datoteko. Ko je ukaz končan, je ta datoteka odstranjena.

Če ne uporabljate X piškotkov, ste odvisni od samega sebe. KDE su bo to zaznal in ne bo dodal piškotka, vendar pa boste morali zagotoviti, da ima root dovoljen dostop do vašega zaslona.

### Vmesnik za su

KDE su uporablja sistemski "su" za dosego privilegijev. V tem odstavku bom razložil podrobnosti, kako to naredi.

Ker nekatere implementacije su (npr. RedHat-ova) nočejo brati gesla iz stdin, ustvari KDE su pty/tty par in izvede "su" z njegovimi standardnimi datotečnimi opisi (filedescriptors) povezanimi na tty.

Da izvede ukaz, ki ga je izbral uporabnik in ne interaktivno lupino, uporablja kdesu skupaj z su argument "-c". Ta argument razume vsaka lupina, ki jo poznam, tako da bi to moralo delovati prenosljivo. Su preda "-c" lupini in ta prevzame program. Zgled: "su root -c nek&lowbar;program".

Namesto izvajanja uporabnikovega ukaza direktno z su izvede kdesu majhen stub programček imenovan `kdesu&lowbar;stub`. Ta stub (teče kot uporabnik), zahteva nekaj podatkov od kdesu preko pty/tty kanala (stubov stdin in stdout) in potem izvede uporabniški program. Predane so naslednje informacije: X zaslon, X avtentifikacijski piškotek (če je dostopen), PATH in ukaz, ki naj bo pognan. Razlog, zakaj je uporabljen stub program je, da je X piškotek zasebna informacija in tako ne more biti predan na ukazni vrstici.

### Preverjanje gesel

KDE su bo preveril geslo ki ga vnesete in vrnil sporočilo o napaki, če je napačno. Preverjanje je izvedeno s testnim programom: `/bin/true`. Če to uspe, je geslo smatrano kot pravilno.

### Shranjevanje gesel

Za vaše udobje ima KDE su izvedeno možnost "shrani geslo". Če se zanimate za varnost, potem morate prebrati ta odstavek.

Dovoljenje KDE su, da si zapomni gesla odpre (majhno) varnostno luknjo v vašem sistemu. Jasno je, da KDE su ne dovoli nikomur razen vašemu uporabniškemu id da uporablja gesla, vendar pa, če je to narejeno brez previdnosti, lahko zniža root-ov varnostni nivo na uporabniškega. Heker, ki bi vdrl v vaš račun, bi dobil korenski (root) dostop. KDE su poskuša to preprečiti. Varnostna shema, ki jo uporablja je, vsaj po mojem prepričanju, razumno varna in je razložena tukaj.

KDE su uporablja deamona, imenovanega kdesud. Ta posluša UNIX-ov socket v /tmp za ukazi. Način socketa je 0600, tako da se nanj lahko priključi le vaš uporabniški id. Če je shranjevanje gesel uporabljeno, KDE su izvede ukaze skozi ta deamon. Ukaze in korensko geslo zapiše v socket in deamon izvede ukaz z uporabo "su", 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 deamonu (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 kdesud procesa. Prav tako deamon postavi spremenljivko DISPLAY environment na vrednost, ki jo je imela ob zagonu. Edina stvar, ki jo lahko heker naredi, je da izvede program na vašem zaslonu.

Šibko mesto v tej shemi je, da programi, ki jih izvajate verjetno niso pisani z varnostjo v mislih (kot setuid root programi). To pomeni, da imajo morda prelitja medpomnilnika (buffer overruns) ali druge težave in jih lahko heker izkoristi.

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.

## Avtor

KDE su je napisal Geert Jansen. Osnovan je na KDE su Pietra Iglia, različice 0.3. S Pietrom sva se domenila, da bom v prihodnosti vzdrževal ta program.

Avtor je dosegljiv preko emaila na <g.t.jansen@stud.tue.nl>. Prosim sporočite vse hrošče, ki jih najdete, tako da jih lahko popravim. Če imate predlog, se ne bojte in me obvestite.

### Prevajalci

Prevod programa: Skupina za slovenjenje KDE (dosegljiva na <lugos-slo@lugos.si>)

Prevod pomoči: Andrej Vernekar <andrej.vernekar@kiss.uni-lj.si>