Denna delen av 99 uppdateras inte längre utan har arkiverats inför framtiden som ett museum.
Här kan du läsa mer om varför.
Mac-nyheter hittar du på Macradion.com och forumet hittar du via Applebubblan.

Hur hindra XDarwin från att öppna port 6000?

Tråden skapades och har fått 4 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • International user
  • 2004-11-23 15:55

Hej allihopa!

Jag har tidigare kört Linux och FreeBSD och vet att en X-server öppnar port 6000 automatiskt om man inte explicit hindrar detta. Jag vill inte ha någon mer port än port 22 (som öppnas av ssh-demonen) öppen på min dator, och vill därför se till att port 6000 inte öppnas.

Problemet är att jag inte vet hur jag ska göra så att port 6000 inte öppnas när jag startar XDarwin från finder (eller dockan). Jag har inga problem att starta XDarwin från terminalen, vilket jag gör med kommandot

[FONT="Fixedsys"]xinit ~/.xinitrc -- /usr/X11R6/bin/XDarwinStartup :0 -fullscreen -nolisten tcp[/FONT]

där [FONT="Fixedsys"]-nolisten tcp[/FONT] ser till att port 6000 inte öppnas. Den mycket intressanta filen

[FONT="Fixedsys"]/Applications/XDarwin.app/Contents/Resources/startXClients[/FONT]

verkar till en början vara det script som startar X-servern när man kör XDarwin från finder. Det hjälper dock inte att lägga till [FONT="Fixedsys"]-nolisten tcp[/FONT] för att förhindra att port 6000 öppnas (ni kan se scriptet nedan, mitt tillägg är rödfärgat).

Är det någon som vet hur jag kan lösa problemet? Det vore skönt att slippa starta XDarwin från terminaler.

Tack på förhand,
Stefan

#!/bin/sh

# This script is used by XDarwin to start X clients when XDarwin is
# launched from the Finder.
#
# $XFree86: xc/programs/Xserver/hw/darwin/bundle/startXClients.cpp,v 1.1 2001/10
/18 05:03:42 torrey Exp $

userclientrc=$HOME/.xinitrc
sysclientrc=/usr/X11R6/lib/X11/xinit/xinitrc
clientargs=""

if [ -f $userclientrc ]; then
    clientargs=$userclientrc
else if [ -f $sysclientrc ]; then
    clientargs=$sysclientrc
fi
fi

if [ "x$2" != "x" ]; then
    PATH="$PATH:$2"
    export PATH
fi

exec xinit $clientargs -- /usr/X11R6/bin/XDarwinStartup -nolisten tcp "$1" -idle

Jag kanske inte skall svara för jag är inte 100% på det här, men det går inte att använda xhost för att begränsa xservern så bara localhost får tillgång till den.

  • Medlem
  • International user
  • 2004-11-24 20:21
Ursprungligen av hanha014:

Jag kanske inte skall svara för jag är inte 100% på det här, men det går inte att använda xhost för att begränsa xservern så bara localhost får tillgång till den.

Det innebär väl att jag skulle behöva köra xhost varje gång jag startat en server, eller? Efter att ha tagit bort de namn som hör till INET eller INET6 så stängs port 6000, men då är det nog enklare att starta servern från en terminal (som jag gör nu). På så vis öppnas inte port 6000 till att börja med.

Problemet består inte i att få igång en server utan att port 6000 är öppen. Problemet är att kunna starta XDarwin(.app) från Finder (eller dockan) utan att port 6000 öppnas.

Jag provade även att skriva ett Apple Script som startar servern, och det fungerade bra. Jag tycker inte att det är att föredra, dock.

Ja, jag är som sagt inte säker på min sak.

Jag körde linux innan med XFree86 på, så jag kan ingenting om XDarwin.

Jag har för mig att xhost ändrar saker permanent till X serverns access-control list, så att man inte behöver lägga det i script och sånt. Jag kan dock inte svära på det, och som sagt, det är inte säkert att XDarwin fungerar på samma sätt som XFree86 ändå.

I och för sig så ändrar nog inte xhost om porten är öppen eller inte men det är i alla fall ett extra lager med säkerhet på vilka som skall få ansluta.

Hittade nån info här, de sa att eftersom det inte fanns nån GUI option för det, så var man tvungen att starta det från terminalen. Vet ju inte hurvida det stämmer.
http://www.xdarwin.org/forum/read.php?f=1&i=2788&t=2788

Jag kollade även på din fil där nere, ibland så spelar väl ordningen på flaggor och sånt roll, så testa att sätta --nolisten tcp efter "$1" (som jag antar kommer bli display'en). Det skulle ju vara jävligt konstigt om det inte var där du skulle ändra, det ser ju rätt naturligt ut att göra det där i så fall

  • Medlem
  • International user
  • 2004-11-24 22:13

Tyvärr så är förändringarna med xhost ej permanenta i det här fallet. Det är faktiskt så att xhost stänger port 6000 efter det att det inte finns några "namn" som använder INET eller INET6. Det verkar som att jag får nöja mig med att starta servern via terminaler. Jag har redan testat att ha -nolisten tcp till höger om "$1" med tanke på skärm-nummer, och det hjälpte inte. Jag låter nog saken bero ett tag.

Tack för synpunkterna.

1
Bevaka tråden