我有一个限制,即我只能在 SUSE Linux Enterprise Server 11 上使用一个用户。
现在,我需要安装 PostgreSQL。是否可以以某种方式避免 PostgreSQL 安装向导自动创建“postgres”Linux 用户,并使用当前用户作为数据库管理员?
关于奇怪的限制的补充解释:
我们必须将软件托管在 IT 公司的服务器上,该公司是大银行的子公司。由于存储和处理敏感的用户数据,他们有非常严格的规定。因此,其中一条规则是,我们只能在那里拥有一个用户,并且所有内容都应安装在该用户下(具有 sudo 权限)。最初,服务器只有最基本的软件(不包括 PostgreSQL)。
在这种情况下,Docker 不是一种替代方案。
答案1
我认为您的要求似乎是由某个相当不称职的人解释的。
我认为用户是一个人以及每个人需要具有所需数据库服务器的管理员访问权限个人用户帐户, 作为共享账户是邪恶的;你需要能够让每个人对自己的行为负责。
服务不属于一个人,而是由服务帐户而诸如 postgres 帐户之类的服务帐户在我看来与用户帐户并不相同。首先,人员帐户是安全流程的一部分,用于撤销离职人员和非活动用户的访问权限...
当安装工资数据库的人力资源部 Alice 离职时,您不想删除工资数据库,对吗?
当你不想使用SuSe 的库存 RPM 包对于 postgres(这也将创建 postgres 服务帐户),请创建自己的并将其提供给 IT 部门,而不是手动安装。
这样,您的数据库管理员用户帐户就不需要过多的权限来运行安装程序,您也不需要在(生产)服务器上安装编译器和构建工具,占用很大的空间,您有一个清晰的依赖关系列表,并且该包可以创建必要的服务帐户(或使用现有的)并以更容易的方式设置所有权限重复审核比运行安装程序脚本。
为管理 Posgres 数据库服务器的人员创建合适的配置文件,sudo
并允许管理员运行 Postgres 管理员需要以 postgres 用户身份运行的有限命令子集,即psql
,,service postgres [stop|start|restart]
pg*
但要回答你的实际问题:
如何避免 PostgreSQL 安装向导自动创建“postgres”Linux 用户?
不要运行向导,但是从源代码构建,使用正确的选项来选择运行构建的用户可访问的安装目录,并且不需要其他用户帐户或提升的权限。
./configure --prefix=/path/to/dir [--other-options]
make
make install
答案2
根据精简版安装手册,你必须在从源安装时手动创建用户,然后苏到用户帐户并启动 PostgreSQL。只需跳过这些步骤,您就可以以自己的本地用户帐户运行服务器。
如果您安装 SUSE 提供的软件包,则可以手动删除它创建的用户帐户,并更改启动时启动守护进程的配置文件,使其不使用该用户帐户,而是使用您的帐户。不幸的是,我没有运行 SUSE Linux,所以我无法为您提供详细信息。