Dosemu (Probst-Baustoffe)

Aus rü5
Wechseln zu:Navigation, Suche


dosemu ist eine Linux-Software zur Emulation von DOS-Programmen

Dosemu ohne Passwort

hierfür kann man entweder den obigen Weg für die SSH-Schlüsselverteillung benutzen, wobei man sich zuerst als root anmeldet und dann sein Vertrauen dem Benutzer 'dosadmin@server' anstatt ' knoppix@localhost ' ausspricht.

Ein anderer Weg ist, den bisherigen beizubehalten und dem root Benutzer ein generelles Vertrauen für alle Zugänge (knoppix,root auf allen anderen Rechnern) auszusprechen.

Dafür folgendes Kochrezept, welches Zeile für Zeile abzuarbeiten (mit Maus markieren und ausführen) ist:

# für den Administrator
ssh root@server
scp -r /root/.ssh root@neuerRechner:/root
exit
ssh root@server # hier dürfte dann kein Passwort mehr nötig sein...
# für den Standard-Benutzer Knoppix
ssh knoppix@server
scp -r /home/knoppix/.ssh knoppix@neuerRechner:/home/knoppix
exit
ssh knoppix@server # hier dürfte dann kein Passwort mehr nötig sein...


Alles weitere ist nicht mehr aktuell, da die Umleitung auf F11/F12 in der neuen Debian-Version nicht mehr funktioniert und der DosEmu-Button auch einfach kopiert werden kann.


dosemu auf F11 und F12

um auf den Funktionstasten F11 und F12 das hauseigene Lagerprogramm zu 'installieren', sind einige Änderungen notwendig, die man am besten in der 'konsole' ausführt:

# erstmal dafür 'root' werden
sudo bash -l

# #######################
# dosemu Benutzer anlegen
# #######################

# Verzeichnise für dosemu anlegen
mkdir -p /home/dosemu/bin

# dosemu- und dosadmin-Benutzer anlegen
useradd -d /home/dosemu -s /home/dosemu/bin/dosemu.login dosemu
useradd -d /home/dosemu -s /bin/bash -o -u `id -u dosemu` dosadmin

# passwort der Benutzer setzten (falls nötig)
passwd dosemu
passwd dosadmin

# erstellen von Login-Shell für den dosemu-Benutzer '/home/dosemu/bin/dosemu.login'
touch /home/dosemu/bin/dosemu.login && chmod 755 /home/dosemu/bin/dosemu.login
vi /home/dosemu/bin/dosemu.login

# erstellen der Konfiguration für das dosemu-Programm
vi /etc/default/dosemu

# das 'dosemu.login'-Skript als gültige LoginShell definieren
echo /home/dosemu/bin/dosemu.login >> /etc/shells

# ######################################################################## 
# die F11- und F12-Tasten belegen (dies gilt bis ubuntu-6-04 [dapper])
# ########################################################################
vi /etc/inittab
 
# hier den Block suchen, in dem die F-Tasten gesetzt werden
# diese sehen etwa so aus:
# Format:
#  <id>:<runlevels>:<action>:<process>
#   1:12345:respawn:/sbin/getty 38400 tty1
#   2:2345:respawn:/sbin/getty 38400 tty2
#   3:2345:respawn:/sbin/getty 38400 tty3

# hier jetzt folgende Zeilen einfügen:
11:235:respawn:/sbin/getty -i -n -l /home/dosemu/bin/dosemu.login 38400 tty11
12:235:respawn:/sbin/getty -i -n -l /home/dosemu/bin/dosemu.login 38400 tty12

# jetzt diese Datei abspeichern und die Änderungen aktivieren mittels dem Befehl:
init q

# ########################################################## 
# die F11- und F12-Tasten belegen (>=ubuntu-6-10 [edgy])
# @see http://www.netsplit.com/blog/articles/2006/08/26/upstart-in-universe
# ########################################################## 
cd /etc/event.d
# einfügen der tty11-Datei (s. unten #/etc/event.d/tty11)
vi tty11
# für F11 eine ähnliche Datei erzeugen (tausche tty11 durch tty12)
cat tty11 | sed s/tty11/tty12/g > tty12

# tty11 und tty12 freischalten
vi /etc/default/console-setup
# hier folgende Zeile ändern von
# ACTIVE_CONSOLES="/dev/tty[1-6]"
# nach
# ACTIVE_CONSOLES="/dev/tty[1-6] /dev/tty1[12]"

# reboot tut gut, ansonsten kann man folgendes versuchen:
unset DISPLAY
/etc/init.d/console-setup restart

# jetzt müßte man durch drücken von ALT-STRG-F11 dort etwas sehen.....


/home/dosemu/bin/dosemu.login

diese spezielle LoginShell zaubert das Lagerhaltungs-Programm auf die F11/F12-Tasten

#!/bin/bash -l
# Loginshell für den DOS-Benutzer
#
# Pfad:
# /home/dosemu/bin/dosemu.login
#
# der Pfad zu dieser Datei ist auch noch
# in die Datei '/etc/shells' mit einzutragen
#
# desweiteren kann der Login-Rechner konfiguriert
# werden in der Datei:
# /etc/default/dosemu
#
#
# von Markus.Prinzhorn@rueckertstrasse5.de
#

# Environment anziehen (ggf. vorher erstellen)
if test ! -r /etc/default/dosemu -a `id -u` -eq 0 ; then
	test ! -x /etc/default && mkdir -p /etc/default && echo "creating config-dir: /etc/default"
	echo "creating config-file: /etc/default/dosemu"
	echo 'DOSEMU_HOST=serverlgh2'					 > /etc/default/dosemu
	echo 'DOSEMU_USER="dosemu"'					>> /etc/default/dosemu
	echo 'DOSEMU_WAIT="10s"'					>> /etc/default/dosemu
	echo 'DOSEMU_CMD="ssh -C -X -l $DOSEMU_USER $DOSEMU_HOST"'	>> /etc/default/dosemu
fi
test -r "/etc/default/dosemu" && . /etc/default/dosemu

# soll das programm via ssh auf einen anderen rechner connecten
# dann existiert kein '/home/dosemu' (eigentlich nur via tty11/tty12) !
# dazu muss dann aber der entsprechende SSH-Key ausgetauscht werden
if test -n "$DOSEMU_CMD" -a "$DOSEMU_HOST" != "`hostname`" ; then
	echo "connecting to remote host '$DOSEMU_HOST' as user '$DOSEMU_USER'"

	#echo "set numlock on"
	#setleds +num &>/dev/null

	# Zeichensatz auf latin1 bzw. System-Standard stellen
	#export LANG="de_DE.ISO-8859-1"
	export LANG="C"

	# Console-Unicode abstellen
	#STOPUNI=`which unicode_stop`
	#test -n "$STOPUNI" && echo "disable utf8" && $STOPUNI

	# Verbindung via ssh zum Server aufnehemen
	$DOSEMU_CMD && echo "connection closed successfully" || echo "connection closed with errors"
	echo "sleep for '$DOSEMU_WAIT'" && sleep $DOSEMU_WAIT
	exit 0
fi

# wechsle in das dosemu-verzeichnis oder stirb
cd /home/dosemu || exit -1

# wenn root, dann benutzer wechseln
[ `id -u` -eq 0 ] && echo "switch to dosemu-user" && su -c "$0" dosemu && exit 0

# standard-environment anziehen
[ -f /etc/profile ] && . /etc/profile

# eigenen pfad mit einbinden
[ -x "/home/dosemu/bin" ] && export PATH="$PATH:/home/dosemu/bin"

# Zeichensatz auf latin1 bzw. System-Standard stellen
#export LANG="de_DE.ISO-8859-1"
export LANG="C"

# X11-Display oder aber Console....
if test -n "$DISPLAY" ; then
	# Numlock einschalen falls dies geht
	# xset led &>/dev/null
	/home/dosemu/bin/xdosemu
else
	# Numlock einschalen falls dies geht
	# setleds +num &>/dev/null
	/home/dosemu/bin/dosemu
fi

/etc/default/dosemu

in dieser Datei stehen die Daten, mit welchem Rechner sich verbunden werden soll, um das Programm auf F11/F12 anzuzeigen

DOSEMU_HOST="server"
DOSEMU_USER="dosemu"
DOSEMU_WAIT="10s"
DOSEMU_CMD="ssh -C -X -l $DOSEMU_USER $DOSEMU_HOST"


/etc/event.d/tty11

diese Datei ersetzt die frühere '/etc/inittab'

# tty11 - dosemu-login-shell
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.

start on runlevel-2
start on runlevel-3
start on runlevel-4
start on runlevel-5

stop on shutdown

respawn /sbin/getty -i -n -l /home/dosemu/bin/dosemu.login 38400 tty11

Dosemu im KDE-Fenster

hierbei kann man das Dos-Programm auch als normales Fenster ablaufen lassen. Hierzu sind einige Vorgaben bzgl. Fenstergröße und dessen nicht-Änderbarkeit zu beachten. Folgende Anleitung beschreibt die Erstellung des Knopfes auf dem Desktop:

  1. ALT-F2 drücken und kate eingeben, dies startet einen Texteditor
  2. den unten angegebenen Text mit der Maus markieren und mittels der mittleren Maustaste in das kate Fenster einfügen
  3. mittels STRG-S den Speichern-Dialog aufrufen, und als Dateinamen z.B. dosemu.desktop ~als Verzeichnis Desktop~ wählen
[Desktop Entry]
Comment=DOS-Fenster
Comment[de]=DOS-Fenster
Encoding=C
Exec=konsole --vt_sz 80x25 --noclose --noframe --notoolbar --nomenubar --nohist -T 'DOSEmu' -e ssh -C -x dosemu@serverlgh2
GenericName=dosemu@serverlgh2 (Firmen-Programm)
GenericName[de]=dosemu@serverlgh2 (Firmen-Programm)
Icon=kwin
MimeType=
Name=dosemu
Name[de]=dosemu
Path=
ServiceTypes=
StartupNotify=true
SwallowExec=
SwallowTitle=
Terminal=false
TerminalOptions=
Type=Application
X-DCOP-ServiceType=none
X-KDE-SubstituteUID=false
X-KDE-Username=