Portál AbcLinuxu, 8. května 2025 22:46
Zdravim, nainstaloval jsem dosemu 1.4.0.0 z balíčku pro moji distribuci Ubuntu 8.04, pokud ho však chci spustit pomocí ikony, která se vytvoří po instalci (odkazuje na soubor /usr/bin/xdosemu) tak se nic neděje. Pokud spustím přímo skript /usr/bin/xdosemu z terminálu obdržím:
LOWRAM mmap: Invalid argument
Segmentation fault
pokud ho ale spouštím s root právy pomocí sudo, tak běží.
Pokus o spuštění přímo binárky /usr/bin/dosemu.bin skončí segmentation fault vždy i při spuštění s root právy.
Ze skriptu /usr/bin/xdosemu se mi podařilo vypreparovat minimum, při kterém lze dosemu spustit:
sudo /home/zmije/dos/dosemustart
viz. příloha
Je opravdu nutné, aby dosemu běželo s root právy?
Jde mi o to, že v Ubuntu 7.10 byla instalace dosemu (rovněž verze 1.4.0.0) velmi jednoduchá, stačilo sudo apt-get install dosemu, po instalaci to šlo normálně spustit pod běžným userem i z ikony v menu, po přechodu na Ubuntu 8.04 k tomu musím spouštět terminál, zadávat rotovské heslo a emulátor mi pak běží pod rootem, což asi není zrovna cool (ikdyž by mě zajímal prohled někoho znalejšího, jak velky problém to představuje).
Ok, co je tedy menší zlo? vm.mmap_min_addr = 0 (jak to zřejmě bylo v Ubuntu.7.10) nebo spouštění pod rootem?
Ok, co je tedy menší zlo? vm.mmap_min_addr = 0 (jak to zřejmě bylo v Ubuntu.7.10) nebo spouštění pod rootem?Spuštění pod rootem. Dosemu roota pustí, jakmile sežene všechny potřebné ingredience pro svůj běh. A i kdyby ne, tak se vystavujete pouze nebezpečí od dosemu, zatímco nastavení mmap_min_addr=0 udělá Váš systém potenciálně zranitelný jako celek vůči všem aplikacím. Na druhou stranu lze obojímu předejít, návodů tu už padlo dost.
muzete se pod rootem stat mnohem vic nez pod userem.Jop, jako např. při pokusu provést(user skonci nejcastej s (bezpecnym) odmitnutim pristupu
find ~ -delete
.
sudo setcap cap_sys_rawio=ep /usr/bin/dosemu.bin
případně obejít/zrušit ochranu mapování nízké paměti
you can check the value ofCož by mělo zabrat, k tomu bych ale dodal, že po spuštění dosemu by mělo být možné zase hodnotu/proc/sys/vm/mmap_min_addr
and if it is non-zero, useecho 0 > /proc/sys/vm/mmap_min_addr
/proc/sys/vm/mmap_min_addr
beztrestně změnit zpět.
Konečně, pro spoustu aplikací stačí "dosbox" místo "dosemu".
Stáhněte si ze svn vývojovou verzi, ta už vm.mmap_min_addr = 0 nepotřebuje.
jaka je hodnota /proc/sys/vm/mmap_min_addr na vasem systemu?
ubuntu 9.10 (karmic) = 0
ps: neresi bezpecnosti otazku toho parametru jeden z poslednich patchu na jadro 2.6.31?
Toto?ps: neresi bezpecnosti otazku toho parametru jeden z poslednich patchu na jadro 2.6.31?
$ cat /proc/sys/vm/mmap_min_addr
65536
Problém je v tom, že tu hodnotu nemohu změnit ani jako root:
$ sudo echo 0 > /proc/sys/vm/mmap_min_addr
bash: /proc/sys/vm/mmap_min_addr: Permission denied
$ echo 0 | sudo tee /proc/sys/vm/mmap_min_addr
$ sudo sysctl vm.mmap_min_addr=0
sudo echo 0 \> /proc/sys/vm/mmap_min_addr
$ sudo sysctl vm.mmap_min_addr=0
vm.mmap_min_addr = 0
$ cat /proc/sys/vm/mmap_min_addr
0
To funguje, i dosemu jede, první variantu jsem už nezkoušel.
ps: neresi bezpecnosti otazku toho parametru jeden z poslednich patchu na jadro 2.6.31?Ne, ten řeší jen jednu konkrétní díru.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.