Exodus — инструмент для безопасного копирования бинарных файлов Linux

Вам когда-нибудь нужно было, чтобы на одной из ваших систем были установлены некоторые исполняемые файлы, и вы хотели перенести те же двоичные файлы на другой компьютер?

Да, верно?

Мы собираемся обсудить такой инструмент, который поможет вам в этом.

Exodus — это инструмент, который позволяет легко перемещать Linux-файлы Linux ELF из одной системы в другую.

Это полезно в ситуациях, когда у вас нет корневого доступа на компьютере или когда пакет просто недоступен для данного дистрибутива Linux.

Exodus управляет сбором всех зависимостей двоичных файлов, компилируя статически связанную оболочку для исполняемого файла, которая напрямую вызывает перемещенный компоновщик, и устанавливает пакет в ~ / .exodus / на удаленном компьютере.

Давайте посмотрим на это в действии.

Установка Exodus

Exodus можно установить из пакета на pypi.

Выполните команду ниже, чтобы установить ее локально для вашего текущего пользователя.

 # pip install --user exodus-bundler
Collecting exodus-bundler
Downloading exodus_bundler-1.1.8-py2.py3-none-any.whl
Installing collected packages: exodus-bundler
Successfully installed exodus-bundler-1.1.8 

Использование Еxodus

Установка поверх ssh

Вы можете использовать Exodus для установки исполняемого пакета на удаленном компьютере.

Например, у одной машины есть пакет «tree», установленный на нем, а другой — нет.

Вы можете просто установить пакет tree  на другой компьютер, выполнив следующую команду на машине, на которой установлен пакет:

 # exodus tree | ssh 192.168.0.144
Pseudo-terminal will not be allocated because stdin is not a terminal.
root@192.168.0.144's password:
Installing executable bundle in "/opt/exodus"...
Successfully installed, be sure to add /opt/exodus/bin to your $PATH. 

Теперь перейдите на машину, где вы только что установили дерево, и добавьте / opt / exodus / bin в переменную PATH.

 # export PATH="/opt/exodus/bin:${PATH}" 

Вот и все. Вы сделали. Вы можете начать использовать пакет tree на вашем компьютере. 

Переименование бинарников

Бинарники с одинаковым именем могут быть установлены параллельно с использованием опции -r / — rename.

Предположим, что у вас есть две версии tree в /bin/tree и /usr/local/bin/tree, вы можете создавать псевдонимы для каждой версии с помощью — r и вы можете их использовать.

 # exodus -r tree-1 -r tree-2 /bin/tree /usr/local/bin/tree 

Теперь вы можете использовать tree в / bin / tree и / usr / local / bin / tree по tree-1 и tree-2 соответственно.

Установка путем ручной выгрузки

Вы можете создать tarball из двоичных файлов напрямую с помощью опции -tarball.

Вы можете скопировать этот tarball на удаленный компьютер и установить его на ~ / your-path

 #create tarball of tree binaries
$ exodus --tarball tree --output tree.tgz

#copy generated tarball to remote machine
scp tree.tgz 192.168.0.144:~

#create ~/your-path
ssh 192.168.0.144 "mkdir -p ~/your-path"

#extract tarball to ~/your-path
ssh intoli.com "tar --strip 1 -C ~/your-path -zxf tree.tgz" 

Теперь вам нужно добавить ~ /your-path в переменную PATH, как описано ранее.

Вы можете начать использовать двоичные файлы tree на удаленном компьютере.

Вы можете изучить больше опций, используя -h (help), он покажет вам использование и все варианты.


usage: exodus [-h] [--ldd LDD_SCRIPT] [-o OUTPUT_FILE] [-q] [-r NEW_NAME] [-t]
[-v]
EXECUTABLE [EXECUTABLE ...]

Bundle ELF binary executables with all of their runtime dependencies so that
they can be relocated to other systems with incompatible system libraries.

positional arguments:
EXECUTABLE One or more ELF executables to include in the exodus
bundle.

optional arguments:
-h, --help show this help message and exit
--ldd LDD_SCRIPT The linker that will be invoked to resolve
dependencies. In advanced usage, you may want to write
your own `ldd` script which invokes the linker with
custom arguments. (default: ldd)
-o OUTPUT_FILE, --output OUTPUT_FILE
The file where the bundle will be written out to. The
extension depends on the output type. The
"{{executables}}" and "{{extension}}" template strings
can be used in the provided filename. If omitted, the
output will go to stdout when it is being piped, or to
"./exodus-{{executables}}-bundle.{{extension}}"
otherwise. (default: None)
-q, --quiet Suppress warning messages. (default: False)
-r NEW_NAME, --rename NEW_NAME
Renames the binary executable(s) before packaging. The
order of rename tags must match the order of
positional executable arguments. (default: [])
-t, --tarball Creates a tarball for manual extraction instead of an
installation script. Note that this will change the
output extension from ".sh" to ".tgz". (default:
False)
-v, --verbose Output additional informational messages. (default:
False) 

Итак, мы установили и посмотрим, как использовать инструмент перемещения исходных кодов exodus.

cryptoparty

Cryptography is typically bypassed, not penetrated.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *