Как к Склепу sh сценарий в Linux Environnement?

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

2
задан 3 January 2010 в 19:55
6 ответов

Этот сайт, кажется, имеет сценарий, который сделает то, что Вы хотите:

http://megastep.org/makeself/

От сайта:

makeself.sh является маленьким сценарием оболочки, который генерирует самоизвлекаемый архив tar.gz из каталога. Получающийся файл появляется как сценарий оболочки (у многих из тех есть суффикс .run), и может быть запущен, как. Архив затем распакует себя к временному каталогу, и дополнительная произвольная команда будет выполняться (например, сценарий установки). Это довольно подобно архивам, сгенерированным с Архиватором WinZip в мире Windows. Архивы Makeself также включают контрольные суммы для самопроверки целостности (CRC и/или контрольные суммы MD5).

См. комментарий о шифровании поддержки v2.1.5 через gpg.

Я думаю, что это назвало архив оболочки, оригинал, записанный James Gosling (изобретатель Java).

http://blogs.oracle.com/jag/entry/shar_a_blast_from_the

2
ответ дан 3 December 2019 в 08:33

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

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

5
ответ дан 3 December 2019 в 08:33

когда я VI's это они просто показывают мне crypted файл и не plained текстовый файл.

Нет, Вы смотрите на сжатый файл, не зашифрованный файл.

2
ответ дан 3 December 2019 в 08:33
  • 1
    Это мог бы также быть двоичный файл (такой как ELF exe), или проблема с vi' s устанавливают... невозможный сказать от вопроса. –  sleske 4 January 2010 в 14:26

Вопрос немного неясен. Если Вы на самом деле хотите зашифровать файл, Вы могли бы использовать утилиту шифрования, такую как bcrypt. Это больше не будет затем работать сценарием оболочки, пока Вы не дешифруете его.

Может случиться так, что то, что Вы видите в vi, является сжатыми данными (чтобы быть самораспакованным и выполненным). Существуют способы упаковать сценарии оболочки таким образом. Или.. возможно, Вы просто смотрите на двоичные данные от исполняемого файла (не сценарий оболочки во-первых).

Если Вы хотите достигнуть того, что я думаю, что Вы хотите достигнуть.. Вы могли бы быть более обеспеченным выполнением этого с пользовательским управлением правами (т.е. позволить людям выполнять данный исполняемый файл, но не читать его.. или имейте некоторый setuid интерпретатор).

2
ответ дан 3 December 2019 в 08:33

Если сокрытие исходного кода сценария является целью, можно хотеть посмотреть на shc. Отметьте, я на самом деле никогда не использовал это до сих пор. Это работает, по крайней мере, для моего простого один сценарий строки/bin/sh сценарий тестирования.

Иначе можно попытаться использовать gpg, чтобы зашифровать сценарий и дать каждому пользователю пароль. В основном Вы берете свой законченный сценарий оболочки, затем шифруете его к бронированному формату ASCII:

gpg -ca foo.sh

Затем Вы берете получающийся "foo.sh.asc" файл, затем переносите его в другой сценарий:

cat <<EOF | gpg -d | /bin/sh                                                 
-----BEGIN PGP MESSAGE-----                                                     
Version: GnuPG v1.4.10 (FreeBSD)                                                

jA0EAwMCN7iZSx7u9fRgySY/QTWgnwhYs0fSdLhwR0xL0Z1VOk6Lm5Jil06U7XtJ                
Yl62Gab6kg==                                                                    
=Yalz                                                                           
-----END PGP MESSAGE-----                                                       
EOF

Пароль является "test1". Зашифрованный сценарий:

echo "foo!"

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

К сожалению, достаточно опытный пользователь сможет восстановить простой текст сценария путем простого удаления "|/bin/sh" часть из сценария, который приведет к сценарию, выводимому к stdout.

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

2
ответ дан 3 December 2019 в 08:33

Чтобы зашифровать ваш скрипт и убедиться, что никто не сможет его просмотреть, у вас есть два варианта:

First Option

  1. Use the openssl command to manually encrypt it. И в будущем, когда вы захотите запустить скрипт, вам придется снова запустить openssl вручную, и предоставить пароль для расшифровки.

Шифрование openssl:

cat yourscript.sh | openssl aes-128-cbc -a -salt -k yourpassword > yourscript.enc

Расшифровка openssl:

cat yourscript.enc | openssl aes-128-cbc -a -d -salt -k yourpassword > yourscript.dec

yourscript.dec будет такой же, как и ваш оригинальный скрипт yourcript.sh

Second Option

  1. Используйте сайт типа www.Enscryption.com для автоматического шифрования вашего скрипта и сделайте зашифрованную версию скрипта исполняемой. Этот сайт использует как возможности шифрования openssl, так и некоторые другие методы обфускации, чтобы злоумышленникам было довольно сложно подглядывать за вашим сценарием или раскрывать секреты, которые вы хотите скрыть. С помощью этого сайта вы можете зашифровать скрипты оболочки и командной строки perl, python, ruby скрипты. Думаю, что и php тоже.
1
ответ дан 3 December 2019 в 08:33

Теги

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