# &kdesu;-håndbogen

&Geert.Jansen; &Geert.Jansen.mail;
&erik.kjaer.pedersen.role;
2000
&Geert.Jansen;
&FDLNotice;
2005-06-07
1.00.00

&kdesu; er en grafisk forende for &UNIX;-kommandoen `su`.

KDE
su
kodeord
root

## Indledning

Velkommen til &kdesu;! &kdesu; er en grafisk forende &UNIX;-kommandoen `su` for K-desktopmiljøet. Den tillader dig at køre et program som en anden bruger ved at angive kodeordet for denne bruger. &kdesu; er ikke et priviligeret program; det bruger systemets `su`.

&kdesu; har en ekstra egenskab: den kan huske kodeord for dig. Hvis du bruger denne egenskab, behøver du kun at indtaste kodeordet én gang for hver kommando. Se for yderligere information om dette og en sikkerhedsanalyse.

Det er meningen at dette program skal startes fra kommandolinjen eller fra `.desktop`-filer. Selvom den beder om root's kodeord ved brug af en &GUI;-dialog, betragter jeg det mere som kommandolinje <-> &GUI;-lim end som et rent &GUI;-program.

## Brug af &kdesu;

Brug af &kdesu; er nemt. Syntaksen er sådan:

    kdesu -c -d -f  file -i  icon name -n -p  priority -r -s -t -u  user --nonewdcop command arg1 arg2

    kdesu Generiske &kde;-flag Generiske Qt-flag

Kommandolinje-flag bliver forklaret nedenfor.

`-c program`

  Dette angiver programmet der skal køres som root. Det skal gives som et argument. Så hvis, for eksempel, du ønsker at starte en ny fulhåndtering, vil du skrive ved prompten: ``kdesu `-c kfm -sw```

`-d`

  Vis fejlinformation.

`-f fil`

  Dette tillader effektiv brug af &kdesu; i `.desktop`-filer. Det beder &kdesu; om at undersøge filen angivet ved `file`. Hvis denne fil er skrivbar for nuværende bruger, vil &kdesu; køre kommandoen som nuværende bruger. Hvis dette ikke er tilfældet vil den køres som brugeren `bruger` (som standard root).

  `fil` bliver evalueret sådan her: hvis `fil` begynder med et `/`, tages det som et absolut filnavn. Ellers tages det som navnet på en global &kde; indstillingsfil. For eksempel: for at indstille K skærmhåndteringen, kdm, må du skrive `kdesu `-c kdmconfig -f kdmrc``

`-i` ikonnavn

  Angiv ikon at bruge i kodeordsdialogen. Du kan angive kun navnet, uden nogen filendelse.

  For eksempel for at køre `kfmclient` og vise &konqueror;s ikon i kodeordsdialog:

      kdesu  -i konqueror kfmclient

`-n`

  Husk ikke kodeordet. Dette deaktiverer husk kodeord afkrydsningsfeltet i kodeordsdialogen.

`-p` prioritet

  Angiv prioritetsværdi. Prioriteten er et vilkårligt tal mellem 0 og 100, hvor 100 betyder højeste prioritet, og 0 betyder mindste. Standardværdien er 50.

`-r`

  Brug realtidsskemalægning

`-s`

  Stands kdesu-dæmonen. Se .

`-t`

  Aktivér terminaluddata. Dette deaktiverer det at huske kodeordet. Det er stort set til fejlsøgningsformål; hvis du ønsker at køre et program i konsoltilstand, kan du i stedet bruge `su`-kommandoen.

`-u` bruger

  Selvom den almindeligste brug af &kdesu; er at køre et kommando som systemadministrator, kan du angive et hvilket som helst brugernavn og passende kodeord.

## Indre ting

### X-godkendelse

Programmet du kører vil køre under roots bruger-id og vil generelt set ikke have ret til at få adgang til din X-skærm. &kdesu; kommer uden om dette ved at tilføje en godkendelses-cookie for din skærm til en midlertidig `.Xauthority`-fil. Efter kommandoen er afsluttet, bliver denne fil fjernet.

Hvis du ikke bruger X-cookier må du klare dig selv. &kdesu; vil detektere dette og vil ikke tilføje en cookie men du vil blive nødt til at sørge for at root har lov til at få adgang til din skærm.

### Grænseflade til `su`

&kdesu; bruger systemets `su` til at få privilegier. I dette afsnit, forklarer jeg detaljerne i hvordan &kdesu; gør dette.

Idet nogle `su` implementeringer (&ie; den fra &RedHat;) ikke ønsker at læse kodeordet fra `stdin`, opretter &kdesu; et pty/tty-par og kører `su` med dens standard-filedescriptors forbundet til tty.

For at køre den kommando som brugeren valgte, snarere end en interaktiv skal, bruger &kdesu; `-c` argumentet med `su`. Dette argument bliver forstået af enhver skal jeg kender til så det skulle virke overalt. `su` giver dette `-c`-argument til målbrugerens skal, og skallen kører så programmet. Eksempelkommando: `su `root -c the_program``.

I stedet for at udføre brugerkommandoen direkte med `su`, kører &kdesu; et lille stump program der hedder kdesu_stub. Denne stump (kørt som målbrugeren), beder om noget information fra &kdesu; over pty/tty-kanalen (stumpens stdin og stdout) og kører så brugerens program. Informationen der gives videre er: X-skærmen, en X-godkendelses-cookie (hvis den er tilgængelig), `PATH` og kommandoen der skal køres. Grunden til at et stumpprogram bruges er at X-cookien er privat information og derfor ikke kan gives videre på kommandolinjen.

### Kodeordskontrol

&kdesu; vil tjekke det kodeord du indtastede og giver en fejlbesked hvis det ikke er korrekt. Denne tjekning gøres af et testprogram: `/bin/true`. Hvis dette program lykkes antages kodeordet at være rigtigt.

### Huske kodeord

For din behagelighed, implementerer &kdesu; en husk kodeord-egenskab. Hvis du er interesseret i sikkerhed, bør du læse denne paragraf.

At tillade &kdesu; at huske kodeord åbner et (lille) sikkerhedhul i dit system. Naturligvis vil &kdesu; ikke tillade andre end dit bruger-id at bruge kodeordet, men, hvis det bliver gjort uforsigtigt, kan dette sænke root's sikkerhedsniveau til det en normal bruger har (dig). En cracker der bryder ind på din konto, ville få root--adgang. &kdesu; forsøger at forhindre dette. Den sikkerhedsplan den bruger er , i det mindste efter min mening, rimelig sikker, og den forklares her.

&kdesu; bruger en dæmon, der hedder kdesud. Dæmonen lytter til en &UNIX;-sokkel i `/tmp` for kommandoer. Sokkelens tilstand er 0600 så kun dit bruger-id kan forbinde til den. Hvis 'husk kodeord' er aktiveret, kører &kdesu; kommandoer gennem denne dæmon. Den skriver kommandoen og root's kodeord til soklen og dæmonen kører kommandoen ved brug af `su`, som tidligere beskrevet. Efter dette bliver kommandoen og kodeordet ikke smidt væk. I stedet for bliver de husket et specifikt tidsrum. Dette er 'udløb af tid'-punktet fra kontrolmodulen. Hvis en anden forespørgsel for den samme kommando kommer indenfor denne tidsperiode, bliver klienten ikkenødt til at angive kodeordet. For at holde crackere som måtte være brudt ind på din konto fra at stjæle kodeordet fra dæmonen (for eksempel, ved at tilknytte en fejlretter), er dæmonen installeret 'set-group-id nogroup'. Dette skulle forhindre alle normale bruger (inklusive dig) fra at få kodeord fra kdesud-processen. Dæmonen sætter også `DISPLAY`-miljøvariablen til den værdi den havde da den blev startet. Det eneste en cracker kan gøre er at køre et program på din skærm.

Et svagt punkt i denne plan et at programmerne du kører formodentlig ikke er skrevet med hensyntagen til sikkerhed (såsom setuid- root-programmer). Dette betyder at de måske har 'buffer overruns' eller andre problemer og at en cracker kunne udnytte disse.

Brugen af 'husk kodeord'-egenskab er en balancegang mellem sikkerhed og komfort. Jeg vil opmuntre dig til at tænke over det og selv bestemme om du ønske rat bruge det eller ej.

## Forfatter

&kdesu;

Ophavsret 2000 &Geert.Jansen;

&kdesu; er skrevet af &Geert.Jansen;. Den er i nogen grad baseret på Pietro Iglio's &kdesu;, version 0.3. Pietro og jeg blev enige om at jeg ville vedligeholde dette program i fremtiden.

Forfatteren kan nås gennem e-mail på &Geert.Jansen.mail;. Rapportér venligst fejl du finder til mig so jeg kan ordne dem. Hvis du har et forslag, så må du gerne kontakte mig.

&underFDL; &underArtisticLicense;