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, которые имеют ту же проблему.