(X11, Gnome e KDE Desktop Manager)
XDM (X11 Display Manager), KDM (KDE Display Manager) e GDM (GNOME Display Manager).
e
Gerenciadores Gráficos Remotos
(XDM, KDM e GDM)
Gerenciadores Gráficos e Gerenciadores Gráficos Remotos.
XDM (instalação e comandos)
# apt-get install xdm (instala o gerenciador gráfico de login chamado XDM (X11 Display Manager). Desenvolvido pelo mesmo criadores do "xorg". Ao reiniciar o equipamento, ao invés da solicitação do login em modo texto, aparecerá o login em modo gráfico)
# /etc/init.d/xdm start (aparecerá o login em modo gráfico. Por padrão, não abre porta TCP ou UDP)
# xdm (idem, mas prefira usar o anterior, pois é válido para todas as distribuições)
XDM (acesso remoto)
Entre no equipamento o qual será acessado remotamente (servidor) e faça o seguinte:
# vi /etc/X11/xdm/Xaccess (descomente a linha a seguir)
#* #any host can get a login window
Salve e Sai
# vi /etc/X11/xdm/xdm-config (comente a linha a seguir)
DisplayManager.requestPort: 0
Salve e Sai
# init 3 (pára o ambiente gráfico e vai para o modo texto)
# init 5 (reinicia o ambiente gráfico. Ao invés de usar "init 3" e "init 5", poderíamos simplesmente usar "/etc/init.d/xdm restart")
Obs1: observe que o XDM deve está startado para que se possa acessá-lo remotamente. Isso acontece, pois as portas usadas para o acesso remoto só estarão abertas ao iniciar o XDM. As portas usadas são a 177 UDP e outras portas TCP abertas em tempo de execução. A porta 177 UDP é usada no inicio da comunicação, depois são usadas portas TCP (ex: 58844 e 58842) para o estabelecimento da conexão e troca de dados.
Obs2: o servidor X quando é acessado remotamente faz uma pergunta reversa (PTR) ao DNS para saber o hostname do cliente. Se o DNS não responder ou responder errado, em alguns momentos o X não vai permitir a conexão remota. Muito parecido com o TCPWapper (hosts.deny e hosts.allow). Caso ocorra problemas na conexão, verifique se o DNS está OK. Também, se pode trabalhar no arquivo "/etc/hosts" ao invés do servidor DNS, colocando o IP e HostName do cliente no servidor X, sendo excelente para testes sem mexer na infra-estrutura de rede.
Entre em outro equipamento (cliente) e digite:
# X -query server_address (com esse comando o acesso remoto será realizado. O "server_address" deve ser substituído pelo IP ou HostName do servidor)Obs: observe que no equipamento que fará o acesso remoto não precisa instalar o XDM, basta ter o XORG instalado. Também, é necessário que X local esteja parado. Só para conhecimento, o cliente sempre usa a porta de origem TCP 6000 para o estabelecimento da conexão e troca de dados.
KDM (instalação e comandos)
# apt-get install kdm (instala o gerenciador gráfico de login chamado KDM (KDE Display Manager). Desenvolvido pelo mesmo criadores do "kde". Na verdade ao instalar o KDE, já é instalado o KDM)
# /etc/init.d/kdm start (aparecerá o login em modo gráfico. Por padrão, não abre porta TCP ou UDP)
# kdm (idem)
KDM (acesso remoto)
Entre no equipamento o qual será acessado remotamente (servidor) e faça o seguinte:
# vi /etc/kde3/kdm/Xaccess (descomente a linha a seguir)
#* #any host can get a login window
Salve e Sai
# vi /etc/kde3/kdm/kdmrc (localize a seção [Xdmcp])
[Xdmcp]
Enable=false (mude para "true")
# init 3 (pára o ambiente gráfico e vai para o modo texto)
# init 5 (reinicia o ambiente gráfico. Ao invés de usar "init 3" e "init 5", poderíamos simplesmente usar "/etc/init.d/kdm restart")
Obs: observe que o KDM deve está startado para que se possa acessá-lo remotamente. Isso, acontece pois as portas usadas para o acesso remoto só estarão abertas ao iniciar o KDM. As portas usadas são a 177 UDP e outras portas TCP abertas em tempo de execução. A porta 177 UDP é usada no inicio da comunicação, depois são usadas portas TCP (ex: 58844 e 58842) para o estabelecimento da conexão e troca de dados.
Entre em outro equipamento (cliente) e digite:
# X -query server_address (com esse comando o acesso remoto será realizado. O "server_address" deve ser substituído pelo IP ou HostName do servidor)Obs1: observe que no equipamento que fará o acesso remoto não precisa instalar o KDM, basta ter o XORG instalado. Também, é necessário que X local esteja parado. Só para conhecimento, o cliente sempre usa a porta de origem TCP 6000 para o estabelecimento da conexão e troca de dados.
Obs2: o servidor X quando é acessado remotamente faz uma pergunta reversa (PTR) ao DNS para saber o hostname do cliente. Se o DNS não responder ou responder errado, em alguns momentos o X não vai permitir a conexão remota. Muito parecido com o TCPWapper (hosts.deny e hosts.allow). Caso ocorra problemas na conexão, verifique se o DNS está OK. Também, se pode trabalhar no arquivo "/etc/hosts" ao invés do servidor DNS, colocando o IP e HostName do cliente no servidor X, sendo excelente para testes sem mexer na infra-estrutura de rede.
GDM (instalação e comandos)
# apt-get install gdm (instala o gerenciador gráfico chamado GDM (GNOME Display Manager). Desenvolvido pelo mesmo criadores do "gnome". Na verdade ao instalar o GNOME, já é instalado o GDM)
# /etc/init.d/gdm start (aparecerá o login em modo gráfico. Por padrão, não abre porta TCP ou UDP)
# kdm (idem)
GDM (acesso remoto)
Entre no equipamento o qual será acessado remotamente (servidor) e faça o seguinte:
# vi /etc/gdm/gdm.conf (localize a seção [xdmcp])
[xdmcp] (insira a linha a seguir nessa seção)
Enable=true
# init 3 (pára o ambiente gráfico e vai para o modo texto)
# init 5 (reinicia o ambiente gráfico. Ao invés de usar "init 3" e "init 5", poderíamos simplesmente usar "/etc/init.d/kdm restart")
Obs: observe que o GDM deve está startado para que se possa acessá-lo remotamente. Isso, acontece pois as portas usadas para o acesso remoto só estarão abertas ao iniciar o GDM. As portas usadas são a 177 UDP e outras portas TCP abertas em tempo de execução. A porta 177 UDP é usada no inicio da comunicação, depois são usadas portas TCP (ex: 58844 e 58842) para o estabelecimento da conexão e troca de dados.
Entre em outro equipamento (cliente) e digite:
# X -query server_address (com esse comando o acesso remoto será realizado. O "server_address" deve ser substituído pelo IP ou HostName do servidor)Obs1: observe que no equipamento que fará o acesso remoto não precisa instalar o GDM, basta ter o XORG instalado. Também, é necessário que X local esteja parado. Só para conhecimento, o cliente sempre usa a porta de origem TCP 6000 para o estabelecimento da conexão e troca de dados.
Obs2: o servidor X quando é acessado remotamente faz uma pergunta reversa (PTR) ao DNS para saber o hostname do cliente. Se o DNS não responder ou responder errado, em alguns momentos o X não vai permitir a conexão remota. Muito parecido com o TCPWapper (hosts.deny e hosts.allow). Caso ocorra problemas na conexão, verifique se o DNS está OK. Também, se pode trabalhar no arquivo "/etc/hosts" ao invés do servidor DNS, colocando o IP e HostName do cliente no servidor X, sendo excelente para testes sem mexer na infra-estrutura de rede.
Primeira maneira
# vi /etc/inittab
id:5:initdefault: (mude o runlevel do initdefaul para "5", conforme essa linha)
Adicione somente uma das linhas a seguir:
x:5:respawn:/usr/bin/xdm -nodaemon (essa linha diz que o xdm será o gerenciador gráfico padrão)
x:5:respawn:/usr/bin/kdm -nodaemon (essa linha diz que o kdm será o gerenciador gráfico padrão)
x:5:respawn:/usr/sbin/gdm -nodaemon (essa linha diz que o gdm será o gerenciador gráfico padrão)
x:5:respawn:/usr/bin/X -query server_address (essa linha diz que o gerenciador gráfico padrão será remoto)
Segunda maneira (somente para o Debian)
# apt-get install rcconf (instala o "rcconf" que é uma ferramenta para habilitar ou desabilitar os daemons/serviços/scripts/tarefas/processos que sobem durante a inicialização do sistema)
# rcconf (um ambiente dialog aparecerá. Escolha um dos gerenciadores gráficos padrão e desabilite os outros caso existam. As opções dos gerenciadores geralmente são: xdm, kdm e gdm)
# vi /etc/X11/default-display-manager (arquivo que define o Gerenciador Gráfico Padrão)
Adicione somente uma das linhas a seguir:
/usr/bin/xdm (basta colocar o caminho completo do Gerenciador Gráfico padrão escolhida com a ferramenta "rcconf". Nesse caso foi especificado o xdm do Xorg)
/usr/bin/kdm (idem, só que para o kdm)
/usr/sbin/gdm (idem, só que para o gdm)
Terceira maneira
# ~/.xinitrc (nesse arquivo é possível configurar para cada usuário individualmente o gerenciador gráfico padrão)
exec blackbox (insira essa linha colocando o nome do gerenciador gráfico padrão como por exemplo: blackbox, kde, gnome etc)
# X -indirect network_address (com esse comando uma pesquisa em broadcast será realizada. O "network_address" deve ser substituído pelo endereço de rede, por exemplo, 192.168.0.0. O X11 precisa estar parado)
# X :2 -indirect network_address (idem, só que o X11 não precisa estar parado)
Obs: a opção ":2" nada mais é que a especificação de utilização de uma porta de origem que não esteja sendo usada. Nesse caso se usará a porta UDP 6002, o padrão é 6000. Se a opção fosse ":3" a porta utilizada seria UDP 6003 e assim sucessivamente. O bom com essa opção é que podemos abrir vários X11 (local e remoto) numa mesma máquina.
"AUDIT: date : PID : X: client 1 rejected from IP xxx.xxx.xxx.xxx" e "Auth name: MIT-MAGIC-COOKIE-1 ID: -1"(essa mensagem ocorre no cliente quando tentamos acessar remotamente o servidor e o servidor faz uma pergunta ao DNS para saber o hostname do IP do cliente. Se o DNS não responder, em alguns momentos o X não vai permitir a conexão. Muito parecido com o TCPWapper (hosts.deny e hosts.allow))
É possível executar na máquina local um programa X (openoffice, xcalc, firefox etc) e exibí-lo em um máquina remota. É necessário entender que a máquina local executará e enviará via rede o programa para a máquina remota, sendo que todo o processamento ocorretá na máquina local.
Acesse a máquina remota
# vi /etc/X11/xdm/Xservers (procure a linha a seguir)
:0 local /usr/bin/X :0 vt7 -nolisten tcp (essa linha deve ficar assim ":0 local /usr/bin/X :0 vt7" sem as aspas, fazendo com que ao restartar o KDM a porta TCP 6000 fique aberta esperando pedidos de conexão necessários para enviar um programa X remotamente)
Salve e Saia
# /etc/init.d/xdm stop (pára o xdm)
# /etc/init.d/xdm start (starta o xdm, a porta TCP 6000 abrirá e aparecerá a tela de login)
Efetue o login no XDM, abra um terminal X (ex: xterm) e digite o comando a seguir:
$ xhost IP_ou_Hostname (o IP_ou_HostName deve ser substituído pelo endereço da máquina que enviará o programa X via rede. Esse comando libera o acesso do equipamento que tiver o endereço definido por ele)
Obs1: veja que o comando acima foi executado por um usuário comum. Isso, partiu do pré-suposto que ao logar no XDM, foi usado um usuário comum. O comando "xhost" só vai funcionar se for utilizado o mesmo usuário que logou no XDM que no caso desse artigo foi um usuário comum. Isso vale para o usuário "root" também, se logar no KDE como "root", o comando "xhost" deverá ser executado como "root". A explicação disso é simples, pois depois que é logado, o perfil do usuário é carregado e o usuário estará visualizando graficamente isso. Então, quando a outra máquina enviar via rede um programa X para este computador, só fará sentido se tal programa aparecer para o usuário que está logado graficamente e vendo o seu perfil na tela.
Obs2: Uma outra questão relacionada ao comando "xhost", é a exigência da variável de ambiente "DISPLAY" que geralmente é exportada automaticamente ao se logar no XMD. O padrão dessa variável é "DISPLAY=:0.0".
Acesse a máquina local e digite:
Maneira 1:
# xcalc -display IP_ou_Hostname:0 (prefira usar essa maneira, pois define o endereço para onde será enviado o programa X em tempo de execução. O IP_ou_Hostname deve ser substituído pelo endereço da máquina que receberá e visualizará o programa X)
Maneira 2:
# export DISPLAY=IP_ou_Hostname:0 (esse comando diz que todo programa X deve ser enviado via rede para o endereço definido em IP_ou_Hostname)
# xcalc (executa o "xcalc", contudo ele será visualizado na máquina que tem o endereço definido no comando anterior)
Obs: ao usar os comandos acima, não há necessidade que o servidor X desta máquina esteja rodando.
Acesse a máquina remota
# vi /etc/kde3/kdm/kdmrc (procure a linha a seguir)
ServerArgsLocal=-nolisten tcp (essa linha deve ficar assim "ServerArgsLocal=" sem as aspas, fazendo com que ao restartar o KDM a porta TCP 6000 fique aberta esperando pedidos de conexão necessários para enviar um programa X remotamente)
Salve e Saia
# /etc/init.d/kdm stop (pára o kdm)
# /etc/init.d/kdm start (starta o kdm, a porta TCP 6000 abrirá e aparecerá a tela de login)
Efetue o login no KDE, abra um terminal X (ex: Konsole ou xterm) e digite o comando a seguir:
$ xhost IP_ou_Hostname (O IP_ou_HostName deve ser substituído pelo endereço da máquina que enviará o programa X via rede. Esse comando libera o acesso do equipamento que tiver o endereço definido por ele)
Obs1: veja que o comando acima foi executado por um usuário comum. Isso, partiu do pré-suposto que ao logar no KDE, foi usado um usuário comum. O comando "xhost" só vai funcionar se for utilizado o mesmo usuário que logou no KDE que no caso desse artigo foi um usuário comum. Isso vale para o usuário "root" também, se logar no KDE como "root", o comando "xhost" deverá ser executado como "root". A explicação disso é simples, pois depois que é logado, o perfil do usuário é carregado e o usuário estará visualizando graficamente isso. Então, quando a outra máquina enviar via rede um programa X para este computador, só fará sentido se tal programa aparecer para o usuário que está logado gráficamente e vendo o seu perfil.
Obs2: Uma outra questão relacionada ao comando "xhost", é a exigência da variável de ambiente "DISPLAY" que geralmente é exportada automaticamente ao se logar no KDE. O padrão dessa variável é "DISPLAY=:0.0".
Acesse a máquina local e digite:
Maneira 1:
# xcalc -display IP_ou_Hostname:0 (prefira usar essa maneira, pois define o endereço para onde será enviado o programa X em tempo de execução. O IP_ou_Hostname deve ser substituído pelo endereço da máquina que receberá e visualizará o programa X)
Maneira 2:
# export DISPLAY=IP_ou_Hostname:0 (esse comando diz que todo programa X deve ser enviado via rede para o endereço definido em IP_ou_Hostname)
# xcalc (executa o "xcalc", contudo ele será visualizado na máquina que tem o endereço definido no comando anterior)
Obs: ao usar os comandos acima, não há necessidade que o servidor X desta máquina esteja rodando.
Acesse a máquina remota
# vi /etc/gdm/gdm.conf (procure a linha a seguir)
[security] (dentro dessa seção deve-se inserir ou modificar a linha a seguir)
DisallowTCP=false (com essa linha, ao restartar o GDM, a porta TCP 6000 ficará aberta, esperando pedidos de conexão necessários para enviar um programa X remotamente)
Salve e Saia
# /etc/init.d/gdm stop (pára o gdm)
# /etc/init.d/gdm start (starta o gdm, a porta TCP 6000 abrirá e aparecerá a tela de login)
Efetue o login no GNOME, abra um terminal X (ex: xterm) e digite o comando a seguir:
$ xhost IP_ou_Hostname (o IP_ou_HostName deve ser substituído pelo endereço da máquina que enviará o programa X via rede. Esse comando libera o acesso do equipamento que tiver o endereço definido por ele)
Obs1: veja que o comando acima foi executado por um usuário comum. Isso, partiu do pré-suposto que ao logar no GNOME, foi usado um usuário comum. O comando "xhost" só vai funcionar se for utilizado o mesmo usuário que logou no GNOME que no caso desse artigo foi um usuário comum. Isso vale para o usuário "root" também, se logar no GNOME como "root", o comando "xhost" deverá ser executado como "root". A explicação disso é simples, pois depois que é logado, o perfil do usuário é carregado e o usuário estará visualizando graficamente isso. Então, quando a outra máquina enviar via rede um programa X para este computador, só fará sentido se tal programa aparecer para o usuário que está logado gráficamente e vendo o seu perfil.
Obs2: Uma outra questão relacionada ao comando "xhost", é a exigência da variável de ambiente "DISPLAY" que geralmente é exportada automaticamente ao se logar no GNOME. O padrão dessa variável é "DISPLAY=:0.0".
Acesse a máquina local e digite:
Maneira 1:
# xcalc -display IP_ou_Hostname:0 (prefira usar essa maneira, pois define o endereço para onde será enviado o programa X em tempo de execução. O IP_ou_Hostname deve ser substituído pelo endereço da máquina que receberá e visualizará o programa X)
Maneira 2:
# export DISPLAY=IP_ou_Hostname:0 (esse comando diz que todo programa X deve ser enviado via rede para o endereço definido em IP_ou_Hostname)
# xcalc (executa o "xcalc", contudo ele será visualizado na máquina que tem o endereço definido no comando anterior)
Obs: ao usar os comandos acima, não há necessidade que o servidor X desta máquina esteja rodando.
(Display Manager Greeting)
# vi /etc/X11/xdm/Xresources (procure a linha a seguir)
xlogin*greeting: Welcome to CLIENTHOST (essa linha define as saudações. Mude-a de acordo com a sua preferência)
Salve e Sai
# /etc/init.d/xdm restart
# vi /etc/kde3/kdm/kdmrc (procure a linha a seguir)
[X-*-Greeter] (essa seção que define as saudações)
GreetString=Welcome to Debian at %n (digite aqui uma mensagem para os usuários)
Salve e Sai
# /etc/init.d/kdm restart
# vi /etc/gdm/gdm.conf (procure a linha a seguir)
[greeter] (essa seção que define as saudações)
DefaultWelcome=false (desabilita as boas vindas padrão)
Welcome=Digite aqui uma mensagem para os usuários locais
RemoteWelcome=Digite aqui uma mensagem para os usuários remotos
Salve e Sai
# /etc/init.d/gdm restart
$ krandrtray (systray do kde para modificar a resolução de vídeo. Geralmente mostra mais opções de resolução que o normal)
Referências Bibliográgicas
http://imasters.uol.com.br/artigo/4933/linux/configurando_o_red_hat_para_ser_acessado_remotamente_via_modo_grafico/