Как скрыть PHP-код на сервере от другого пользователя под root?

#linux

#linux

Вопрос:

Добрый день!

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

Я исследовал различные бесплатные обсфукаторы, которые преобразуют код во что-то:

 <?php include(base64_decode('Li4vY29uZmlnLnBocA=='));include(base64_decode('cHJpdmF0ZS92ZW5kb3IvYXV0b2xvYWQucGhw'));$krc_5bf7f45b=[];foreach($bhi_6f9322e1as $xol_e8b7be43){$xol_e8b7be43=explode(base64_decode('Og=='),$xol_e8b7be43);try{$uic_c59361f8=new xee_d9cb1642cko_659fc60();$uic_c59361f8->ldc_aa08cb10($xol_e8b7be43[0],$xol_e8b7be43[1]);$krc_5bf7f45b[]=$uic_c59361f8;}catch(Exception $wky_efda7a5a)
  
  1. Что, если файлы конфигураций имеют имена переменных и выясняется, что при запутывании основного рабочего кода переменные имеют разные имена? Не заставлять пользователя каждый раз прогонять исправленный обструкцией конфиг? Пока этот вариант кажется единственным.

  2. Возможно ли внутри сервера под Ubuntu каким-то образом ограничить возможность копирования, просмотра или загрузки определенных файлов или использовать какие-то другие методы защиты — скрытие, но в то же время с возможностью запуска этого кода. Предполагалось спрятать код где-нибудь в глубинах папок файловой системы, называя их случайными именами, и запускать их каким-то образом через символические ссылки по имени файла или что-то в этом роде. Возможно ли это?

  3. Возможность не предоставлять root-доступ к серверу, а запускать через браузер, предоставлять доступ только к FTP для загрузки конфигурации в отдельную папку. Но есть ряд моментов — все скрипты выполняются до недели и должны выполняться от имени root. Как это решить?

Комментарии:

1. Если вы дадите кому-то root-доступ, они смогут прочитать все файлы и расшифровать все вещи. Кроме того, если они могут запустить файл, они должны иметь возможность его прочитать.

2. Предоставьте им доступ sudo только для запуска конкретной команды, которая им нужна. Не предоставляйте им неограниченный root-доступ только потому, что им нужно выполнить одну команду от имени root