Gå til innhold

starte grafiske program fra kommandolinja


Anbefalte innlegg

Hvordan får jeg starta grafiske program fra kommanolinja? alt jeg får er "refused by server". Dette skjer hos alle brukere untatt root. I tillegg virker ikke alt og altgr, så jeg får ikke lagt inn følgende i "code", noen som har en ide hvordan jeg får fiksa disse to tingene?

 

output av gedit:

root@UbntuLaptop:/home/bjorninge # su bjorninge

bjorninge@UbntuLaptop:~$ gedit /home/bjorninge/newfile.txt

Xlib: connection to ":0.0" refused by server

Xlib: No protocol specified

 

 

(gedit:27691): Gtk-WARNING **: cannot open display:

bjorninge@UbntuLaptop:~$

Lenke til kommentar
Videoannonse
Annonse

Jeg kjørte det i root terminal.

 

edit: Jeg fikk det til når jeg brutke vanlig terminal..

 

Forresten, noen som veit hvordan fikse det andre problemet mitt? tastekombinasjoner med alt, ctrl og alt gr virker ikke. krøllalfa, bracelets osv får jeg ikke skrevet. parantes osv går fint

Endret av dabear
Lenke til kommentar
Gjest Slettet-df17e
Jeg kjørte det i root terminal.

 

edit: Jeg fikk det til når jeg brutke vanlig terminal..

 

Forresten, noen som veit hvordan fikse det andre problemet mitt? tastekombinasjoner med alt, ctrl og alt gr virker ikke. krøllalfa, bracelets osv får jeg ikke skrevet. parantes osv går fint

Ja som nevnt over her.. Du kan ikke være root.

Lenke til kommentar

Trur dere misforstod. Jeg får til å kjøre grafiske ting i root terminal, hvis jeg er root. Tar jeg su bjorninge (min vanlige bruker) og deretter skriver inn fks gedit, får jeg denne feilen. Bruker jeg kun vanlig terminal, har jeg ikke noe problem, verken som root (sudo -s) eller som vanlig bruker

Endret av dabear
Lenke til kommentar

Det er en sikkerhetsgreie. Du må først, som den brukeren du er logget inn som i X, ikke som root, autorisere hosten localhost.

xhost +localhost

Da skal alle brukere fra localhost (altså alt du kjører lokalt på maskinen fra alle lokale brukere) kunne bruke X. Om du kjører xhost +localhost som root vil det ikke fungere, du må kjøre som den brukeren som kjører X.

ways, hans distro har kansje en annen default config av dette enn ubuntu.

Lenke til kommentar

ja, det er mulig han kjører et annet system, men

 

root@UbntuLaptop:/home/bjorninge # su bjorninge

 

gav meg inntrykket av at han kjørte ubuntu.

 

 

edit: selv om det er stavet feil.. =)

Endret av ways
Lenke til kommentar
Hvordan får jeg starta grafiske program fra kommanolinja? alt jeg får er "refused by server". Dette skjer hos alle brukere untatt root. I tillegg virker ikke alt og altgr, så jeg får ikke lagt inn følgende i "code", noen som har en ide hvordan jeg får fiksa disse to tingene?

 

output av gedit:

root@UbntuLaptop:/home/bjorninge # su bjorninge

bjorninge@UbntuLaptop:~$ gedit /home/bjorninge/newfile.txt

Xlib: connection to ":0.0" refused by server

Xlib: No protocol specified

 

 

(gedit:27691): Gtk-WARNING **: cannot open display:

bjorninge@UbntuLaptop:~$

su bjorninge
export DISPLAY=":0.0"
gedit /home/bjorninge/newfile.txt

Lenke til kommentar

Hvordan starter du X? Med startx, gdm, eller på en annen måte?

 

Siden du kjører ubuntu, antar jeg at du logger inn grafisk via gdm. Da må du logge inn som deg selv, du burde ikke kjøre alt som root. Riktignok vil X-serveren alltid kjøre som root uansett, for å få lov til å snakke med maskinvaren din. Men for at programmene du kjører (GNOME, etc...) skal kjøre som din egen bruker, bør du logge inn i gdm som deg selv (eller starte startx fra kommandolinja når du er logget inn som egen bruker).

 

I gamle dager var X nesten helt uten sikkerhetsmekanismer. Alle kunne åpne vinduer på en hvilken som helst maskin. Så ble en veldig enkel mekanisme lagt til for å begrense tilgangen. Dette er den xhost kommandoen folk har forklart over (med "xhost +localhost") vil alle som er logget inn (inkludert de som er logget inn over nettet) kunne åpne vinduer på din skjerm. Dette trenger ikke være så ille dersom det bare er deg som bruker maskinen, og ingen logger seg på over nettet, men heldigvis fins det bedre løsninger.

 

Den sikkerhetsløsningen ubuntu bruker er at ved innlogging/oppstart av X, opprettes en "MIT Magic Cookie" (ikke helt ulikt hva du kanskje har hørt om på web'en). For at programmer skal få lov til å snakke med X-serveren, må de fortelle innholdet av denne til X. Denne cookien lagres vanligvis i "~/.Xauthority", og det settes opp en environment variabel XAUTHORITY som peker til denne fila. Dette kan du se ved f.eks å skrive "echo $XAUTHORITY" på kommandolinja når du er logget inn i X.

 

Når du bruker su, eller sudo, til å endre bruker, vil de fleste environment-variable beholdes (inkludert XAUTHORITY). Så når jeg er logget inn som root vil "echo $XAUTHORITY" vise "/home/jo/.Xauthority", og ikke "/root/.Xauthority". Og ting fortsetter å fungere fint. Hvorfor fungerer det så ikke når du su'er videre til f.eks nobody?

 

Jo, ganske enkelt, brukeren nobody (eller de fleste andre brukere) har ikke rettigheter til å lese ".Xauthority" som ligger på ditt hjemmeområde. Da er det to muligheter. Enten å endre rettighetene på ".Xauthority" på ditt hjemmeområde. Eller (anbefalt) å kopiere .Xauthority over til et sted den andre brukeren har rettigheter til, og endre XAUTHORITY til å peke dit. Den siste løsningen er bedre, fordi du da bare gir rett til å kontakte X-serveren for denne innloggingen. Neste gang du logger inn vil den kopierte .Xauthority være verdiløs.

 

Enda en mulighet er å installere ssh, og bruke dette til å logge inn på din egen maskin som en annen bruker. Det kan kanskje virke noe unødvendig å gå gjennom en kryptert nettverksforbindelse bare for å logge på din egen maskin som en annen bruker, men ssh automatiserer nettopp den mekanismen jeg anbefalte over.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...