如果UNIX用户具有相同的组

我有一个Web服务器(Ubuntu 12.04 LTS,如果需要的话)多人使用Apache,PHP5和MySQL安装。 所有用户都可以访问SSH。 所有用户主目录的/home/USER我想知道:

  1. 用户应该在哪个用户组中; 或者他们应该有自己的用户组()?
  2. Apache应该运行哪个用户和组?
  3. 用户/home/USER/public_html/home/USER目录应具有哪些文件权限,以及后续文件(包括具有敏感信息(如DB密码)的此类PHP文件)

谢谢 :)

在Ubuntu / Debian和变种中,Apache2守护进程作为www-data运行。

这是一个难以具体回答的问题,因为它取决于您的特定环境和业务需求,但非常广泛:

  • 一个“老派”* nix做事的方式可能是在你的机器上创build一组webdev用户,并将他们工作的目录和文件转换成webdev 。 我们在我们的dev boxen上做到这一点,它工作正常。 这些工作目录放在/var/www/var/www-ssl 。 请注意,传统上, public_html目录是个人网站。 一些组织创build项目级别的用户,我不喜欢这个,因为我认为用户帐户应该被分配给人,如预期的那样。
  • 一个更现代的方式来处理可能是vritualize,只是给每个用户自己的虚拟机工作,然后让他们提交代码在必要时,这个规模更好。

需要注意的是,如果您正在为Web应用程序购买SSL证书,则为每个Web应用程序构build虚拟机是有意义的,因为使用SSL无法在Apache2中托pipe名称虚拟主机。

Web应用程序应该有他们自己的数据库用户和密码,只有必要的数据库权限,这些数据库权限通常放在conf文件中,这些文件的权限只是必要的,也就是说只能被web服务器读取,而不能在索引目录中等。 。

你的问题是一个普遍的问题,我希望这个广泛的答案是有帮助的。

  1. 对于这个问题没有明确的答案:有些人更喜欢让每个人都有自己的群体,有些人有一个默认的“用户”群体。 可能最好留下Ubuntu上的默认值。
  2. 如果您使用Ubuntu附带的Apache软件包(不是一个坏主意),请保留默认设置,除非您有充分的理由不这样做。 如果你要问是什么原因,那么你没有。 :)即使你推出自己的软件包,使用Ubuntu默认也是一个好主意。
  3. 如果您要使用“userdir”模块,以便人们可以执行类似http://example.com/~user1的操作 ,则执行位(“chmod a + x …”)需要启用/ home / USER,并在/ home / USER / public_html上读取和执行(“chmod a + rx …”)。

作为(1)的附录:如果有不同的项目正在进行,那么除了主要的项目之外,用户可能会有补充组。