У меня есть ограничение: я могу использовать только одного пользователя на SUSE Linux Enterprise Server 11.
Теперь мне нужно установить PostgreSQL. Можно ли как-то избежать автоматического создания пользователя linux "postgres" мастером установки PostgreSQL и использовать текущего пользователя в качестве администратора базы данных?
Дополнительное объяснение странных ограничений:
Мы должны разместить наше программное обеспечение на сервере ИТ-компании, которая является дочерней структурой крупного банка. У них довольно строгие правила из-за хранения и обработки конфиденциальных пользовательских данных. Итак, одно из правил заключается в том, что у нас может быть только один пользователь, и все должно быть установлено под этим пользователем (с правами sudo). Изначально на сервере установлено только самое базовое ПО (и PostgreSQL туда не входит).
Докер в этом случае не альтернатива.
Мне кажется, что ваши требования интерпретируются кем-то совершенно некомпетентным.
Я бы сказал, что пользователь - это человек и для каждый человек которому потребуется доступ администратора к нужному серверу базы данных личная учетная запись пользователя, так как общие учетные записи - зло ; вы должны уметь привлекать к ответственности отдельных людей за свои действия.
Услуги не принадлежат одному человеку, а выполняются от учетная запись службы и учетные записи служб, такие как учетная запись postgres, IMHO не то же самое, что учетные записи пользователей. Во-первых, учетные записи для людей являются частью процесса безопасности, который отменяет доступ для выходящих и неактивных пользователей ...
Вы же не хотите удалять базу данных заработной платы, когда Алиса из отдела кадров, которая ее установила, покидает компанию, верно?
Если вы не хотите использовать стандартные пакеты RPM от SuSe для postgres (который также создаст учетную запись службы postgres), пожалуйста создать свой собственный и предоставить их ИТ-отделу, а не выполнять ручную установку.
Таким образом, вашим учетным записям администратора базы данных не потребуются чрезмерные разрешения для запуска установщика, вам не понадобится много места с компиляторами и инструментами сборки, установленными на (производственных) серверах, у вас есть четкий список зависимостей, и пакет может создать необходимую учетную запись службы (или использовать существующую) и настроить все разрешения таким образом, чтобы их было намного проще повторить и проверить чем запускать скрипты установщика.
Создайте подходящий sudo
профиль для людей, которые будут управлять сервером базы данных Posgres и позволить администраторам запускать ограниченный набор команд, которые администратор Postgres должен будет запускать от имени пользователя postgres, т.е. psql
, service postgres [stop|start|restart]
, pg*
Но чтобы ответить на ваш актуальный вопрос:
Как избежать автоматического создания пользователя linux "postgres" мастером установки PostgreSQL?
Не запускайте мастера, но построить из исходного кода, используйте правильные параметры, чтобы выбрать каталог установки, доступный пользователю, выполняющему сборку, и никаких других учетных записей пользователей или повышенных привилегий не требуется.
./configure --prefix=/path/to/dir [--other-options]
make
make install
Согласно краткая версия инструкции по установке, вам нужно вручную создать пользователя при установке из исходников, затем вс в учетную запись пользователя и запустите PostgreSQL. Просто пропустите эти шаги, и вы запустите сервер как свою локальную учетную запись.
Если вы устанавливаете пакет, предоставленный SUSE, вы можете вручную удалить созданную им учетную запись пользователя и изменить файлы конфигурации, запускающие демон во время загрузки, чтобы использовать эту учетную запись пользователя, а не вашу. К сожалению, у меня не работает SUSE Linux, поэтому я не могу предоставить вам подробности.