<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY legal SYSTEM "legal.xml">
<!ENTITY version "2.26.0">
<!ENTITY date "02/10/2009">
<!ENTITY mdash "&#8212;">
<!ENTITY percnt "&#x0025;">
]>
<article id="index" lang="en">
  <articleinfo>
    <title>Referenshandbok för GNOME Display Manager</title>

    <revhistory>
      <revision>
        <revnumber>0.0</revnumber>
        <date>2008-09</date>
      </revision>
    </revhistory>

    <abstract role="description">
      <para>GDM är GNOME:s displayhanterare, ett grafiskt inloggningsprogram.</para>
    </abstract>

    <authorgroup>
      <author>
        <firstname>Martin</firstname><othername>K.</othername>
           <surname>Petersen</surname>
        <affiliation>
          <address><email>mkp@mkp.net</email></address>
        </affiliation>
      </author>
      <author>
        <firstname>George</firstname><surname>Lebl</surname>
        <affiliation>
          <address><email>jirka@5z.com</email></address>
        </affiliation>
      </author>
      <author>
        <firstname>Jon</firstname><surname>McCann</surname>
        <affiliation>
          <address><email>mccann@jhu.edu</email></address>
        </affiliation>
      </author>
      <author>
        <firstname>Ray</firstname><surname>Strode</surname>
        <affiliation>
          <address><email>rstrode@redhat.com</email></address>
        </affiliation>
      </author>
      <author role="maintainer">
        <firstname>Brian</firstname><surname>Cameron</surname>
        <affiliation>
          <address><email>Brian.Cameron@Oracle.COM</email></address>
        </affiliation>
      </author>
    </authorgroup>
    <copyright>
      <year>1998</year>
      <year>1999</year>
      <holder>Martin K. Petersen</holder>
    </copyright>
    <copyright>
      <year>2001</year>
      <year>2003</year>
      <year>2004</year>
      <holder>George Lebl</holder>
    </copyright>
    <copyright>
      <year>2003</year>
      <year>2007</year>
      <year>2008</year>
      <holder>Red Hat, Inc.</holder>
    </copyright>
    <copyright>
      <year>2003</year>
       <year>2011</year>
       <holder>Oracle and/or its affiliates. All rights reserved.</holder>
    </copyright>

    

    <releaseinfo>Den här handboken beskriver version 2.26.0 av GNOME:s displayhanterare. Den uppdaterades senast 2009-02-10.</releaseinfo>  
  </articleinfo>

  <!-- ============= Preface ================================== -->

  <sect1 id="preface">
    <title>Terminologi och standarder använda i den här handboken</title>

    <para>Den här handboken beskriver version 2.26.0 av GNOME:s displayhanterare. Den uppdaterades senast 2009-02-10.</para>  

    <para>
      Chooser - A program used to select a remote host for managing a
      display remotely on the attached display (<command>gdm-host-chooser</command>).
    </para>

    <para>
      FreeDesktop - The organization providing desktop standards, such as the
      Desktop Entry Specification used by GDM.
      <ulink type="http" url="http://www.freedesktop.org/">
      http://www.freedesktop.org</ulink>.
    </para>
    <para>GDM - Gnome Display Manager. Används för att beskriva programvarupaketet som en helhet.</para>

    <para>
      Greeter - The graphical login window (provided by <command>gnome-shell</command>).
    </para>

    <para>PAM - Pluggable Authentication Mechanism</para>

    <para>XDMCP - X Display Manage Protocol</para>

    <para>
      Xserver - An implementation of the X Window System.  For example the
      Xorg Xserver provided by the X.org Foundation
      <ulink type="http" url="http://www.x.org/">http://www.x.org</ulink>.
    </para>

    <para>
      Paths that start with a word in angle brackets are relative to the
      installation prefix. I.e. <filename>&lt;share&gt;/pixmaps/</filename>
      refers to <filename>/usr/share/pixmaps</filename> if GDM was
      configured with <command>--prefix=/usr</command>.
    </para>
  </sect1>

  <!-- ============= Overview ================================= -->

  <sect1 id="overview">
    <title>Översikt</title>

    <sect2 id="introduction">
      <title>Introduktion</title>

      <para>GNOME displayhanterare (GDM) är en displayhanterare som implementerar alla väsentliga funktioner som krävs för att hantera anslutna och fjärrdisplayer. GDM skrevs från grunden och innehåller inte XDM eller någon X-konsortium-kod.</para>

      <para>Notera att GDM är konfigurerbart och att många konfigurationsinställningar har en inverkan på säkerheten. Saker att tänka på är markerade i detta dokument.</para> 

      <para>Notera att vissa operativsystem konfigurerar GDM så att det beter sig annorlunda än standardvärdena som beskrivs i detta dokument. Om GDM inte verkar bete sig så som dokumenteras, kontrollera då om någon relaterad konfiguration kan vara annorlunda inställd än så som beskrivs här.</para>

      <para>
        For further information about GDM, refer to the project website at
        <ulink type="http" url="http://wiki.gnome.org/Projects/GDM/">
        http://wiki.gnome.org/Projects/GDM</ulink>.
      </para>

      <para>
        For discussion or queries about GDM, refer to the discussion forum at
        <ulink type="http" url="https://discourse.gnome.org/tag/gdm">
        https://discourse.gnome.org/tag/gdm</ulink>.
        The archives of the previous mailing list are also a good resource to
        check to seek answers to common questions. The list was archived at
        <ulink type="http" url="https://mail.gnome.org/archives/gdm-list/">
        https://mail.gnome.org/archives/gdm-list/</ulink> and has a search
        facility to look for messages with keywords.
      </para>

      <para>
        Please submit any bug reports or enhancement requests to
        <ulink type="http" url="https://gitlab.gnome.org/GNOME/gdm/-/issues/">
        https://gitlab.gnome.org/GNOME/gdm/-/issues/</ulink>.
      </para>
    </sect2>

    <sect2 id="stability">
      <title>Gränssnittsstabilitet</title>

      <para>GDM 2.20 och tidigare hade stöd för stabila konfigurationsgränssnitt. Hela kodbasen skrevs dock om helt inför GDM 2.22, och är därför inte helt bakåtkompatibel med äldre versioner. Detta beror delvis på att saker fungerade annorlunda, så vissa inställningar helt enkelt inte längre var meningsfulla, delvis på att vissa inställningar aldrig hade varit vettiga och delvis på att viss funktionalitet inte hade omimplementerats ännu.</para>

      <para>
        Interfaces which continue to be supported in a stable fashion include
        the Init, PreSession, PostSession, PostLogin, and Xsession scripts.
        Some daemon configuration options in the 
        <filename>&lt;etc&gt;/gdm/custom.conf</filename> file continue to be
        supported.  Also, the <filename>~/.dmrc</filename>, and face browser
        image locations are still supported.
      </para>

      <para>GDM 2.20 och tidigare hade stöd för hantering av flera displayer med separata grafikkort, som används i terminalservermiljöer, inloggning i ett fönster via ett program som Xnest or Xephyr, programmet gdmsetup, XML-baserade inloggningsteman, och möjligheten att köra XDMCP-väljaren från inloggningsskärmen. Dessa funktioner lades inte till igen under 2.22-omskrivningen.</para>

    </sect2>

    <sect2 id="functionaldesc">
      <title>Funktionsbeskrivning</title>

<!--
<para>
        TODO - Would be good to discuss D-Bus, perhaps the new GObject model,
               and to explain the reasons why the rewrite made GDM better.
               From a high-level overview perspective, rather than the
               technical aspects.
</para>
-->

      <para>GDM är ansvarigt för att hantera displayer på systemet. Detta inkluderar autentisering av användare, starta användarsessionen och att avsluta användarsessionen. GDM är konfigurerbart och sätten på vilka det kan konfigureras beskrivs i avsnittet ”Konfigurera GDM” i detta dokument. GDM är också tillgängligt för användare med funktionshinder.</para>

      <para>GDM erbjuder möjligheten att hantera huvudkonsolens display och displayer som startats via VT. Det är integrerat med andra program såsom Fast User Switch Applet (FUSA) och gnome-screensaver för att hantera flera displayer på konsolen via gränssnittet Xserver Virtual Terminal (VT). Det kan också hantera XDMCP-displayer.</para>

      <para>
        Regardless of the display type, GDM will do the following when it
        manages the display.  It will start an Xserver process, then run the
        <filename>Init</filename> script as the root user, and start the
        greeter program on the display.
      </para>

      <para>
        The greeter program is run as the unprivileged "gdm"
        user/group.  This user and group are described in the
        "Security" section of this document.  The main functions of
        the greeter program are to provide a mechanism for selecting
        an account for log in and to drive the dialogue between
        the user and system when authenticating that account. The authentication
        process is driven by Pluggable Authentication Modules (PAM).  The PAM
        modules determine what prompts (if any) are shown to the user to
        authenticate.  On the average system, the greeter program will request
        a username and password for authentication.  However some systems may
        be configured to use supplemental mechanisms such as a fingerprint or
        SmartCard readers. GDM can be configured to support these
        alternatives in parallel with greeter login extensions and the
        <command>--enable-split-authentication</command>
        <filename>./configure</filename> option, or one at a
        time via system PAM configuration.
      </para>

      <para>
         The smartcard extension can be enabled or disabled via the
         <filename>org.gnome.display-manager.extensions.smartcard.active</filename>
         gsettings key.
      </para>

      <para>
         Likewise, the fingerprint extension can be enabled or disabled via the
         <filename>org.gnome.display-manager.extensions.fingerprint.active</filename>
         gsettings key.
      </para>

      <para>GDM och PAM kan konfigureras att inte begära någon inmatning, vilket kommer att få GDM att automatiskt logga in och helt enkelt starta en session, vilket kan vara användbart för vissa miljöer, exempelvis enanvändarsystem eller kiosker.</para>

      <para>
        In addition to authentication, the greeter program allows the user to
        select which session to start and which language to use.  Sessions are
        defined by files that end in the .desktop suffix and more information
        about these files can be found in the "GDM User Session and Language
        Configuration" section of this document.  By default, GDM is configured
        to display a face browser so the user can select their user account by
        clicking on an image instead of having to type their username. GDM
        keeps track of the user's default session and language in the user's
        <filename>~/.dmrc</filename> and will use these defaults if the user
        did not pick a session or language in the login GUI.
      </para>

      <para> 
        After authenticating a user, the daemon runs the
        <filename>PostLogin</filename> script as root, then runs the  
        <filename>PreSession</filename> script as root.  After running these
        scripts, the user session is started.  When the user exits their 
        session, the <filename>PostSession</filename> script is run as root.
        These scripts are provided as hooks for distributions and end-users
        to customize how sessions are managed.  For example, using these 
        hooks you could set up a machine which creates the user's $HOME
        directory on the fly, and erases it on logout.  The difference 
        between the <filename>PostLogin</filename> and
        <filename>PreSession</filename> scripts is that
        <filename>PostLogin</filename> is run before the pam_open_session call
        so is the right place to do anything which should be run before the
        user session is initialized.  The <filename>PreSession</filename>
        script is called after session initialization.
      </para>
    </sect2>

    <sect2 id="greeterpanel">
      <title>Inloggningsskärmspanel</title>
      <para>GDM-inloggningsprogrammet visar en panel längst ner mot botten av skärmen som erbjuder ytterligare funktionalitet. När en användare är vald låter panelen användaren välja vilken session, vilket språk och tangentbordslayout som ska användas efter inloggning. Väljaren för tangentbordslayout ändrar också tangentbordslayouten som används när du matar in ditt lösenord. Panelen innehåller också en yta för inloggningstjänster att uppvisa statusikoner. Några exempel på statusikoner är batteriikonen för nuvarande batterianvändning och en ikon för att aktivera hjälpmedelsfunktionalitet. Inloggningsprogrammet erbjuder också knappar som låter användaren stänga ner eller starta om systemet. Det är möjligt att konfigurera GDM att inte erbjuda nedstängnings- och omstartsknapparna om så är önskvärt. GDM kan också konfigureras via PolicyKit (eller via RBAC på Oracle Solaris) för att begära att användaren har lämpligt tillstånd innan nedstängnings- eller omstartsbegäran accepteras.</para>

      <para>Notera att tangentbordslayoutfunktionerna bara är tillgängliga på system som har libxklavier-stöd.</para>
    </sect2>

    <sect2 id="accessibility">
      <title>Hjälpmedel</title>

        <para>GDM har stöd för ”Hjälpmedelsinloggning” för att låta användare logga in på deras skrivbordssession även om de inte enkelt kan använda skärmen, musen eller tangentbordet på det vanliga sättet. Hjälpmedelsteknologifunktioner (AT) såsom ett skärmtangentbord, skärmläsare, skärmförstorare och Xserver AccessX-hjälpmedelstangentbordsstöd finns. Det är också möjligt att aktivera stor text eller högkontrastikoner och komponenter om så behövs. Se avsnittet ”Hjälpmedelskonfiguration” i dokumentet för vidare information om hur olika hjälpmedelsfunktioner kan konfigureras.</para>

        <para>På vissa operativsystem är det nödvändigt att säkerställa att GDM-användaren är en medlem i gruppen ”audio” för AT-program för att ljudutmatning (som text-till-tal) ska fungera.</para>
    </sect2>

    <sect2 id="facebrowser">
      <title>GDM ansiktsbläddrare</title>

      <para>Ansiktsbläddraren är gränssnittet som låter användare välja sitt användarnamn genom att klicka på en bild. Denna funktion kan aktiveras eller inaktiveras via GSettings-nyckeln org.gnome.login-screen disable-user-list och är på som standard. När den är inaktiverad, måste användare skriva in sina fullständiga användarnamn för hand. När den är aktiverad visas alla lokala användare som är tillgängliga för inloggning på systemet (alla användarkonton definierade i filen /etc/passwd som har ett giltigt skal och tillräckligt högt UID) och fjärranvändare som nyligen har loggat in. Ansiktsbläddraren i GDM 2.20 och tidigare försökte visa alla fjärranvändare vilket orsakade prestandaproblem i stora företagsinstallationer.</para>

      <para>Ansiktsbläddraren är konfigurerad av visa användarna som loggar in oftare i toppen på listan. Detta hjälper till att se till att användare som loggar in ofta snabbt kan hitta sin inloggningsbild.</para>

      <para>Ansiktsbläddraren har stöd för ”ifyllnadssökning” som dynamiskt flyttar ansiktsmarkeringen allt eftersom användaren skriver in motsvarande användarnamn i listan. Detta innebär att en användare med ett långt användarnamn bara behöver skriva de första tecknen i användarnamnet innan rätt objekt blir markerat i listan.</para>

      <para>
        The icons used by GDM can be installed globally by the sysadmin or can
        be located in the user's home directories.  If installed globally
        they should be in the <filename>&lt;share&gt;/pixmaps/faces/</filename>
        directory and the filename should be the name of the user.  Face image
        files should be a standard image that GTK+ can read, such as PNG or
        JPEG.  Face icons placed in the global face directory must be readable
        to the GDM user.
      </para>

<!--
<para>
        TODO - In the old GDM the ~/gnome2/gdm file is used, but the new code
               seems to use ~/.gnome/gdm.  Error?
</para>
-->
      <para>
        If there is no global icon for the user, GDM will look in the user's
        $HOME directory for the image file.  GDM will first look for the user's
        face image in <filename>~/.face</filename>.  If not found, it will try 
        <filename>~/.face.icon</filename>.  If still not found, it will use the
        value defined for "face/picture=" in the 
        <filename>~/.gnome2/gdm</filename> file.
      </para>

      <para>Om en användare inte har någon definierad ansiktsbild kommer GDM att använda ikonen ”stock_person” i det aktuella GTK+-temat. Om ingen sådan bild är definierad kommer det att använda en allmän ansiktsbild.</para>

      <para>Notera att inläsning och skalning av ansiktsikoner som placerats i fjärrhemkataloger för användare kan vara en väldigt långsam process. Eftersom det inte är praktiskt att läsa in bilder över NIS eller NFS försöker inte GDM att läsa in ansiktsbilder från fjärrhemkataloger.</para>

      <para>När bläddraren slås på kommer giltiga användarnamn på datorn att exponeras för alla. Om XDMCP är aktiverat kommer användarnamnen att exponeras för fjärranvändare. Detta begränsar självklart säkerheten något eftersom en illvillig användare inte behöver gissa giltiga användarnamn. I vissa begränsade miljöer kanske ansiktsbläddraren inte är lämplig.</para>

    </sect2>

    <sect2 id="xdmcp">
      <title>XDMCP</title>

<!--
<para>
        TODO - What XDMCP features actually work?   I know that the
               chooser is missing.
</para>
-->

      <para>GDM-demonen kan konfigureras att lyssna efter och hantera X Display Manage Protocol (XDMCP)-begäran från fjärrskärmar. Som standard så är XDMCP-stödet avslaget, men kan aktiveras om önskvärt. Om GDM är byggt med stöd för TCP-Wrapper så kommer demonen endast att ge tillgång till värdar angivna i GDM-tjänstavsnittet i TCP-Wrappers konfigurationsfil.</para>

      <para>GDM innehåller flera åtgärder som gör det mer resistent mot överbelastningsattacker mot XDMCP-tjänsten. Många av protokollparametrarna, handskakningstidsgränser, etc. kan justeras. Standardkonfigurationen bör fungera ganska bra på de flesta system.</para>

      <para>GDM lyssnar som standard efter XDMCP-begäran på den normala UDP-porten som används för XDMCP, port 177, och kommer att svara på QUERY- och BROADCAST_QUERY-begäran genom att skicka ett WILLING-paket till avsändaren.</para>

      <para>GDM kan också konfigureras att ta INDIRECT-frågor i beaktande och presentera en värdväljare för fjärrskärmen. GDM kommer att komma  ihåg användarens val och skicka vidare framtida begäran till den valda hanteraren. GDM har också stöd för ett tillägg till protokollet som kommer att få det att glömma omdirigeringen när användarens anslutning lyckas. Det finns bara stöd för detta tillägg om båda demonerna är GDM. Det är transparent och kommer att ignoreras av XDM och andra demoner som implementerar XDMCP.</para>

      <para>
        If XDMCP seems to not be working, make sure that all machines are
        specified in <filename>/etc/hosts</filename>.
      </para>

      <para>Se vidare i ”Säkerhets”-avsnittet för information om säkerhetsaspekter när XDMCP används.</para>
    </sect2>

    <sect2 id="logging">
      <title>Loggning</title>

      <para>
        GDM uses syslog to log errors and status.  It can also log debugging
        information, which can be useful for tracking down problems if GDM is
        not working properly.  Debug output can be enabled by setting the
        debug/Enable key to "true" in the
        <filename>&lt;etc&gt;/gdm/custom.conf</filename> file.
      </para>

      <para>
        Output from the various Xservers is stored in the GDM log directory,
        which is normally <filename>&lt;var&gt;/log/gdm/</filename>.  Any
        Xserver messages are saved to a file associated with the display value,
        <filename>&lt;display&gt;.log</filename>.  
      </para>

      <para>
        The session output is piped through the GDM daemon to the
        <filename>~/<replaceable>$XDG_CACHE_HOME</replaceable>/gdm/session.log</filename>
        file which usually expands to <filename>~/.cache/gdm/session.log</filename>.
        The file is overwritten on each login, so logging out and logging back
        into the same user via GDM will cause any messages from the previous
        session to be lost.
      </para>

      <para>
        Note that if GDM can not create this file for some reason, then a
        fallback file will be created named <filename>~/<replaceable>$XDG_CACHE_HOME</replaceable>/gdm/session.log.XXXXXXXX</filename>
        where the <filename>XXXXXXXX</filename> are some random characters.
      </para>
    </sect2>

    <sect2 id="fusa">
      <title>Snabb användarväxling</title>

      <para>GDM låter flera användare vara inloggade samtidigt. Efter att en användare är inloggad kan ytterligare användare logga in via Användarväxlaren på GNOME-panelen, eller från ”Byt användare”-ikonen i Låsskärmsdialogen för GNOME skärmsläckare. Det går att växla tillbaka fram och tillbaka till den aktiva sessionen med samma mekanism. Notera att vissa distributioner kanske inte lägger till Användarväxlaren i standardpanelens konfiguration. Den kan läggas till via panelens snabbvalsmeny.</para>
      <para>Notera att denna funktion är tillgänglig på system som har stöd för virtuella terminaler. Denna funktion kommer inte att fungera om virtuella terminaler inte är tillgängliga.</para>
    </sect2>
  </sect1>

  <!-- ============= Security ================================= -->

  <sect1 id="security">
    <title>Säkerhet</title>

    <sect2 id="gdmuser">
      <title>GDM-användaren och -gruppen</title>

      <para>Av säkerhetsskäl rekommenderas ett särskilt konto- och grupp-id för korrekt funktion. Denna användare och grupp är normalt ”gdm” på de flesta system, men kan konfigureras till godtycklig användare eller grupp. Alla GDM GUI-program körs som denna användare så program som interagerar med användaren körs i en sandlåda. Denna användare och grupp bör ha begränsade privilegier.</para>

      <para>
        The only special privilege the "gdm" user requires is the
        ability to read and write Xauth files to the
        <filename>&lt;var&gt;/run/gdm</filename> directory.  The
        <filename>&lt;var&gt;/run/gdm</filename> directory should have
        root:gdm ownership and 1777 permissions.
      </para>

      <para>
        You should not, under any circumstances, configure the GDM user/group
        to a user which a user could easily gain access to, such as the user
        <filename>nobody</filename>.  Any user who gains access to an Xauth
        key can snoop on and control running GUI programs running in the
        associated session or perform a denial-of-service attack on it.  It
        is important to ensure that the system is configured properly so that
        only the "gdm" user has access to these files and that it
        is not easy to login to this account.  For example, the account should
        be setup to not have a password or allow non-root users to login to the
        account.
      </para>

      <para>GDM-inloggningsskärmens konfiguration sparas i GConf. För att låta GDM-användaren kunna skriva konfigurationen är det nödvändigt för ”gdm”-användaren att ha en skrivbar $HOME-katalog. Användare kan konfigurera standard GConf-konfigurationen som önskas för att undvika att ge ”gdm”-användaren en skrivbar $HOME-katalog. Vissa GDM-funktioner kommer dock att vara inaktiverade om det inte kan skriva tillståndsinformation till GConf-konfigurationen.</para>
    </sect2>

    <sect2 id="PAM">
      <title>PAM</title>

      <para>GDM använder PAM för inloggningsautentisering. PAM står för Pluggable Authentication Module och används av de flesta program som begär autentisering på din dator. Det låter administratören konfigurera specifika autentiseringsbeteenden för olika inloggningsprogram (t.ex. ssh, login GUI, skärmsläckaren, etc.).</para>

      <para>PAM är komplicerat och väldigt konfigurerbart och detta dokument avser inte att förklara detta i detalj. I stället avser det att ge en överblick över hur PAM-konfiguration knyts samman med GDM, hur PAM vanligtvis är konfigurerat tillsammans med GDM och kända problem. Det förväntas att en person som behöver göra PAM-konfigurering behöver läsa vidare i PAM-dokumentationen för att förstå hur man konfigurerar PAM och förstå terminologin i detta avsnitt.</para>
        
      <para>
        PAM configuration has different, but similar, interfaces on different
        Operating Systems, so check the
        <ulink type="help" url="man:pam.d">pam.d</ulink> or
        <ulink type="help" url="man:pam.conf">pam.conf</ulink> man page for
        details.  Be sure you read the PAM documentation and are comfortable
        with the security implications of any changes you intend to make to
        your configuration.
      </para>

      <para>Notera att GDM som standard använder PAM-tjänstnamnet ”gdm” för normal inloggning och PAM-tjänstnamnet ”gdm-autologin” för automatisk inloggning. Dessa tjänster kanske inte finns definierade i din pam.d eller pam.conf konfigurationsfil. Om en post saknas, kommer GDM att använda PAM:s standardbeteende. På de flesta system borde detta fungera bra. Men den automatiska inloggningsfunktionen kanske inte fungerar om gdm-autologin-tjänsten inte är definierad.</para>

      <para>
        The <filename>PostLogin</filename> script is run before
        pam_open_session is called, and the <filename>PreSession</filename>
        script is called after.  This allows the system administrator to add
        any scripting to the login process either before or after PAM 
        initializes the session.
      </para>

      <para>Om du önskar att få GDM att fungera med andra typer av autentiseringsmekanismer (som fingeravtryck eller SmartCard-läsare) så bör du implementera detta genom att använda en PAM-modul för den önskade autentiseringstypen snarare än att försöka modifiera GDM-koden direkt. Se vidare i PAM-dokumentation på ditt system.</para>

      <para>PAM har några begränsningar angående att fungera tillsammans med flera typer av autentisering samtidigt, såsom att acceptera antingen ett SmartCard eller möjligheten att mata in användarnamn och lösenord i inloggningsprogrammet. Det finns tekniker för att få detta att fungera, och det är bäst att ta reda på hur detta problem vanligtvis löses när du ställer in en sådan konfiguration.</para>

      <para>Om automatisk inloggning inte fungerar på ett system, kontrollera om PAM-stacken ”gdm-autologin” är definierad i PAM-konfigurationen. För att detta ska fungera är det nödvändigt att använda en PAM-modul som helt enkelt inte gör någon autentisering, eller som helt enkelt returnerar PAM_SUCCESS från alla dess publika gränssnitt. Under antagandet att ditt system har en pam_allow.so PAM-modul som gör detta, skulle PAM-konfigurationen för att aktivera ”gdm-autologin” se ut så här:</para>

<screen>
       gdm-autologin auth  required    pam_unix_cred.so.1
       gdm-autologin auth  sufficient  pam_allow.so.1
       gdm-autologin account  sufficient  pam_allow.so.1
       gdm-autologin session  sufficient  pam_allow.so.1
       gdm-autologin password  sufficient  pam_allow.so.1
</screen>

      <para>Ovanstående inställning kommer att orsaka att ingen lastlog-post genereras. Om en lastlog-post önskas använd följande för sessionen:</para>

<screen>
       gdm-autologin session required pam_unix_session.so.1
</screen>

      <para>Om datorn används av flera människor, vilket gör automatisk inloggning olämplig, kanske du vill låta några användare logga in utan att ange lösenord. Denna funktion kan aktiveras som en konfiguration per användare i verktyget user-admin från gnome-system-tools; det uppnås genom att kontrollera om användaren är medlem i en Unix-grupp kallad ”nopasswdlogin” innan lösenordsfrågan. För att detta ska fungera måste PAM-konfigurationsfilen för ”gdm”-tjänsten inkludera en rad i stil med:</para>

<screen>
      gdm auth  sufficient  pam_succeed_if.so  user ingroup nopasswdlogin
</screen>

    </sect2>

    <sect2 id="utmpwtmp">
      <title>utmp och wtmp</title>

      <para>
        GDM generates utmp and wtmp User Accounting Database entries upon
        session login and logout.  The utmp database contains user access
        and accounting information that is accessed by commands such as
        <command>finger</command>, <command>last</command>,
        <command>login</command>, and <command>who</command>.  The wtmp
        database contains the history of user access and accounting 
        information for the utmp database.  Refer to the 
        <ulink type="help" url="man:utmp">utmp</ulink> and
        <ulink type="help" url="man:wtmp">wtmp</ulink>
        man pages on your system for more information.
      </para>
    </sect2>

    <sect2 id="xauth">
      <title>Xserver-autentiseringssystem</title>

      <para>
        Xserver authorization files are stored in a newly created subdirectory
        of <filename>&lt;var&gt;/run/gdm</filename> at start up.  These files
        are used to store and share a "password" between X clients
        and the Xserver.  This "password" is unique for each session
        logged in, so users from one session can't snoop on users from another.
      </para>

      <para>GDM har bara stöd för MIT-MAGIC-COOKIE-1 Xserver-autentiseringssystemet. Normalt tjänar man väldigt lite på andra system och inga försök har gjort för att implementera dem så här långt. Var speciellt aktsam med att använda XDMCP eftersom Xserverns autentiseringskaka överförs i klartext. Om snokande är möjligt kan en angripare enkelt snoka reda på ditt autentiseringslösenord när du logga in, oavsett vilket autentiseringsystem som används. Om snokande är möjligt och oönskad, bör du använda ssh för att tunnla en X-anslutning snarare än att använda XDMCP. Du kan tänka på XDMCP som en sorts grafiskt telnet, som har samma säkerhetsproblem. I de flesta fall bör ssh -Y föredras framför GDM:s XDMCP-funktioner.</para>

    </sect2>

    <sect2 id="xdmcpsecurity">
      <title>XDMCP-säkerhet</title>

      <para>Även om din display skyddas av kakor kommer XEvent och därför tangentnedslag vid lösenordsinmatning fortfarande överföras i klartext. Det är trivialt att fånga in dessa.</para>

      <para>XDMCP är primärt användbart för att köra tunna klienter som exempelvis i terminal-laboratorier. Dessa tunna klienter kommer endast att använda nätverket för att nå servern så det förefaller som den bästa säkerhetspolicyn är att ha de tunna klienterna på ett separat nätverk, som inte kan nås av resten av världen, och de kan bara ansluta till servern. Den enda punkten från vilken du behöver tillgång till utsidan är från servern. Denna typ av installation bör aldrig använda en ohanterad hubb eller annat nätverk som man kan fånga paket från.</para>

    </sect2>

    <sect2 id="xdmcpaccess">
      <title>XDMCP tillgångskontroll</title>

      <para>XDMCP tillgångskontroll genomförs med hjälp av TCP wrappers. Det är möjligt att kompilera GDM utan stöd för TCP wrapper, så stöd för denna funktion kanske inte finns under vissa operativsystem.</para>

      <para>
        You should use the daemon name <command>gdm</command> in the
        <filename>&lt;etc&gt;/hosts.allow</filename> and
        <filename>&lt;etc&gt;/hosts.deny</filename> files.  For example to 
        deny computers from <filename>.evil.domain</filename> from logging in,
        then add
      </para>
<screen>
gdm: .evil.domain
</screen>
      <para>
        to <filename>&lt;etc&gt;/hosts.deny</filename>.  You may also need
        to add
      </para>
<screen>
gdm: .your.domain
</screen>
      <para>
        to your <filename>&lt;etc&gt;/hosts.allow</filename> if you normally
        disallow all services from all hosts.  See the
        <ulink type="help" url="man:hosts.allow">hosts.allow(5)</ulink> man
        page for details.
      </para>
    </sect2>

    <sect2 id="firewall">
      <title>Brandväggssäkerhet</title>

      <para>Även om GDM försöker att överlista potentiella angripare som försöker dra nytta av XDMCP är det fortfarande rekommenderat att du blockerar XDMCP-porten (normalt UDP-port 177) i din brandvägg om den inte verkligen behövs. GDM skyddar mot överbelastningsattacker men X-protokollet är ändå osäkert till sin natur och bör bara användas i kontrollerade miljöer. Dessutom tar varje fjärranslutning upp massor av resurser så det är mycket enklare att genomföra en överbelastningsattack via XDMCP än att attackera en webbserver.</para>

      <para>Det är också vist att blockera alla Xserverns portar. Dessa är TCP-portarna 6000+ (en för varje displaynummer) i din brandvägg. Notera att GDM kommer att använda displaynummer 20 och högre för flexibla on-demand-servrar.</para>

      <para>X är inte ett särskilt säkert protokoll om det används över internet och XDMCP är ännu osäkrare.</para>
    </sect2>

    <sect2 id="policykit">
      <title>PolicyKit</title>

<!--
<para>
        TODO - Should we say more?
</para>
-->

      <para>GDM kan konfigureras att använda PolicyKit för att låta systemadministratören kontrollera huruvida inloggningsskärmen bör erbjuda nedstängnings- och omstartsknapparna på inloggningsskärmen.</para>

      <para>
        These buttons are controlled by the
        <filename>org.freedesktop.consolekit.system.stop-multiple-users</filename>
        and
        <filename>org.freedesktop.consolekit.system.restart-multiple-users</filename>
        actions respectively.  Policy for these actions can be set up using the
        polkit-gnome-authorization tool, or the polkit-auth command line program.
      </para>
 
    </sect2>

    <sect2 id="rbac">
      <title>RBAC (Roll-baserad tillgångskontroll)</title>

      <para>GDM kan konfigureras att använda RBAC i stället för PolicyKit. I detta fall används RBAC-konfigurationen för att kontrollera huruvida inloggningsskärmen ska erbjuda nedstängnings- och omstartsknapparna på inloggningsskärmen.</para>

      <para>
        For example, on Oracle Solaris, the "solaris.system.shutdown"
        authorization is used to control this.  Simply modify the 
        <filename>/etc/user_attr</filename> file so that the "gdm"
        user has this authorization.
      </para>
    </sect2>

  </sect1>

  <!-- ============= ConsoleKit ================================ -->

  <sect1 id="consolekit">
    <title>Stöd för ConsoleKit</title>

<!--
<para>
    TODO - Should we update these docs?  Probably should mention any 
           configuration that users may want to do for using it with GDM?
           If so, perhaps this section should be moved to a subsection of
           the "Configure" section?
</para>
-->

    <para>GDM inkluderar stöd för att publicera användarens inloggningsinformation via användar- och inloggningssessionsramverket känt som ConsoleKit. ConsoleKit kan hålla reda på alla användare som för närvarande är inloggade. I detta avseende kan det användas som en ersättare för utmp- eller utmpx-filerna som finns på de flesta Unix-lika operativsystemen.</para>

    <para>När GDM ska skapa en ny inloggningsprocess för en användare kommer det att anropa en privilegierad metod i ConsoleKit för att öppna en ny session för denna användare. Vid detta tillfälle kommer GDM också att ge ConsoleKit information om denna användarsessionen som till exempel: användar-ID:t, X11-displaynamnet som kommer att associeras med sessionen, värdnamnet från vilken sessionen härrör (användbart för XDMCP-sessioner), huruvida denna session är knuten, etc. Som entiteten som initierar användarprocessen sitter GDM i den unika positionen att känna till användarsessionen och är betrodd med dessa bitar av information. Användningen av denna privilegierade metod är begränsad av säkerhetspolicyn för D-Bus systemmeddelandebuss.</para>

    <para>Om en användare med en existerande session har autentiserats via GDM och begära att återuppta denna existerande session kommer GDM att anropa en privilegierad metod i ConsoleKit för att låsa upp den sessionen. De precisa detaljer om vad som händer när session får denna upplåsningssignal är odefinierade och sessionspecifika. Men de flesta sessioner kommer att låsa upp en skärmsläckare som svar på detta.</para>

    <para>När användaren väljer att logga eller om GDM eller sessionen oväntat avslutas kommer användarsessionen att avregistreras från ConsoleKit.</para>
  </sect1>

  <!-- ============= Configuration ============================= -->

  <sect1 id="configuration">
    <title>Konfiguration</title>

    <para>GDM har ett antal konfigurationsgränssnitt. Dessa inkluderar integrationspunkter för skriptning, demonkonfiguration, inloggningsskärmskonfiguration, allmänna sessionsinställningar, integration med konfiguration för gnome-settings-daemon, och sessionkonfiguration. Dessa typer av integration beskrivs i detalj nedan.</para>

    <sect2 id="scripting">
      <title>Skriptintegrationspunkter</title>
      
      <para>
        The GDM script integration points can be found in the
        <filename>&lt;etc&gt;/gdm/</filename> directory:
      </para>

<screen>
Xsession
Init/
PostLogin/
PreSession/
PostSession/
</screen>

      <para>
        The <filename>Init</filename>, <filename>PostLogin</filename>,
        <filename>PreSession</filename>, and <filename>PostSession</filename>
        scripts all work as described below.
      </para>

      <para>
        For each type of script, the default one which will be executed is
        called "Default" and is stored in a directory associated with
        the script type.  So the default <filename>Init</filename> script is 
        <filename>&lt;etc&gt;/gdm/Init/Default</filename>.  A per-display
        script can be provided, and if it exists it will be run instead of the 
        default script.  Such scripts are stored in the same directory as the
        default script and have the same name as the Xserver DISPLAY value for
        that display.  For example, if the <filename>&lt;Init&gt;/:0</filename>
        script exists, it will be run for DISPLAY ":0".
     </para>

     <para>Alla dessa skript körs med root-privilegier och returnerar 0 om de körs utan problem, och en returkod som inte är 0 om något fel uppstod som bör orsaka att inloggningssessionen bör avbrytas. Notera också att GDM kommer att blockera tills skriptet avslutas, så om något av dessa skript hänger kommer detta att orsaka att inloggningsprocessen också hänger.</para>

      <para>
        When the Xserver for the login GUI has been successfully started, but
        before the login GUI is actually displayed, GDM will run the
        <filename>Init</filename> script.  This script is useful for starting
        programs that should be run while the login screen is showing, or for
        doing any special initialization if required.
      </para>

      <para>
        After the user has been successfully authenticated GDM will run the
        <filename>PostLogin</filename> script.  This is done before any session
        setup has been done, including before the pam_open_session call.  This
        script is useful for doing any session initialization that needs to
        happen before the session starts.  For example, you might setup the
        user's $HOME directory if needed.
      </para>

      <para>
        After the user session has been initialized, GDM will run the
        <filename>PreSession</filename> script.  This script is useful for
        doing any session initialization that needs to happen after the 
        session has been initialized.  It can be used for session management or
        accounting, for example.
      </para>

      <para> 
        When a user terminates their session, GDM will run the
        <filename>PostSession</filename> script.  Note that the Xserver will
        have been stopped by the time this script is run, so it should not be
        accessed.  
      </para>

      <para>
        Note that the <filename>PostSession</filename> script will be run
        even when the display fails to respond due to an I/O error or
        similar. Thus, there is no guarantee that X applications will work
        during script execution.
      </para>

      <para>
        All of the above scripts will set the
        <filename>$RUNNING_UNDER_GDM</filename> environment variable to
        <filename>yes</filename>.  If the scripts are also shared with other
        display managers, this allows you to identify when GDM is calling these
        scripts, so you can run specific code when GDM is used.
      </para>
    </sect2>

    <sect2 id="autostart">
      <title>Autostartskonfiguration</title>
      
      <para>
        The <filename>&lt;share&gt;/gdm/autostart/LoginWindow</filename>
        directory contains files in the format specified by the
        "FreeDesktop.org Desktop Application Autostart
        Specification".  Standard features in the specification may be
        used to specify programs that should auto-restart or only be launched
        if a GConf configuration value is set, etc.
      </para>

      <para>
        Any <filename>.desktop</filename> files in this directory will cause
        the associated program to automatically start with the login GUI
        greeter.  By default, GDM is shipped with files which will autostart
        the gdm-simple-greeter login GUI greeter itself, the
        gnome-power-manager application, the gnome-settings-daemon, and the
        metacity window manager.  These programs are needed for the greeter
        program to work.  In addition, desktop files are provided for starting
        various AT programs if the configuration values specified in the
        Accessibility Configuration section below are set.
      </para>
    </sect2>

    <sect2 id="xsessionscript">
      <title>Xsession-skript</title>

      <para>
        There is also an <filename>Xsession</filename> script located at
        <filename>&lt;etc&gt;/gdm/Xsession</filename> which is called between
        the <filename>PreSession</filename> and the
        <filename>PostSession</filename> scripts.  This script does not
        support per-display like the other scripts.  This script is used for
        actually starting the user session.  This script is run as the user,
        and it will run whatever session was specified by the Desktop session
        file the user selected to start. 
      </para>
    </sect2>

    <sect2 id="daemonconfig">
      <title>Konfiguration av demonerna</title>

      <para>
        The GDM daemon is configured using the
        <filename>&lt;etc&gt;/gdm/custom.conf</filename> file.  Default
        values are stored in GConf in the <filename>gdm.schemas</filename>
        file.  It is recommended that end-users modify the
        <filename>&lt;etc&gt;/gdm/custom.conf</filename> file because the
        schemas file may be overwritten when the user updates their system to
        have a newer version of GDM.
      </para>

      <para>Notera att äldre versioner av GDM har stöd för ytterligare konfigurationsalternativ som saknar stöd i de senaste versionerna av GDM.</para>

      <para>
        The <filename>&lt;etc&gt;/gdm/custom.conf</filename> file is in the
        <filename>keyfile</filename> format.  Keywords in brackets
        define group sections, strings before an equal sign (=) are keys and
        the data after equal sign represents their value.  Empty lines or
        lines starting with the hash mark (#) are ignored.  
      </para>

      <para>
        The file <filename>&lt;etc&gt;/gdm/custom.conf</filename> supports the
        "[daemon]", "[security]", and "[xdmcp]"
        group sections.  Within each group, there are particular key/value
        pairs that can be specified to modify how GDM behaves.  For example,
        to enable timed login and specify the timed login user to be a user
        named "you", you would modify the file so it contains the
        following lines:
      </para>
     
<screen>
[daemon]
TimedLoginEnable=true
TimedLogin=you
</screen>

      <para>En fullständig lista följer över konfigurationsnycklar som stöds:</para>

      <sect3 id="choosersection">
        <title>[chooser]</title>
        <variablelist>

          <varlistentry>
            <term>Multicast</term>
            <listitem>
              <synopsis>Multicast=false</synopsis>
              <para>Om true och IPv6 är aktiverat kommer väljaren att skicka en multicast-förfrågan till det lokala nätverket och samla in svaren från värdarna som har gått med i multicast-gruppen.</para>
            </listitem>
          </varlistentry>
         
          <varlistentry>
            <term>MulticastAddr</term>
            <listitem>
              <synopsis>MulticastAddr=ff02::1</synopsis>
              <para>Detta är den länklokala multicast-adressen.</para>
            </listitem>
          </varlistentry>
        </variablelist>
      </sect3>

      <sect3 id="daemonsection">
        <title>[daemon]</title>
        <variablelist>
          <varlistentry>
            <term>TimedLoginEnable</term>
            <listitem>
              <synopsis>TimedLoginEnable=false</synopsis>
              <para>
                 If the user given in <filename>TimedLogin</filename> should be
                logged in after a number of seconds (set with
                <filename>TimedLoginDelay</filename>) of inactivity on the
                login screen.  This is useful for public access terminals or
                perhaps even home use.  If the user uses the keyboard or
                browses the menus, the timeout will be reset to 
                <filename>TimedLoginDelay</filename> or 30 seconds, whichever 
                is higher.   If the user does not enter a username but just
                hits the ENTER key while the login program is requesting the
                username, then GDM will assume the user wants to login
                immediately as the timed user.  Note that no password will be
                asked for this user so you should be careful, although if using
                PAM it can be configured to require password entry before
                allowing login.  Refer to the "Security-&gt;PAM"
                section of the manual for more information, or for help if this
                feature does not seem to work.
              </para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>TimedLogin</term>
            <listitem>
              <synopsis>TimedLogin=</synopsis>
              <para>Detta är användaren som bör loggas in efter ett antal sekunders inaktivitet.</para>
              <para>Om värdet slutar med ett vertikalstreck | (rörsymbolen) kommer GDM att köra det angivna programmet och använda värdet som det returnerar på standardutmatning från programmet som användaren. Programmet körs med miljövariabeln DISPLAY satt så det är möjligt att ange användaren per skärm. Om till exempel värdet är ”/usr/bin/getloginuser|” kommer programmet ”/usr/bin/getloginuser” att köras för att hämta användarvärdet.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>TimedLoginDelay</term>
            <listitem>
              <synopsis>TimedLoginDelay=30</synopsis>
              <para>
                Delay in seconds before the <filename>TimedLogin</filename>
                user will be logged in.
              </para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>AutomaticLoginEnable</term>
            <listitem>
              <synopsis>AutomaticLoginEnable=false</synopsis>
              <para>
                If true, the user given in <filename>AutomaticLogin</filename>
                should be logged in immediately. This feature is like timed
                login with a delay of 0 seconds.
              </para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>AutomaticLogin</term>
            <listitem>
              <synopsis>AutomaticLogin=</synopsis>
              <para>
                This is the user that should be logged in immediately if
                <filename>AutomaticLoginEnable</filename> is true.
              </para>
              <para>Om värdet slutar med ett vertikalstreck | (rörsymbolen) kommer GDM att köra det angivna programmet och använda värdet som det returnerar på standardutmatning från programmet som användaren. Programmet körs med miljövariabeln DISPLAY satt så det är möjligt att ange användaren per skärm. Om till exempel värdet är ”/usr/bin/getloginuser|” kommer programmet ”/usr/bin/getloginuser” att köras för att hämta användarvärdet.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>User</term>
            <listitem>
              <synopsis>User=gdm</synopsis>
              <para>
                The username under which the greeter and other GUI programs
                are run.  Refer to the <filename>User</filename>
                configuration key and to the "Security-&gt;GDM User And
                Group" section of this document for more information.
              </para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Group</term>
            <listitem>
              <synopsis>Group=gdm</synopsis>
              <para>
                The group name under which the greeter and other GUI programs
                are run.  Refer to the <filename>Group</filename>
                configuration key and to the "Security-&gt;GDM User And
                Group" section of this document for more information.
              </para>
            </listitem>
          </varlistentry>
        </variablelist>
      </sect3>

      <sect3 id="debugsection">
        <title>Felsökningsalternativ</title>
      
        <variablelist>
          <title>[debug]</title>
          
          <varlistentry>
            <term>Enable</term>
            <listitem>
              <synopsis>Enable=false</synopsis>
              <para>
                To enable debugging, set the debug/Enable key to
                "true" in the
                <filename>&lt;etc&gt;/gdm/custom.conf</filename>
                file and restart GDM.  Then debug output will be sent to the
                system log file (<filename>&lt;var&gt;/log/messages</filename>
                or <filename>&lt;var&gt;/adm/messages</filename> depending on
                your Operating System).
              </para>
            </listitem>
          </varlistentry>
        </variablelist>
      </sect3>

      <sect3 id="securitysection">
        <title>Säkerhetsalternativ</title>
      
        <variablelist>
          <title>[security]</title>
          
          <varlistentry>
            <term>DisallowTCP</term>
            <listitem>
              <synopsis>DisallowTCP=true</synopsis>
              <para>
                If true, then always append <filename>-nolisten tcp</filename>
                to the command line when starting attached Xservers, thus
                disallowing TCP connection.  This is a more secure
                configuration if you are not using remote connections.
              </para>
            </listitem>
          </varlistentry>
        </variablelist>
      </sect3>

      <sect3 id="xdmcpsection">
        <title>XDCMP-stöd</title>

        <variablelist>
          <title>[xdmcp]</title>
          
          <varlistentry>
            <term>DisplaysPerHost</term>
            <listitem>
              <synopsis>DisplaysPerHost=1</synopsis>
              <para>För att förhindra angripare från att fylla upp den väntande kön kommer GDM bara att tillåta en anslutning per fjärrdator. Om du vill erbjuda ytterligare skärmtjänster till datorer med mer än en skärm bör du öka detta värde.</para>

              <para>Notera att antalet kopplade SKÄRMAR som tillåts inte är begränsat. Endast fjärranslutningar via XDMCP begränsas av detta konfigurationsalternativ.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Enable</term>
            <listitem>
              <synopsis>Enable=false</synopsis>
              <para>Att sätta detta till true låter XDMCP-stödet att låta GDM hantera fjärrskärmar/X-terminaler.</para>
            
              <para>
                <filename>gdm</filename> listens for requests on UDP port 177.
                See the Port option for more information.
              </para>
              
              <para>
                If GDM is compiled to support it, access from remote displays
                can be controlled using the TCP Wrappers library. The service
                name is <filename>gdm</filename>
              </para>
            
              <para>
                You should add 
<screen>
gdm:.my.domain
</screen>
                to your <filename>&lt;etc&gt;/hosts.allow</filename>, depending
                on your TCP Wrappers configuration.  See the
                <ulink type="help" url="man:hosts.allow">hosts.allow</ulink>
                man page for details.
              </para>
              
              <para>Notera att XDMCP inte är ett särskilt säkert protokoll och att det är en bra idé att blockera UDP-port 177 i din brandvägg om du inte verkligen behöver det.</para>
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>HonorIndirect</term>
            <listitem>
              <synopsis>HonorIndirect=true</synopsis>
              <para>
                Enables XDMCP INDIRECT choosing (i.e. remote execution of
                <filename>gdmchooser</filename>) for X-terminals which do not
                supply their own display browser.
              </para>
            </listitem>
          </varlistentry>
        
          <varlistentry>
            <term>MaxPending</term>
            <listitem>
              <synopsis>MaxPending=4</synopsis>
              <para>För att undvika överbelastningsattacker har GDM en kö av väntande anslutningar med fast storlek. Bara MaxPending skärmar kan starta samtidigt.</para>
            
              <para>Notera att denna parameter inte begränsar antalet fjärrskärmar som kan hanteras. Det begränsar bara antalet skärmar som kan påbörja anslutningar samtidigt.</para>
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>MaxSessions</term>
            <listitem>
              <synopsis>MaxSessions=16</synopsis>
              <para>Bestämmer maximalt antal fjärrskärmsanslutningar som kan hantera samtidigt. D.v.s. det totala antalet fjärrskärmar som kan använda din värd.</para>
            </listitem>
          </varlistentry>
        
          <varlistentry>
            <term>MaxWait</term>
            <listitem>
              <synopsis>MaxWait=30</synopsis>
              <para>När GDM är redo att hantera en skärm så skickas ett ACCEPT-paket till det innehållandes ett unikt sessions-ID som kommer att användas i framtida XDMCP-konversationer.</para>
            
              <para>GDM kommer sedan att placera sessions-ID:t i den väntande kön där det väntar på att skärmen ska svara med en MANAGE-begäran.</para>
            
              <para>Om inget svar tas emot inom MaxWait sekunder kommer GDM att anse att skärmen är död och ta bort den från den väntande kön vilket frigör utrymme för andra skärmar.</para>
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>MaxWaitIndirect</term>
            <listitem>
              <synopsis>MaxWaitIndirect=30</synopsis>
              <para>
                The MaxWaitIndirect parameter determines the maximum number of
                seconds between the time where a user chooses a host and the
                subsequent indirect query where the user is connected to the
                host.  When the timeout is exceeded, the information about the
                chosen host is forgotten and the indirect slot freed up for
                other displays.  The information may be forgotten earlier if
                there are more hosts trying to send indirect queries then
                <filename>MaxPendingIndirect</filename>.
              </para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Port</term>
            <listitem>
              <synopsis>Port=177</synopsis>
              <para>
                The UDP port number <filename>gdm</filename> should listen to
                for XDMCP requests. Do not change this unless you know what
                you are doing.
              </para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Willing</term>
            <listitem>
              <synopsis>Willing=&lt;etc&gt;/gdm/Xwilling</synopsis>
              <para>När maskinen skickar ett WILLING-paket tillbaka efter en QUERY så skickas en sträng som anger den aktuella statusen för denna server. Standardmeddelandet är system-ID:t, men det är möjligt att skapa ett skript som visar anpassade meddelanden. Om detta skript inte existerar eller denna nyckel är tom kommer standardmeddelandet att skickas. Om detta skript lyckas och producerar utskrifter så kommer den första (och bara den första) raden av utskrifter att skickas. Det körs som mest var tredje sekund för att förhindra möjliga överbelastningsattacker genom att överbelasta maskinen med QUERY-paket.</para>
            </listitem>
          </varlistentry>
        </variablelist>
      </sect3>
    </sect2>

    <sect2 id="greeterconfiguration">
        <title>Enkel inloggningsskärmskonfiguration</title>

        <para>
          The GDM default greeter is called the simple Greeter and is
          configured via GConf.  Default values are stored in GConf in the
          <filename>gdm-simple-greeter.schemas</filename> file.  These defaults
          can be overridden if the "gdm" user has a writable $HOME
          directory to store GConf settings.  These values can be edited using
          the <command>gconftool-2</command> or <command>gconf-editor</command>
          programs.  The following configuration options are supported:
        </para>

        <variablelist>
          <title>Tangenter för inloggningsskärmskonfiguration</title>

          <varlistentry>
            <term>/apps/gdm/simple-greeter/banner_message_enable</term>
            <listitem>
              <synopsis>false (boolean)</synopsis>
              <para>Styr huruvida meddelandetexten ska visas.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>/apps/gdm/simple-greeter/banner_message_text</term>
            <listitem>
              <synopsis>NULL (sträng)</synopsis>
              <para>Anger textmeddelande som ska visas på inloggningsskärmen.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>/apps/gdm/simple-greeter/disable_restart_buttons</term>
            <listitem>
              <synopsis>false (boolean)</synopsis>
              <para>Styr huruvida omstartsknapparna visas i inloggningsfönstret.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>/apps/gdm/simple-greeter/disable_user_list</term>
            <listitem>
              <synopsis>false (boolean)</synopsis>
              <para>Om true så kommer ansiktsbläddraren med kända användare inte att visas i inloggningsfönstret.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>/apps/gdm/simple-greeter/logo_icon_name</term>
            <listitem>
              <synopsis>computer (sträng)</synopsis>
              <para>Ställ in till temats ikonnamn som ska användas för inloggningsskärmens logotyp.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>/apps/gdm/simple-greeter/recent-languages</term>
            <listitem>
              <synopsis>[] (stränglista)</synopsis>
              <para>Ställ in till en lista av språk som ska visas som standard i inloggningsfönstret. Standardvärdet är ”[]”. Med standardinställningen kommer bara systemets standardspråk att visas och alternativet ”Andra…” att visa en dialogruta som visar den fullständiga listan över tillgängliga språk som användaren kan välja bland.</para>

              <para>Användare avses inte ändra denna inställning för hand. I stället håller GDM reda på vilka språk som väljs i denna konfigurationsnyckel och kommer att visa dem i listboxen för språk tillsammans med valet ”Andra…”. På detta sätt kommer ofta valda språk att vara enklare att välja.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>/apps/gdm/simple-greeter/recent-layouts</term>
            <listitem>
              <synopsis>[] (stränglista)</synopsis>
              <para>Ställ in till en lista över tangentbordslayouter som ska visas som standard i inloggningspanelen. Standardvärdet är ”[]”. Med standardinställningen kommer endast systemets standardtangentbordslayout att visas och alternativet ”Andra…” kommer att visa en dialogruta med en fullständig lista över tillgängliga tangentbordslayouter som användaren kan välja bland.</para>

              <para>Användare avses inte ändra denna inställning för hand. I stället håller GDM reda på vilka tangentbordslayouter som väljs i denna konfigurationsnyckel och kommer att visa dem i listboxen för tangentbordslayout tillsammans med valet ”Andra…”. På detta sätt kommer ofta valda layouter att vara enklare att välja.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>/apps/gdm/simple-greeter/wm_use_compiz</term>
            <listitem>
              <synopsis>false (boolean)</synopsis>
              <para>Styr huruvida compiz används som fönsterhanterare i stället för metacity.</para>
            </listitem>
          </varlistentry>
        </variablelist>
    </sect2>

    <sect2 id="accessibilityconfiguration">
     <title>Hjälpmedelskonfiguration</title>

      <para>Detta avsnitt beskriver konfigurationsalternativ för hjälpmedel som finns i GDM.</para>

      <sect3 id="accessibilitydialog">
        <title>GDM hjälpmedelsdialog och GConf-nycklar</title>

        <para>GDM inloggningspanelen på inloggningsskärmen har en hjälpmedelsikon. Om du klickar på den ikonen öppnas GDM hjälpmedelsdialog. I hjälpmedelsdialogrutan finns det en lista av kryssrutor så att användaren kan aktivera eller inaktivera respektive hjälpmedel.</para>

        <para>Kryssrutorna som motsvarar hjälpmedlen skärmtangentbord, skärmförstorare och skärmläsare påverkar tre GConf-nycklar som beskrivs i nästa avsnitt av detta dokument. Genom att aktivera eller inaktivera dessa kryssrutor så kommer motsvarande GConf-nyckel att sättas till ”true” eller ”false”. När GConf-nyckeln sätts till true så startas hjälpmedlet som är länkat till denna GConf-nyckel. När GConf-nyckeln sätts till ”false” så kommer hjälpmedlet länkat till GConf-nyckeln att avslutas. Dessa GConf-nycklar återställs inte automatiskt till standardläget efter att en användare har loggat in. Följaktligen kommer de hjälpmedel som kördes vid den senaste inloggningssessionen att automatiskt starta vid nästa GDM-inloggningssession.</para>

        <para>De övriga kryssrutorna i GDM-hjälpmedelsdialogruta har inte motsvarande GConf-nycklar eftersom inga extra program startas för att hjälpmedelsfunktionen de erbjuder ska fungera. Dessa andra alternativ motsvarar hjälpmedelsfunktioner som erbjuds av Xservern som alltid kör under en GDM-session.</para>
      </sect3>

      <sect3 id="accessibilitygconfconfiguration">
        <title>GConf-nycklar för hjälpmedel</title>

        <para>GDM erbjuder följande GConf-nycklar för att kontrollera dess hjälpmedelsfunktioner:</para>

        <variablelist>
          <title>Tangenter för GDM-konfiguration</title>

          <varlistentry>
            <term>/desktop/gnome/interface/accessibility</term>
            <listitem>
              <synopsis>false (boolean)</synopsis>
              <para>Kontrollerar huruvida hjälpmedelsinfrastrukturen kommer att startas samtidigt med GDM GUI. Detta behövs för att många hjälpmedelsprogram ska fungera.</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>/desktop/gnome/applications/at/screen_magnifier_enabled</term>
            <listitem>
              <synopsis>false (boolean)</synopsis>
              <para>Om satt, kommer hjälpmedelsverktyget länkat till denna GConf-nyckel att startas samtidigt med GDM GUI-programmet. Som standard är detta ett skärmförstorarprogram.</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>/desktop/gnome/applications/at/screen_keyboard_enabled</term>
            <listitem>
              <synopsis>false (boolean)</synopsis>
              <para>Om satt, kommer hjälpmedelsverktyget länkat till denna GConf-nyckel att startas samtidigt med GDM GUI-programmet. Som standard är detta ett program för skärmtangentbord.</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>/desktop/gnome/applications/at/screen_reader_enabled</term>
            <listitem>
              <synopsis>false (boolean)</synopsis>
              <para>Om satt, kommer hjälpmedelsverktyget länkat till denna GConf-nyckel att startas samtidigt med GDM GUI-programmet. Som standard är detta ett skärmläsarprogram.</para>
            </listitem>
          </varlistentry>
        </variablelist>
      </sect3>

      <sect3 id="accessibilitytoolsconfiguration">
        <title>Att länka GConf-nycklar till hjälpmedelsprogram</title>

        <para>För GConf-nycklarna screen_magnifier_enabled, screen_keyboard_enabled, och screen_reader_enabled beror vilket hjälpmedelsprogram som startas på desktop-filerna i GDM:s autostartkatalog som beskrivs i avsnittet ”Autostartkonfiguration” i denna manual. Vilken desktop-fil som helst i GDM:s autostartkatalog kan länkas till dessa GConf-nycklar genom att ange den GConf-nyckeln i värdet AutostartCondition i dekstop-filen. Den exakta AutostartCondition-raden i desktop-filen skulle kunna vara en av följande:</para>

<screen>
AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled
AutostartCondition=GNOME /desktop/gnome/applications/at/screen_magnifier_enabled
AutostartCondition=GNOME /desktop/gnome/applications/at/screen_reader_enabled
</screen>

        <para>När en hjälpmedelsnyckel är true då kommer det program som är länkat till den nyckeln i en GDM autostart-desktop-fil att startas (om inte nyckeln Hidden är satt till true i samma desktop-fil). En ensam GConf-nyckel kan till och med starta flera hjälpmedelsverktyg om det finns flera desktop-filer med detta AutostartCondition i GDM:s autostartkatalog.</para>
      </sect3>

      <sect3 id="accessibilitytoolexample">
        <title>Exempel på hur man justerar hjälpmedelskonfigurationen</title>

        <para>Om GNOME till exempel distribueras med GOK som standard skärmtangentbord, då skulle detta kunna ersättas med ett annat program om önskvärt. För att ersätta GOK med skärmtangentbordsprogrammet ”onboard” och dessutom aktivera hjälpmedelsverktyget ”mousetweaks” för uppehållsstöd, då behövs följande konfiguration.</para>

        <para>Skapa en desktop-fil för onboard och en annan för mousetweaks; till exempel onboard.desktop och mousetweaks.desktop. Dessa filer måste placeras i GDM:s autostartkatalog och vara i formatet som beskrivs i avsnittet ”Autostartkonfiguration” i detta dokument.</para>

        <para>
         The following is an example <filename>onboard.desktop</filename> file:
        </para>

<screen>
[Desktop Entry]
Encoding=UTF-8
Name=Onboard Onscreen Keyboard
Comment=Use an on-screen keyboard
TryExec=onboard
Exec=onboard --size 500x180 -x 20 -y 10
Terminal=false
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Accessibility;
AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled
</screen>

        <para>
         The following is an example <filename>mousetweaks.desktop</filename>
         file:
        </para>

<screen>
[Desktop Entry]
Encoding=UTF-8
Name=Software Mouse-Clicks
Comment=Perform clicks by dwelling with the pointer
TryExec=mousetweaks
Exec=mousetweaks --enable-dwell -m window -c -x 20 -y 240 
Terminal=false
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Accessibility;
AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled
</screen>

        <para>Notera raden med AutostartCondition som länkar båda desktop-filerna till GConf-nyckeln för skärmtangentbord.</para>

        <para>För att inaktivera GOK från att starta måste desktop-filen för GOK skärmtangentbord tas bort eller inaktiveras. Annars kommer onboard och GOK att startas samtidigt. Detta kan göras genom att ta bort gok.desktop-filen från GDM:s autostartkatalog eller genom att lägga till nyckelinställningen ”Hidden=true” i gok.desktop-filen.</para>

        <para>Efter att dessa ändringar är gjorda kommer GOK inte längre att startas när användaren aktiverar skärmtangentbord i GDM-sessionen; i stället kommer onboard och mousetweaks att startas.</para>
      </sect3>
    </sect2>

    <sect2 id="generalsessionconfig">
      <title>Allmänna sessionsinställningar</title>
<!--
<para>
          TODO - I think this section should be expanded upon.  What specific
                 keys are of interest, or would some users be likely to want
                 to configure?  Also, would be good to be more specific about
                 how lock down management is handled.
</para>
-->
        <para>GDM:s inloggningsskärm använder vissa ramverk på samma sätt som din skrivbordssession gör. Därför är påverkas det av ett antal av samma GConf-inställningar. För varje inställning av dessa kommer inloggningsskärmen att använda standardvärdet om det inte är specifikt åsidosatt av a) GDM:s installerade obligatoriska policy b) systemet obligatoriska policy. GDM installerar sin egen obligatoriska policy för att låsa ner vissa inställningar av säkerhetsskäl.</para>
    </sect2>

    <sect2 id="gnomesettingsdaemon">
      <title>GNOME Inställningsdemon</title>
<!--
<para>
          TODO - I think this section should be expanded upon.  What specific
                 keys are of interest, or would some users be likely to want
                 to configure?  Also, would be good to give a more complete
                 list of plugins that users might want to consider disabling.
                 Also, shouldn't we list the sound/active key in the Greeter
                 configuration setting?  Oddly I do not find this key used
                 in anything but the chooser in SVN.
</para>
-->

        <para>GDM erbjuder följande insticksmoduler för gnome-settings-daemon: a11y-keyboard, background, sound, xsettings.</para>

        <para>Dessa är ansvariga för saker som bakgrundsbilden, typsnittet och temainställningar, ljudhändelser, etc.</para>

        <para>
          Plugins can also be disabled using GConf. For example, if you want to
          disable the sound plugin then unset the following key:
          <filename>/apps/gdm/simple-greeter/settings-manager-plugins/sound/active</filename>.
        </para>
    </sect2>

    <sect2 id="sessionconfig">
      <title>GDM-sessionskonfiguration</title>

      <para>
        GDM sessions are specified using the FreeDesktop.org Desktop Entry
        Specification, which can be referenced at the following URL:
        <ulink url="http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec">
        http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec</ulink>.
      </para>

      <para>
        By default, GDM will install desktop files in the
        <filename>&lt;share&gt;/xsessions</filename> directory.  GDM will
        search the following directories in this order to find desktop files:
        <filename>&lt;etc&gt;/X11/sessions/</filename>,
        <filename>&lt;dmconfdir&gt;/Sessions</filename>, 
        <filename>&lt;share&gt;/xsessions</filename>, and
        <filename>&lt;share&gt;/gdm/BuiltInSessions</filename>.  By default the
        <filename>&lt;dmconfdir&gt;</filename> is set to
        <filename>&lt;etc&gt;/dm/</filename> unless GDM is configured to use
        a different directory via the "--with-dmconfdir" option.
      </para>

      <para>
        A session can be disabled by editing the desktop file and adding a line
        as follows: <filename>Hidden=true</filename>.
      </para>

      <para>
        GDM desktop files support a GDM-specific extension, a key named
        "X-GDM-BypassXsession".  If the key is not specified in a
        desktop file, the value defaults to "false".  If this key is
        specified to be "true" in a desktop file, then GDM will
        launch the program specified by the desktop file "Exec" key
        directly when starting the user session.  It will not run the program
        via the <filename>&lt;etc&gt;/gdm/Xsession</filename> script, which is
        the normal behavior.  Since bypassing the
        <filename>&lt;etc&gt;/gdm/Xsession</filename> script avoids setting up
        the user session with the normal system and user settings, sessions
        started this way can be useful for debugging problems in the system or
        user scripts that might be preventing a user from being able to start
        a session.
      </para>

    </sect2>

    <sect2 id="userconfig">
      <title>GDM-användarsession och språkkonfiguration</title>
      <para>
        The user's default session and language choices are stored in the
        <filename>~/.dmrc</filename> file.  When a user logs in for the first
        time, this file is created with the user's initial choices.  The user
        can change these default values by simply changing to a different value
        when logging in.  GDM will remember this change for subsequent logins.
      </para>

      <para>
        The <filename>~/.dmrc</filename> file is in the standard
        <filename>INI</filename> format.  It has one section called
        <filename>[Desktop]</filename> which has two keys:
        <filename>Session</filename> and <filename>Language</filename>.
      </para>

      <para>
        The <filename>Session</filename> key specifies the basename of the
        session <filename>.desktop</filename> file that the user wishes to
        normally use without the <filename>.desktop</filename> extension.
        The <filename>Language</filename> key specifies the language that the
        user wishes to use by default.  If either of these keys is missing, the
        system default is used.  The file would normally look as follows:
      </para>

<screen>
[Desktop]
Session=gnome
Language=cs_CZ.UTF-8
</screen>
    </sect2>

  </sect1>

  <!-- ============= GDM Commands ============================= -->

  <sect1 id="binaries">
    <title>GDM-kommandon</title>

    <sect2 id="sbindir_binaries">
      <title>GDM root-användarkommandon</title>

      <para>
        The GDM package provides the following commands in
        <filename>sbindir</filename> intended to be run by the root user:
      </para>

      <sect3 id="gdmcommandline">
        <title><command>gdm</command> Command Line Options</title>

        <para>
          <command>gdm</command> is the main daemon which sets up
          graphical login environment and starts necessary helpers.
       </para>

        <variablelist>
          <title><command>gdm</command> Command Line Options</title>

          <varlistentry>
            <term>-?, --help</term>
            <listitem>
              <para>Ger en kort översikt över kommandoflaggorna.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>--fatal-warnings</term>
            <listitem>
              <para>Får alla varningar att avsluta GDM.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>--timed-exit</term>
            <listitem>
              <para>Avsluta efter 30 sekunder. Användbart för felsökning.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>--version</term>
            <listitem>
              <para>Skriv ut versionen av GDM-demonen.</para>
            </listitem>
          </varlistentry>
        </variablelist>
      </sect3>

      <sect3 id="gdmrestartcommandline">
        <title><command>gdm-restart</command> Command Line Options</title>

        <para>
          <command>gdm-restart</command> stops and restarts GDM by sending
          the GDM daemon a HUP signal.  This command will immediately terminate
          all sessions and log out users currently logged in with GDM.
        </para>
      </sect3>

      <sect3 id="gdmsaferestartcommandline">
        <title><command>gdm-safe-restart</command> Command Line Options</title>
  
        <para>
          <command>gdm-safe-restart</command> stops and restarts GDM by
          sending the GDM daemon a USR1 signal.  GDM will be restarted as soon
          as all users log out.
        </para>
      </sect3>

      <sect3 id="gdmstopcommandline">
        <title><command>gdm-stop</command> Command Line Options</title>

        <para>
          <command>gdm-stop</command> stops GDM by sending the GDM daemon
          a TERM signal. 
        </para>
      </sect3>
    </sect2>
  </sect1>

  <!-- ============= Troubleshooting =========================== -->

  <sect1 id="troubleshooting">
    <title>Problemlösning</title>
<!--
<para>
      TODO - any other tips we should add?  Might be useful to highlight any
             common D-Bus configuration issues?
</para>
-->

    <para>Detta stycket beskriver tips för hur du får GDM att fungera. Rent allmänt så kan du, om du har problem med GDM, skicka in en felrapport eller skicka e-post till sändlistan gdm-list. Information om hur du gör detta finns i Introduktionsavsnittet i dokumentet.</para>

    <para>
      If GDM is failing to work properly, it is always a good idea to include
      debug information.  To enable debugging, set the debug/Enable key to
      "true" in the <filename>&lt;etc&gt;/gdm/custom.conf</filename>
      file and restart GDM.  Then use GDM to the point where it fails, and
      debug output will be sent to the system log file
      (<filename>&lt;var&gt;/log/messages</filename> or
      <filename>&lt;var&gt;/adm/messages</filename> depending on your Operating
      System).  If you share this output with the GDM community via a bug
      report or email, please only include the GDM related debug information
      and not the entire file since it can be large.  If you do not see any
      GDM syslog output, you may need to configure syslog (refer to the
      <ulink type="help" url="man:syslog">syslog</ulink> man page).
    </para>

    <sect2 id="wontstart">
      <title>GDM vill inte starta</title>

      <para>Det finns många problem som kan orsaka att GDM misslyckas att starta, men detta avsnitt kommer att beskriva ett par vanliga problem och sättet på vilket man kan ringa in ett problem med start av GDM. Vissa problem kommer att orsaka att GDM svarar med ett felmeddelande eller -dialog när det försöker att starta, men det kan vara svårt att spåra problem när GDM misslyckas i tysthet.</para>

      <para>Först bör du säkerställa att Xservern är korrekt konfigurerad. GDM-konfigurationsfilen innehåller ett kommando i avsnittet [server-Standard] som används för att starta Xservern. Verifiera att detta kommando fungerar på ditt system. Om du kör detta kommando från konsolen bör det starta Xservern. Om det misslyckas är problem sannolikt med din Xserverkonfiguration. Se vidare i din Xserverfellogg för att få en idé om vad problemet kan vara. Problemet kan också vara att din Xserver kräver olika andra kommandoradsflaggor. Om det är fallet modifiera Xserver-kommandot i GDM-konfigurationsfilen så att den är korrekt för ditt system.</para>

      <para>
         Also make sure that the <filename>/tmp</filename> directory has
         reasonable ownership and permissions, and that the machine's file
         system is not full.  These problems will cause GDM to fail to start.
      </para>
    </sect2>
  </sect1>

  <!-- ============= Application License ============================= -->

  <sect1 id="license">
    <title>Licens</title>
    <para>
      This program is free software; you can redistribute it and/or
      modify it under the terms of the  <ulink type="help" url="gnome-help:gpl">
      <citetitle>GNU General Public License</citetitle></ulink> as
      published by the Free Software Foundation; 
      either version 2 of the License, or (at your option) any later
      version.
    </para>
    <para>
      This program is distributed in the hope that it will be useful, but
      WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      <citetitle>GNU General Public License</citetitle> for more details.
    </para>
    <para>
      A copy of the <citetitle>GNU General Public License</citetitle> is
      included as an appendix to the <citetitle>GNOME Users
      Guide</citetitle>.  You may also obtain a copy of the
      <citetitle>GNU General Public License</citetitle> from the Free
      Software Foundation by visiting
      <ulink type="http" url="http://www.fsf.org">their Web site</ulink> or by
      writing to
      <address>
      Free Software Foundation, Inc.
      <street>51 Franklin Street, Fifth Floor</street>
      <city>Boston</city>, <state>MA</state> <postcode>02110-1301</postcode>
      <country>USA</country>
      </address>
    </para>
  </sect1>
</article>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
