2015-11-11 1 views
1

Есть три варианта, когда делают разработку программного обеспечения в среде Linux:Является ли хорошей практикой всегда использовать «root» пользователя в среде разработки?

  1. Используя собственный пользователя (например, мессия)
  2. Использование корня
  3. не используя никого

я обычно делаю все мои как «корень», но является ли это лучшей практикой?

+3

Нет, использование 'root' - худшая практика: - /. Используйте свой идентификатор или создайте идентификаторы для учетных записей операторов, которые будут: запускать программное обеспечение, иметь доступ к файлам и т. Д. Серверы (sql, web и т. Д.) Должны запускаться под собственными учетными записями «named». 'websphere',' sybase' и т. д. Удачи. – shellter

+0

Голосование, чтобы закрыть основное мнение, но я был бы удивлен, если бы у кого-то было мнение, отличное от «Нет, это ужасная практика». Но тогда каждый имеет право на собственное мнение (каким бы глупым оно ни было ;-) – John3136

+0

Я не думаю, что это мнение основано. Эти параметры совершенно разные и могут предоставить разработчикам различные ограничения/возможности. – mahdix

ответ

5

Существует множество причин не использовать корень для общего использования в Linux. Запрет на то, что: использование root в среде приведет к возникновению головных болей, если вы не далеко от развертывания. По моему мнению (и практика) развитие должно подражать производству как можно ближе. Выполнение разработки в разрешениях суперпользователя обычно отличается от того, как будет выполняться программное обеспечение (как веб-пользователь, привилегированный пользователь и т. Д.).

Это скроет вещи и вызовет проблемы дальше по линии.

Пример: в вашем коде вы читаете/записываете временный файл в/opt. Это отлично работает в dev, тесты проходят, все отлично. Код выходит на производство./optis принадлежит root: root с производством 700, а приложение работает как apache. Чтение/запись не удастся.

+0

Я согласен с вашим заключением, но не '/ tmp' доступен для записи по дизайну? –

+1

'/ tmp' должен быть доступен для записи на весь мир, но он имеет набор липких бит, который может вызвать проблемы для пользователей, пытающихся обмениваться данными через'/tmp'. @Marc, то, что вы описали в своем третьем абзаце, связано с различиями в картах UID/GID между машинами, а не с '/ tmp'. –

+0

Я делал простой пример, стараюсь не зависеть от деталей. Я мог бы просто сказать/выбрать/что-то. –

2

Ответ одного гиганта: вы никогда не должны предоставлять root доступ к разработчикам.

Это хорошая практика, чтобы поддерживать среду DEV как можно ближе к окружающей среде PROD. Разработчикам часто приходится выполнять установку инструмента, конфигурацию сервисов, создание файлов и модификацию файлов. Этот процесс может управляться путем автоматизации процесса с помощью таких инструментов, как Chef, Jenkins и создания другого доступа, такого как «devops», «commit», «devadmins». Там, где необходимо, «devadmins» может иметь доступ к sudo. Таким образом, процесс будет организован и никто не сможет совершать несанкционированные изменения.

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

корень должен быть использован только при наличии другого варианта не осталось

+0

Ваш ответ предполагает определенный вид развития. –