Почему пользователю предоставляется оболочка для PostgreSQL?

cat /etc/passwd |grep postgre

postgres:x:115:127:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash

apt-cache show postgresql

Package: postgresql
Priority: optional
Section: database
Installed-Size: 65
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian PostgreSQL Maintainers <pkg-postgresql-public@lists.alioth.debian.org>
Architecture: all
Source: postgresql-common (136)
Version: 9.1+136
Depends: postgresql-9.1
Filename: pool/main/p/postgresql-common/postgresql_9.1+136_all.deb
Size: 5468
MD5sum: 34f5a1373ad5cd0b6f5aa3e7af06c9e7
SHA1: 6f271758bd51c23614b12fd63fb711ecfa43e9e5
SHA256: e8921a22b560e81f57a2a00001e31ba1036f67a8e7f151bf8f977b4919fc559a

Могу ли я заменить это /bin/bash на /bin/false?

10
задан 27 December 2012 в 06:32

3 ответа

В целях безопасности Postgres работает под специальной учетной записью пользователя операционной системы. Эта учетная запись создается на вашем компьютере при запуске установщика, и, если она не переопределена в командной строке, она будет называться «postgres».

В Unix-подобных операционных системах, таких как Linux и Mac OS X, учетная запись настраивается без пароля, и пользователям обычно больше не нужно беспокоиться об этом. Источник .

Также не рекомендуется редактировать файл passwd вручную. Вы должны использовать команду:

sudo passwd postgres
0
ответ дан 27 December 2012 в 06:32

Существует оболочка, потому что мы используем PostgreSQL из командной строки в качестве пользователя PostgreSQL.

0
ответ дан 27 December 2012 в 06:32

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

Назначение пользователю оболочки позволяет администраторам входить в систему как postgres и выполнять работу над этой оболочкой пользователя. Выяснение sudo как источника неопределенных сообщений об ошибках сервера было бы слишком большой головной болью.

Если вам это не нужно и вы уверены, что никогда не будете вызывать двоичные файлы postgres таким подверженным ошибкам способом, вы можете безопасно удалить оболочку:

usermod --shell /bin/false postgres

Имейте в виду, что beign способен Чтобы стать пользователем root, вы все равно можете стать кем угодно, включая пользователей без действительных оболочек:

su --shell /bin/bash postgres

Официальный источник:

Иногда вы хотите войти в систему под этим пользователем, чтобы иметь возможность делать это. определенные виды специального администрирования или исправления. Например, если вам когда-либо понадобится запустить pg_resetxlog, вы, вероятно, захотите войти в систему как postgres, если только вы не уверены, что ваши вызовы su или sudo верны и не портят разрешения для каталога базы данных странным образом. - Питер Айзентраут, разработчик PostgreSQL

0
ответ дан 27 December 2012 в 06:32

Другие вопросы по тегам:

Похожие вопросы: