Как создать бинарный файл сценария оболочки

  • 1,425
  • 1
  • 0
  • 0
  • 1 год назад

Работая в системах Linux, вы регулярно используете ряд команд. Большинство этих команд доступны в бинарном формате в папках /bin, /sbin, /usr/bin, /usr/sbin, и т.д. В то же время вы написали множество сценариев оболочек для выполнения определенных задач или их автоматизации. Эта статья поможет вам создать бинарный файл вашего сценария оболочки, чтобы никто не смог увидеть исходный код вашего сценария и вы могли использовать этот файл в качестве команды. Для создания бинарного файла из сценария мы используем компилятор SHC, написанный Франциско Хавьером Розалесом Гарсия (Francisco Javier Rosales García).

Выполните следующие шаги.

Установите необходимые пакеты

Для начала необходимо установить пакеты, необходимые для работы компилятора SHC.

Для Ubuntu, Debian и LinuxMint:

apt-get install libc6-dev 

Для CentOS, RHEL и Fedora:

yum install glibc-devel

Загрузите и установите SHC

Загрузите последний исходный код компилятора SHC с его официального вебсайта или при помощи приведенные ниже команд и извлеките его в своей системе.

cd /usr/src
wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz
tar xzf shc-3.8.9.tgz

Теперь скомпилируйте исходный код SHC в своей системе и установите его при помощи следующей команды.

cd shc-3.8.9
make 
make install

Создание сценария оболочки

Создайте сценарий оболочки в соответствии с вашими требованиями или пропустите этот шаг, если оболочка уже существует. Для этой статьи мы создали пример сценария (см. ниже), который складывает целочисленные значения, приведенные в параметре командной строки, и показывает их сумму.

nano script.sh
#!/bin/bash

total=0

for i in $@; do
   if [ ! -z "${i##[0-9]*}" ]; then
    echo "Please enter numeric only"
    exit 1
   fi
   total=$(($total + $i))
done

if [ $total -eq 0 ]; then
    echo "Plesae execute script like: $0 10 20 30"
    exit 0
fi

echo $total

Создание бинарного файла сценария

На этом этапе мы установили компилятор SHC и имеем сценарий оболочки под именем script.sh. При помощи следующей команды создайте бинарный файл своей оболочки.

$ shc -T -f script.sh

Приведенная выше команда создаст два файла в текущей папке. Один файл будет script.sh.x.c в формате языка C вашего сценария. Второй файл script.sh.x будет в бинарном формате.

Проверка бинарного сценария

При попытке открыть бинарный формат сценария вы увидите, что он представлен в нечитаемом виде. Переместите этот сценарий в папку /usr/bin, чтобы использовать его из любой точки системы. Также удалите .sh.x из имени файла. Так он будет доступен под простым именем. Также предоставьте полномочия выполнения всем пользователям.

mv script.sh.x /usr/bin/script
chmod +x /usr/bin/script

Введите команду ‘script’ из любой точки системы. Вы увидите те же результаты, что видит ваш сценарий оболочки.

script 10 20 30 

60

Комментарии

0