Force ID пользователя, созданного apt-get
Контекст:
Я автоматически устанавливаю postgresql-9.1 на сервере Ubuntu с apt-get, Это создает необходимый postgres пользователь.
Данные Postgres находятся на внешнем томе, который переживает переустановки. Эти данные, очевидно, принадлежат postgres пользователь.
У меня проблема в том, что право собственности не записано под именем postgresно под UID то postgres имел во время создания. Когда сервер переустановлен, postgres иногда получает другой UID и больше не владеет каталогом данных, и, следовательно, не работает.
Вопрос:
Могу ли я заставить UID пользователя postgres создано apt-get к чему-то исправленному? Или есть другой способ решить мою проблему?
(Как вы, возможно, поняли, это на Amazon EC2 с данными на томе EBS)
3 ответа
Две идеи:
- Создайте свой
postgresПользователь перед установкой PostgreSQL, используя правильный UID. - Создайте свой собственный пакет postgresql-9.1, который устанавливает стандартный пакет postgresql-9.1, а затем выполняет
chown,
usermod -u {desired_UID} {username}
Украл это отсюда: блог Леты
Но я на самом деле думаю, что чоун будет лучше, чем этот, так как он не может потерпеть неудачу из-за desired_UID уже используются или нагружены конфликтом другими способами.
Я мог бы добавить chown каталога данных к сценарию установки сервера, но я бы предпочел более элегантное решение. Кроме того, потому что есть другие сервисы, такие как Tomcat, которые имеют ту же проблему.