Как мне скомпилировать и запустить программы на Fortran/C на удаленном сервере без разглашения моего кода другим пользователям root?

Вопрос или проблема

У меня есть доступ к большому удалённому серверу через SSH, и я являюсь пользователем root на этом сервере. Однако на сервере есть несколько других пользователей root, которые также имеют доступ к нему. Я хочу запускать некоторые программы на Fortran/C на этом сервере, но меня беспокоит защита моего кода.

Существует ли способ выполнить мои программы на Fortran/C, не раскрывая исходный код другим пользователям на сервере? Я ищу решения, которые позволят мне сохранить конфиденциальность, одновременно позволяя запускать мои программы.

Одно из решений, которое я задумал, — это предоставить код программы как ввод непосредственно в терминал с порядком компиляции. Вставив код туда, он сгенерирует .o файлы, которые, как я полагаю, сложнее поддаются обратной разработке (хотя я не совсем уверен). Затем я использую эти .o файлы для компиляции и запуска своей программы.

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

Ответ или решение

Для компиляции и выполнения программ на Fortran/C на общедоступном удалённом сервере, при этом сохраняя конфиденциальность вашего исходного кода, можно рассмотреть несколько подходов. Вот подробно описанные шаги и методы, которые помогут вам добиться желаемого уровня защиты.

1. Подход с использованием временного окружения

Создайте временную директорию с ограниченными правами доступа, доступными только для вашего пользователя:

mkdir ~/my_project
chmod 700 ~/my_project

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

2. Команда для компиляции

Для компиляции программ можно использовать команды gcc для Си и gfortran для Fortran. Если ваш код хранится в определённой директории, вы можете скомпилировать его следующим образом:

gcc -o my_program my_program.c
gfortran -o my_program my_program.f90

3. Выполнение бинарных файлов

После компиляции вы можете запускать скомпилированные программы. Так как у вас есть доступ только к бинарным файлам, ваш исходный код не будет выставлен в открытый доступ:

./my_program

4. Использование шифрования

Если вы хотите увеличить уровень безопасности, вы можете зашифровать ваш исходный код. Один из доступных инструментов – gpg.

  1. Зашифруйте файл:
gpg -c my_program.c
  1. Это создаст зашифрованный файл my_program.c.gpg. Для компиляции вам нужно будет расшифровать файл:
gpg my_program.c.gpg

После компиляции вы можете удалить расшифрованный файл:

rm my_program.c

5. Сборка через систему сборки

Если ваш проект становится более сложным, рассмотрите использование системы сборки, такой как CMake или Make. Эти инструменты помогут вам организовать процесс сборки и также могут быть настроены для работы с временными директориями, скрывающими исходный код.

6. Использование Docker-контейнеров

Если ваш сервер поддерживает Docker, вы можете использовать контейнеры для изоляции вашего рабочего окружения. Создайте Docker-контейнер с необходимыми инструментами для компиляции и запуска программ. Код будет находиться в контейнере, недоступен снаружи.

Заключение

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

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

Капча загружается...