0

Мне была предоставлена ​​задача сделать исходные файлы приложения Rails недоступными для чтения, не предоставляя пароль (пароль пользователя root), поэтому клиент не сможет заглянуть внутрь приложения (которое будет работать на машине, которая будет храниться в серверной комнате на клиенте).Запустить Rails-приложение как пользователь без полномочий root, но попросить пароль root для доступа к файлам

Я попытался сменить владельца всей папки приложения (и файлов, а также подпапок и т. Д.) На root и установить разрешения для выполнения только для «других» пользователей ... Но безрезультатно: -прозрачность файлов для пользователя без полномочий root, но также было невозможно запустить приложение.

Запуск sudo rails ... не работал ни с этими разрешениями.

Станок работает Ubuntu 14.04. Приложение основано на Rails 4.2 и Ruby v2.2.1p85 и фактически работает за nginx и использует единорог (+ тонкий как интегрированный веб-сервер) ... Если это когда-либо имеет значение. Машина настроена на запуск и автоматический вход в систему только для пользователя, не являющегося пользователем root (скажем company) без запроса пароля и немедленного запуска единорога.

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

Как я могу достичь своей цели, если это возможно?

ответ

0

После вашего первого подхода путем изменения разрешения всех файлов, почему бы вам не попробовать установить the set-user-ID-on-execution bit:

chmod -R 4701 <app_dir> 

Это предотвратит «других» пользователей от чтения и позволит им выполнить, но в то время как они получат привилегии владельца (что представляет собой интерес set-user-ID).

P.S. Я не знаю, будет ли это работать для вас, но это стоит попробовать.

+0

Может быть приемлемой идеей, но я даже не могу запустить приложение, когда я 'unicorn_rails -c config/unicorn.conf.rb'. Любой способ установить владельца папки приложения другому пользователю ('www-data',' rails', независимо от того, что работает ...), а затем запустить приложение в качестве этого пользователя, все еще регистрируясь в 'company' при загрузке? –

Смежные вопросы