Восстание Ubuntu Undalation для запуска неизвестного двоина

У меня есть доступ к установке Ubuntu 16.04, который способен работать определенную бинарную (это некоторая версия LPMUD , скомпилированных с неизвестными параметрами), но Я не могу запустить один и тот же двоичный файл на другой установке Ubuntu 16.04 - на второй системе двоичный провал с ошибкой сегментации.

Я не очень заинтересован в том, чтобы сделать точную копию первой системы - я хотел бы знать, что именно нужно для двоичного для бега, поэтому я могу создать минимальную установку Ubuntu, которая может запустить двоичную.

Что будет лучшим подходом? Я думал о извлечении списка установленных пакетов (с использованием списка APT ) и каталог ) и / etc , повторный установку пакетов во второй системе и копированием / ETC каталог.

Я знаю, что есть много причин, почему двоичный файл может SegFault в другую систему, но я хотел бы попробовать некоторые менее интенсивные подходы к данным, прежде чем пытаться сузить окружающую среду с битовой копии Отказ

Это разумный подход? У кого-нибудь есть идея, как улучшить шансы на успех?


Редактировать - больше информации о бинарном:

$ file driver
driver: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, stripped
$ ldd driver
       statically linked
$ gdb driver
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
"/mud/bin/driver": not in executable format: File format not recognized

Попытка отладки с 32-битной версией GDB приносит аналогичные результаты:

$ gdb driver
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
"/mud/bin/driver": not in executable format: File format not recognized
(gdb) show configuration
This GDB was configured as follows:
   configure --host=i686-linux-gnu --target=i686-linux-gnu
             --with-auto-load-dir=$debugdir:$datadir/auto-load
             --with-auto-load-safe-path=$debugdir:$datadir/auto-load
             --with-expat
             --with-gdb-datadir=/usr/share/gdb (relocatable)
             --with-jit-reader-dir=/usr/lib/gdb (relocatable)
             --without-libunwind-ia64
             --with-lzma
             --with-python=/usr (relocatable)
             --without-guile
             --with-separate-debug-dir=/usr/lib/debug (relocatable)
             --with-system-gdbinit=/etc/gdb/gdbinit
             --with-babeltrace

("Relocatable" means the directory can be moved with the GDB installation
tree, and GDB will still find it.)
(gdb) 
$ strace -o ./log ./driver ; cat ./log
execve("./driver", ["./driver"], [/* 9 vars */]) = 0
brk(NULL)                               = 0x8952000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7f89000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
set_thread_area({entry_number:-1, base_addr:0xf7f89a80, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 (entry_number:12)
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x4} ---
+++ killed by SIGSEGV (core dumped) +++
-121--891618- SSH.Service Запуск неудача; Порт 22 Уже в использовании Совершенно новый Установка Ubuntu: $ lsb_release -a. Модули LSB не доступны. Дистрибьютор ID: Ubuntu Описание: Ubuntu 20.04.1 LTS Выпуск: 20.04. CODENAME: FOCAL SSH.SERVICE не удается ...

Совершенно новый Ubuntu Установка:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.1 LTS
Release:        20.04
Codename:       focal

SSH.Service не может запуститься из-за порта 22 уже в использовании:

$ sudo service ssh status
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Thu 2021-02-04 14:10:27 CST; 11min ago
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 2041 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
    Process: 2042 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS (code=exited, status=255/EXCEPTION)
   Main PID: 2042 (code=exited, status=255/EXCEPTION)

Feb 04 14:10:27 ubu20a systemd[1]: Starting OpenBSD Secure Shell server...
Feb 04 14:10:27 ubu20a sshd[2042]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Feb 04 14:10:27 ubu20a sshd[2042]: error: Bind to port 22 on :: failed: Address already in use.
Feb 04 14:10:27 ubu20a sshd[2042]: fatal: Cannot bind any address.
Feb 04 14:10:27 ubu20a systemd[1]: ssh.service: Main process exited, code=exited, status=255/EXCEPTION
Feb 04 14:10:27 ubu20a systemd[1]: ssh.service: Failed with result 'exit-code'.
Feb 04 14:10:27 ubu20a systemd[1]: Failed to start OpenBSD Secure Shell server.

только что я вижу слушающуюся по порту 22 1 / init :

$ sudo netstat -tulpen
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name    
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      101        34051      556/systemd-resolve 
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      0          37066      745/cupsd           
tcp6       0      0 :::22                   :::*                    LISTEN      0          34718      1/init              
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           115        37068      743/avahi-daemon: r 
udp        0      0 0.0.0.0:52172           0.0.0.0:*                           115        37070      743/avahi-daemon: r 
udp        0      0 127.0.0.53:53           0.0.0.0:*                           101        34047      556/systemd-resolve 
udp        0      0 0.0.0.0:631             0.0.0.0:*                           0          39715      822/cups-browsed    
udp6       0      0 :::5353                 :::*                                115        37069      743/avahi-daemon: r 
udp6       0      0 :::39012                :::*                                115        37071      743/avahi-daemon: r 

В то время как I может get SSH.Service для запуска на альтернативный порт (например, порт 2020), который я хотел бы понять и исправьте (если возможно), эта текущая проблема с портом 22.

Примечания :

  • Linux Sysadmin не является моей сильной точкой, так что если я пропущу что-то тупо, очевидно Messenger
  • Если ответ RTFM , то ссылка на который FMTR будет оценен
  • , я просматривал первую десятую десятую или настолько предложил «дублировать» вопросы, но не сделал Найти что-нибудь применимое к этому вопросу
5
задан 5 February 2021 в 02:06

3 ответа

немного долго для комментариев ...

Я взял @ предложение Steeldriver и провел предложенные SystemCTL Call:

$ systemctl -all list-sockets
LISTEN                       UNITS                           ACTIVATES               
... snip ...
/run/udev/control            systemd-udevd-control.socket    systemd-udevd.service   
/run/uuidd/request           uuidd.socket                    uuidd.service           
[::]:22                      tinysshd.socket                 tinysshd@0.service      
audit 1                      systemd-journald-audit.socket   systemd-journald.service
kobject-uevent 1             systemd-udevd-kernel.socket     systemd-udevd.service 

представляет интерес 3-я строка вверх со дна ... что-то называемое Tinysshd Прослушивание в порту 22.

Я не мог найти никакого объяснения для чего Tinysshd делает (т. Е. Не появляется Чтобы быть системой требуемой службой), поэтому я удалил Tinysshd и смог успешно запустить службу SSH :

$ sudo service ssh status
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2021-02-04 15:14:34 CST; 3s ago
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 3887 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
   Main PID: 3888 (sshd)
      Tasks: 1 (limit: 7032)
     Memory: 1.3M
     CGroup: /system.slice/ssh.service
             └─3888 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups

Feb 04 15:14:34 ubu20a systemd[1]: Starting OpenBSD Secure Shell server...
Feb 04 15:14:34 ubu20a sshd[3888]: Server listening on 0.0.0.0 port 22.
Feb 04 15:14:34 ubu20a sshd[3888]: Server listening on :: port 22.
Feb 04 15:14:34 ubu20a systemd[1]: Started OpenBSD Secure Shell server.

Я также могу увидеть SSHD , слушающий порт 22:

$ sudo netstat -tulpen
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name    
...snip ...
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      0          66119      3888/sshd: /usr/sbi 
tcp6       0      0 :::22                   :::*                    LISTEN      0          66121      3888/sshd: /usr/sbi 
... snip ...
4
ответ дан 18 March 2021 в 23:37

Другая мысль, как у меня была такая же проблема. Когда я включил SSH на моем маршруте, он автоматически взял порт 22 для SSH на маршрутизатор, и это не было меняе. Я никогда не мог бы сделать SSH на компьютерную работу, пока я не осознал, сделаю портовой триггер, чтобы другой порт сказал, например, 2222 пошел на 22 локального этого компьютера и вуаля, у меня был SSH.

0
ответ дан 18 March 2021 в 23:37

Попробуйте определить, какой порт приложения выделяет порт через эту команду:

 sudo lsof -i -P -n | grep LISTEN         

и сделать дизайн, что делать дальше

0
ответ дан 18 March 2021 в 23:37

Другие вопросы по тегам:

Похожие вопросы: