强制使用 apt-get 创建的用户 ID

强制使用 apt-get 创建的用户 ID

语境:

我正在使用 自动安装postgresql-9.1在 Ubuntu 服务器上apt-get。这将创建所需的postgres用户。

Postgres 数据位于外部卷上,即使重新安装后仍可保留。这些数据显然归用户所有postgres

我遇到的问题是所有权不是记录在名称下postgres,而是记录在创建时的 UID 下postgres。重新安装服务器时,postgres有时会获得不同的 UID,并且不再拥有数据目录,因此不起作用


问题:

postgres我可以强制将所创建用户的 UIDapt-get固定为某个值吗?或者还有其他方法可以解决我的问题?


(您可能已经推断出,这是在 Amazon EC2 上,数据位于 EBS 卷上)

答案1

两个想法:

  1. postgres在安装 PostgreSQL 之前使用正确的 UID创建您的用户。
  2. 创建您自己的自定义 postgresql-9.1 包,该包安装库存 postgresql-9.1 包,然后执行chown

答案2

usermod -u {desired_UID} {username}

从这里偷来的:Lethe 的博客

但我实际上认为 chown 会比这更好,因为它不会因为desired_UID已经被使用或以其他方式产生冲突而失败。

答案3

我可以将chown数据目录添加到服务器设置脚本中,但我更喜欢更优雅的解决方案。还因为其他服务(如 Tomcat)也存在同样的问题。

相关内容