Como fazer: Chroot Dosemu (Clipper no Linux)

hra

Este tutorial explica como fechar uma instalação do DOSEMU em um "userspace" de forma que o usuário não possa acessar o restante do sistema de arquivos do Linux. Estou focado em uma instalação do DOSEMU executando em
um servidor para acesso remoto por ssh, o objetivo primário do ambiente
é fornecer um servidor de aplicações para os antigos programas CLIPPER,
ainda muito comuns no Brasil.

[ Hits: 72.757 ]

Por: Hamilton R. Amorim em 09/10/2003 | Blog: http://www.algorista.tk


Configurando o Linux



Daqui pra frente as configurações devem ser efetuadas no "Linux mesmo", estas alterações de arquivos devem ser feitas no sistema de arquivos real.

A configuração do Linux fica por conta de alterar a shell do usuário "teste" de forma a acessar uma shell alternativa que colocará sua seção em uma "chain root", essa cela que impedirá o usuário de enxergar o sistema de arquivos real, vendo apenas nosso "pseudo sistema de arquivos".

Primeira coisa a fazer: crie um shell script em /bin com as seguintes linhas:

#!/bin/bash
# ARQUIVO: /bin/chroot-shell
|/usr/bin/sudo /usr/sbin/chroot /home/$USER /bin/su - $USER

Acerte a permissão deste arquivo (eu sempre esqueço isso, hehehe):

# chmod ugo+x /bin/chroot-shell

Altere o shell do usuário em /etc/passwd para apontar para essa nova shell:

teste:x:514:514::/home/teste:/bin/chroot-shell

É necessário acertar as permissões de sudo para o usuário "teste". Para isso, edite o arquivo /etc/sudoers adicionando a linha abaixo:

teste ALL= NOPASSWD: /usr/sbin/chroot /home/teste /bin/su - teste*

Não precisa nem dizer que pra fazer essas coisas precisa estar logado como root né?

Está pronto, agora é só logar como teste e navegar pela máquina, logo perceberá que está "preso" em nossa pseudo-árvore, sem nenhuma chance de acessar o sistema de arquivos real.

De dentro do dosemu tente o comando:

lredir F: LINUX\FS\

OBS: para esse comando funcionar, precisa ter a linha LASTDRIVE=Z no config.sys.

Normalmente este comando dá acesso a raíz do Linux e em um dosemu rodando como root esse comando dá acesso TOTAL à máquina para qualquer usuário na seção DOS.

Em nossa configuração "chrooted" o usuário da seção DOS acessa apenas o que tem que acessar, e nada mais.

Página anterior     Próxima página

Páginas do artigo
   1. Considerações iniciais
   2. Introdução
   3. Requisitos
   4. Criando a raíz
   5. Hackeando o DOSEMU
   6. Configurando o Linux
   7. Considerações finais
Outros artigos deste autor

Copiando programas dos LiveCDs (Kurumin) para seu Debian sem usar a internet

Onde estão os programadores da era DOS?

cal2svg - brincando com shell script e arquivos vetoriais SVG

Porque tanta gente não usa o Linux? Será que o Linux é ruim mesmo?

A miséria social do Brasil e o software proprietário

Leitura recomendada

Entendendo o processo de boot

Cable modem no Mandrake 10

Mudando a cara do Lilo

Controle de banda sem mistérios para servidores

Nagios + NagiosQL + PNP4Nagios

  
Comentários
[1] Comentário enviado por rorengel em 20/10/2003 - 17:44h

Ola amigo!!

Gostaria de saber se o usuarios clientes (linux) poderao acessar o servidor (dosemu) de que forma e como?

Ok
Rafael Orengel

[2] Comentário enviado por hra em 21/10/2003 - 09:13h

Olá Rafael,
não compreendi a pergunta, mas no caso basta conectar por ssh e digitar "./dosemu" ou "cd dosemu; ./dosemu". Eu coloquei esses comandos no ~/.bash_profile de forma que basta conectar para entrar no dosemu

[3] Comentário enviado por rorengel em 22/10/2003 - 15:30h

mas nesse caso

[4] Comentário enviado por rorengel em 22/10/2003 - 15:31h

Ola, desculpa

nesse caso precisa instalar o dosemu no cliente ou nao?

[5] Comentário enviado por GnU-Linux em 27/12/2003 - 17:11h

Olá.
Muito bom mesmo.

[6] Comentário enviado por gustavo_marcon em 25/01/2004 - 14:36h

Olá, preciso instalar um servidor linux em uma empresa e esse servidor precisa abrir uma aplicação DOS.. Como faço isso?
Eu não consegui entender como funciona o DOSEmu. Quer dizer que além de instalar o DosEmu tenho que instalar uma versão do MS-DOS também?
E se eu não tiver nenhuma versão do DOS?


Preciso muito dessas respostas. Obrigado!!

[7] Comentário enviado por hra em 26/01/2004 - 14:15h

gustavo, você precisa instalar o DOSEMU e uma versão de DOS, existem opções free, como o FreeDos e o DRDOS.
Você precisa localizar o DOSEMU-HOWTO e estudá-lo, é um assunto muito complexo.
HRA

[8] Comentário enviado por grossfuss em 05/02/2005 - 00:48h

acho que vc realmente entende do que fala, mas este conhecimento tende a ficar para vc, pois ninguém consegue repetir o que vc fez, somente guiando-se pelo seu texto, que como é incompreensível, é inútil

[9] Comentário enviado por hra em 09/02/2005 - 12:58h

concordo com vc quando diz que ninguem consegue fazer isso baseando-se apenas em meu texto, isso é verdade, mas vc deve entender que tudo na vida é assim. Pra entender alguma coisa vc precisa pesquisar, estudar, dedicar tempo e usar o cérebro. Não é lendo o texto que vai conseguir fazer isso, é com esforço e dedicação, e muita tentativa e erro. O texto é apenas uma ajuda na pesquisa.
Erra medonhamente quando tenta falar por todas as pessoas, pois recebo diariamente emails de gente perguntando sobre o tema e reportando sucessos e falhas em diferentes distros.

Teria sido bem mais educado da sua parte, e bem mais proveitoso pra comunidade linux se vc tivesse contribuido com uma pergunta do que com essa agressão desnecessária.

Para uns uma pedra no caminho é motivo pra reclamar, pra outros pode virar uma bela escultura. Repense sua postura antes de chamar de inutil o trabalho de outros. Preencher as lacunas do texto teria sido bem menos inútil que seu comentário.

[10] Comentário enviado por anetorj em 05/11/2005 - 18:06h

Caro Hamilton,

Instalei o DOSEMU e os meus programas clipper estao funcionando, estou somente com um problema. No meu sistema clipper eu uso caracteres especiais, para fazer as telas. No DOSEMU sai varios caracteres estranhos no lugar desses caracteres especiais, onde eu configuro no dosemu.conf ou outro lugar qualquer no Linux, para o DOSEMU usar os mesmo caracteres de quando estou em um maquina dos.

Desde ja agradeco.

[11] Comentário enviado por newtonasc em 01/11/2006 - 16:00h

Olá meu amigo!!! Excelente tutorial!!! Só preciso de uma ajudinha, qdo tento instalar o MS-DOS 6.22 ele retorna dois tipos de erro:
O primeiro diz que não foi encontrado disco rigido! Entendo que seja por estar tentando instala-lo em uma partição do Suse. Tentei instalar pelo DOSEMU, entrando no drive "A" e executando o SETUP.EXE.
O segundo problema e que as vezes quando tento instalar, ele pede para colocar o disquete de instalação no drive e reiniciar o computador!!
Trabalho com vários programas em clipper, e preciso instalar o MS-DOS pq qdo executo os programas pelo DOSEMU algumas telas ficam desfiguradas!!!
Grato pela atenção:
Newton

[12] Comentário enviado por aprendiz_ce em 29/11/2006 - 21:48h

Estou necessitando executar um "batch" diferente para cada usuário que executar o DOSEMU. Tem como ao carregar o DOSEMU, fazer um CHECK através de alguma variável do sistema e disparar a execução do respectivo "batch" para o usuário.

Obrigado, parabéns pelo artigo e aguardo retorno.

[13] Comentário enviado por chenmical em 03/09/2007 - 11:24h


Instalei o DOSEMU e os meus programas clipper estao funcionando, estou somente com um problema. No meu sistema clipper eu uso caracteres especiais, para fazer as telas. No DOSEMU sai varios caracteres estranhos no lugar desses caracteres especiais, onde eu configuro no dosemu.conf ou outro lugar qualquer no Linux, para o DOSEMU usar os mesmo caracteres de quando estou em um maquina dos.

Desde ja agradeco.

[14] Comentário enviado por aprendiz_ce em 03/09/2007 - 14:57h

chenmical,


Acrescente ou altere isso $_term_char_set = "ibm" no seu dosemu.conf.


Boa sorte!

[15] Comentário enviado por chenmical em 04/09/2007 - 10:17h

Mardonio ,

Eu ja adicionei porem alguns caracteres ainda ficam errado por exemplo: º , ª , ç , ã,...
ou seja resolvei uma parte porem algumas ficaram erradas ainda se vc poder me ajudar agradeço

[16] Comentário enviado por aprendiz_ce em 04/09/2007 - 10:33h

chenmical,

Qual a distro que você usa? O DOSEMU que você está utilizando é atual? Pergunto pois tive alguns PROBLEMAS com isso também. No meu caso estou utilizando o Debian Etch e no meu dosemu.conf está assim:

$_term_char_set = ""

Funciona super bem, mas se eu acessar a referida máquina de uma estação Windows com o putty, fica tudo "maluco".

Boa sorte e qualquer posta aí.

[17] Comentário enviado por chenmical em 04/09/2007 - 12:27h

Aqui eu estou com o Ubuntu 7 instalado, o dosemu é atual e o meu dosemu.conf esta igual ao seu eu coloco "ibm" ele melhora porem continua maluco

Obrigado e se voce descobrir algo me fala


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts