Запустите приложение Rails как пользователь без полномочий root, но попросите пароль root для доступа к файлам

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

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

Бег sudo rails ... не работал ни с этими разрешениями.

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

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

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

1 ответ

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

chmod -R 4701 <app_dir>

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

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

Другие вопросы по тегам