# &kdesu;-håndbogen

&Geert.Jansen; &Geert.Jansen.mail;
&erik.kjaer.pedersen.role;
2000
&Geert.Jansen;
&FDLNotice;
2002-01-18
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 USER -n -t -q -d -f FILE -c   COMMAND ARG1 ARG2

    kdesu  -v -h -s

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

`-f FILE`

  Dette flag tillader effektiv brug af &kdesu; i `.desktop` filer. Det beder &kdesu; om at undersøge filen angivet som `FILE`. Hvis denne fil er skrivbar af den aktuelle bruger, vil &kdesu; udføre kommandoen som den aktuelle bruger. Hvis den ikke er skrivbar, vil kommandoen blive kørt som brugeren `USER` (standarden er root).

  `FILE` bliver evalueret sådan her: hvis `FILE` 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``

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

`-n`

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

`-q`

  Vær stille

`-d`

  Vis fejlinformation.

`-v`

  Udskriv version-information og afslut.

`-h`

  Udskriv noget hjælp.

`-s`

  Stands kdesu-dæmonen. Se .

## Indstilling

&kdesu; kommer et kontrolmodul der hedder kcmkdesu. Du kan finde det i K menuen under Opsætning Programmer KDE su. Du kan ændre følgende ting:

Ekko-tilstand

  Dette er den måde tegn du skriver bliver givet som et ekko på skærmen. Mulige valg er: en stjerne pr tegn, tre stjerner eller slet intet ekko. Standarden er en stjerne pr tegn.

Husk kodeord

  Du kan instruere &kdesu; om at huske kodeord du indtaster ved at afkrydse husk kodeord-afkrydsningsfeltet. Hvis de er krydset af, kan du indtaste en værdi for udløb af tid i tekstfeltet under den. Dette er tidslængden, i minutter, som kodeordet vil blive husket. Standarden er ikke at huske 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 denneplan 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;