UNIX 用户是否应拥有相同的组

UNIX 用户是否应拥有相同的组

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

  1. 用户应该属于哪个用户组;或者他们应该有自己的用户组()?
  2. Apache 应在哪个用户和组下运行?
  3. 用户/home/USER/public_html/home/USER目录的文件权限应为哪些,以及后续文件(包括带有敏感信息(例如数据库密码)的 PHP 文件)

谢谢 :)

答案1

在 Ubuntu/Debian 及其变体中,Apache2 守护进程以 的身份运行www-data

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

  • 一种“老式”的 *nix 做事方式可能是webdev在您的机器上创建一组用户,并将chgrp他们处理的目录和文件分配给webdev。我们在我们的开发机上这样做,它工作得很好。我们把这些工作目录放在/var/www或 中/var/www-ssl。请注意,传统上,public_html目录是个人网站。一些组织创建项目级用户,我不喜欢这样,因为我认为用户帐户应该分配给人,这是本意。
  • 更现代的处理方式可能是虚拟化并为每个用户提供自己的虚拟机来工作,然后让他们根据需要提交代码,这样扩展性更好。

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

Web 应用程序应该有自己的数据库用户和密码,并且仅具有必要的数据库权限,这些权限通常放在 conf 文件中,其权限仅在必要时才允许,即只能由 Web 服务器读取,而不是放在具有索引的目录中,等等。

您的问题比较笼统,我希望这个笼统的回答对您有所帮助。

答案2

  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) 的补充:如果有各种项目正在进行,那么用户除了主要组之外可能还会有补充组。

相关内容