Назад | Перейти на главную страницу

Где хранить разрабатываемое мной приложение?

Я разрабатываю серверное приложение для сервера ubuntu, клиенты будут подключаться к нему через соединение через сокет. Он находится в стадии бета-тестирования и активно развивается. Сейчас им пользуется множество людей, и он обновляется почти каждый день. Поэтому я сажаю серьезно рассматривать вопросы безопасности и в то же время не слишком ограничивать себя. Теперь у меня два вопроса:

  1. Где подходящее место для хранения файлов? Приложение состоит из исполняемого файла, некоторых файлов конфигурации и сценария запуска. Но я не хочу распространять его по файловой системе, просто храню в одной папке для удобства, так как приложение находится в стадии интенсивной разработки. Я предполагаю создать новый каталог под /var. Сейчас я храню его в своей домашней папке.

  2. Нужно ли мне создавать для него отдельного пользователя? Я запускаю его с помощью сценария init.d через sudo -u me. Я хочу ограничить его доступ к системе в целях безопасности, но в то же время я хочу иметь возможность обновлять его через FTP и не сталкиваться с проблемами доступа (пользователь, который его загружает, отличается от пользователя, который его запускает, и иногда ему нужно написать доступ к некоторым файлам). Как это сделать?

ОБНОВИТЬ: Я забыл упомянуть, что это приложение не распространяется. Это веб-сервис, который будет существовать в единственном экземпляре на нашем сервере.

Это действительно вопрос предпочтения, поэтому я отвечу соответствующим образом.

Я бы предложил использовать / opt / appname для хранения ваших файлов. Некоторые из проектов, над которыми я работал в прошлом, все бросают туда, а затем в конечном итоге разделяют оттуда на подпапки. Вы также можете символически связать свой сценарий инициализации с этим каталогом.

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

Где подходящее место для хранения файлов? Приложение состоит из исполняемого файла, некоторых файлов конфигурации и сценария запуска. Но я не хочу распространять его по файловой системе, просто храню в одной папке для удобства, так как приложение находится в стадии интенсивной разработки. Я предполагаю создать новый каталог в / var. Сейчас я храню его в своей домашней папке.

Я твердо верю, что вы должны следовать FHS особенно если это тяжелая разработка, вам следует разрабатывать свое приложение в соответствии со стандартами, чтобы его можно было использовать в производственной среде. Конфигурация принадлежит / etc, двоичные файлы обычно находятся в / usr / bin, данные для каждого пользователя в / home, общие данные в / var или / srv. Если вы хотите, чтобы все отображалось в одной папке, используйте символические ссылки, чтобы все отображалось в одном месте. Начните разрабатывать его правильно с самого начала, и вы не столкнетесь с какими-либо странными проблемами в будущем, когда поймете, что приняли какое-то плохое решение, которое потребует от вас больших усилий, чтобы сделать его правильным.

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

Нужно ли мне создавать для него отдельного пользователя?

Это полностью зависит от приложения, но вам следует по возможности избегать запуска служб с правами root. Вам также не следует запускать его как личную учетную запись.

Если это ваше приложение, вы можете сохранить его в / opt, поскольку это стороннее приложение. Вы можете найти дополнительную информацию о структуре каталогов на http://slashmedia.wordpress.com/2007/12/23/linux-directory-structure/