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.
A primeira coisa a fazer é criar uma raíz de diretórios e arquivos, que
no final será a raíz visível para o usuário "teste". Abaixo do diretório
/home/teste crie as seguintes pastas:
/bin
/dev
/etc
/home
/home/teste
/home/teste/dosemu (aqui estará o dosemu) /lib
/proc
/sbin
/tmp
/usr
/usr/sbin (link simbólico para sbin) /usr/bin (link simbólico para bin) /usr/share
Esses links simbólicos apontam para nossa raíz "falsa", cuidado para
não apontar nada para o sistema de arquivo "oficial", esse vai
desaparecer quando terminarmos essa configuração.
Agora vamos copiar alguns arquivos mínimos para o DOSEMU funcionar e
para termos alguma funcionalidade de terminal. Copie os seguintes
arquivos de suas origens reais para suas respectivas pastas dentro do
/home/teste:
/bin
basename
bash
cat
clear
cp
du
grep
id
less
ln
ls
mv
rm
sh -> bash (link simbólico para sh)
su (não copie esse ainda)
/dev
null (crie um link real)
/etc
bashrc
group (não copie ainda)
passwd (não copie ainda)
/lib
ld-2.2.5.so
ld-linux.so.2 -> ld-2.2.5.so (link simbólico)
libc-2.2.5.so
libcrypt.so.1
libc.so.6 -> libc-2.2.5.so (link simbólico)
libdl-2.2.5.so
libdl.so.2 -> libdl-2.2.5.so (link simbólico)
libncurses.so.5
libnsl.so.1
libnss_compat.so.2
libnss_files.so.2
libpam_misc.so.0
libpam.so.0
libtermcap.so.2 -> libtermcap.so.2.0.8 (link simbólico)
libtermcap.so.2.0.8
/proc
cpuinfo (copie)
/usr/share
terminfo/ (pasta, copie inteira)
Você pode me perguntar o como eu sei que são esses arquivos e eu te
respondo, os programas são o mínimo que precisamos para ter um terminal
decente, mais algumas extensões de shell que o DOSEMU precisa (id,
basename, etc). As libs eu consegui com o comando ldd e uma boa dose de
"tentativas e erros".
Alguns arquivos merecem um cuidado especial, tentarei explicar cada um deles:
Links simbólicos: você sabe o que é, não sabe ? espero que sim.
/bin/su: este arquivo é um problema, o su que vem com o RedHat73
está linkado dinamicamente com um zilhão de
bibliotecas, o que torna muito difícil utilizá-lo aqui.
A sugestão é baixar o pacote sh-utils em
ftp://alpha.gnu.org/gnu/coreutils/sh-utils-2.0.15.tar.gz e compilar, pegue o arquivo src/su, este funciona perfeito. Se tiver algum problema em compilar pegue este "su" precompilado: http://www.algorista.hpg.ig.com.br/como_fazer/su.gz.
/dev/null: crie um link real que tudo funciona bem.
/home/teste/dosemu: aqui você copia sua instalação do dosemu
que está plenamente funcional. Ela funciona né? Espero que sim.
/etc/group: crie um arquivo só com as duas linhas do root e do seu usuário, no meu caso é o usuário "teste". Meu arquivo ficou assim:
root:x:0:root
teste:x:514:
/etc/passwd: o mesmo caso, crie um arquivo só com as duas
linhas que interessam:
/usr/share/terminfo: nesta pasta tem as informações para
seu terminal remoto, necessário para o comando less. Se não precisa do
less, não precisa disso.
Certifique-se de que não tem nada bizarro nas permissões dos arquivos e
pastas. Aqui acaba a configuração da arvore falsa, só restando as modificações no dosemu e as configurações do Linux.
[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
[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?
[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.
[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.
[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.
[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".