Du har rett.
Saken er litt mer kompleks enn først antatt.
Kun den aller første brukeren (etter at maskinen har startet) kan logge inni Xgl / Compiz desktop. Hvorfor er det slik?
1) X-windows benytter Unix-socket for å kommunisere. Men hvem eier Unix socketen for display #1 ?
$
ls -l /tmp/.X11-unix/X1
srwxrwxrwx 1 moma moma 0 2006-06-05 20:52 /tmp/.X11-unix/X1
Som du ser, den første brukeren (i mitt tilfelle "moma") eier socketen og ingen andre brukere (utenom root og moma) kan skrive til den.
2) På /tmp området finnes også en lås (lås-fil) som opprettes og eies av den første login-brukeren (her moma).
$
ls -l /tmp/.X1-lock
-r--r--r-- 1 moma moma 11 2006-06-05 20:52 /tmp/.X1-lock
Ikke rart at ingen andre brukere kan logge inn i X-windows selv om X-serveren omstartes. Kommunikasjonskanaler (innad Xgl) ble opprettet og eies av den første brukeren.
-----------------------------------------------
Det skulle ha vært ROOT (altså root-brukeren) som skal eie både X-windows prosess og socket'en samt lås-filen på /tmp området. Problemet kommer av at vi starter Xgl prosessen som en vanlig bruker (via .Xsession skript). Altså vanlig bruker vil eie alt Xgl skaper og lager.
DETTE ER FEIL !
Se filerettighetene til X, Xgl og Xorg på /usr/bin/.
$
ls -l /usr/bin/X*
-rw
sr-sr-x 1 root root 18066 2006-05-28 21:35 /usr/bin/X
-rwxr-xr-x 1 root root 1423416 2006-04-10 09:43 /usr/bin/Xgl
-rwxr-xr-x 1 root root 1565880 2006-05-15 04:49 /usr/bin/Xorg
Merk at vi kjører Xgl (og ikke vanlig X) når vi kjører Xgl/Compiz desktop.
Du ser at Xgl mangler "s" (SUID, SGID) bits !
Vi må la Xgl kjøre med superuser (root) rettigheter. Altså s-bit må aktiveres.
Gjør
$
sudo chmod --reference=/usr/bin/X /usr/bin/Xgl
-----------------------------------------------------------
Restart X-server (desktop) med CNTR + ALT + BACKSPACE.
eller med
$ sudo init 1
....
# init 2
--------------------------------------------------------------
PS. Husk å sette rettigheter på .Xsession når du kopierer den fra én bruker til annen.
F.eks moma2 er ny bruker på denne maskinen.
$ sudo chown moma2:moma2 .Xsession
$ chmod +x .Xsession
--------------------------------------------------------------
Les mer om betydningen av 's' (SUID og SGID) her
http://www.linuxguiden.no/index.php/Filrettigheter
--------------------------------------------------------------
Saken bør egentlig rapporteres tilbake til Ubuntu forums.
http://ubuntuforums.org eller http://compiz.net