由apt-get创build的用户的强制ID

语境:

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

Postgres数据位于重新安装后的外部卷上。 这些数据显然是由postgres用户拥有的。

我遇到的问题是,所有权不是以postgres的名字logging的,而是根据postgres在创build时的UID。 当服务器重新安装时, postgres有时会得到不同的UID,不再拥有数据目录, 因此不起作用 。


题:

我可以强制apt-get创build的用户postgres的UID固定的东西吗? 还是有另一种方法来解决我的问题?


(正如您可能已经推断的那样,这是在Amazon EC2上的EBS卷上的数据)

两个想法:

  1. 在安装PostgreSQL之前,使用正确的UID创build你的postgres用户。
  2. 创build你自己定制的postgresql-9.1软件包,它安装股票postgresql-9.1包,然后做chown
 usermod -u {desired_UID} {username} 

从这里偷走这个: Lethe的博客

但是我认为chown会比这更好,因为它已经被使用或者其他方式的冲突不能失败。

我可以添加一个数据目录的chown到服务器设置脚本,但我更喜欢更优雅的解决scheme。 也因为有其他的服务,像Tomcat一样,都有同样的问题。