授予 UNIX 系统服务对受限用户主目录的访问权限

授予 UNIX 系统服务对受限用户主目录的访问权限

我需要限制用户目录的权限/home,以便对于某些帐户,其他用户无法读取文件或进入其中。但我仍然需要授予系统服务对它们的访问权限。

到目前为止我一直使用的方法是chgrp www-data主目录和chmod o-rx它们,所以它们看起来像这样

drwxr-x--- user www-data    user

但我刚刚发现,如果用户创建了一个~/.forward文件,postfix 会忽略它并在本地发送邮件。如果我创建了chmod o+rx目录,.forward它又可以正常工作。(所以这似乎意味着,与这个答案相反,该文件要么.forward在 postfix 的本地传送代理接收邮件之前被读取,要么本地传送代理没有以用户身份访问主目录。)

我该如何解决这个问题?如果有其他系统服务需要访问怎么办?

另一种方法可能是进入chgrp some-system-group目录并确保访问该目录的任何系统服务都在该some-system-group组中。

这可行吗?这是个坏计划吗?

还有其他更好的方法吗?

答案1

使用经典的 unix 权限,您最终会遇到问题。您可以尝试以下操作:

  • 如果支持,请使用 ACL。这样,您可以为wwww-data组提供单独的权限。
  • 如果这不起作用,您必须尝试阻止对主目录访问的要求:
    • 除了经典方法~/.forward,也许可以尝试使用筛选过滤或其他传送方法。
    • 对于 WWW 内容,您可以修改 Web 服务器配置,使用存储所有用户 Web 目录的备用目录,然后从实际主目录符号链接到该目录。如果您真的想要~/username网站,这些天我倾向于到处禁用它们。

答案2

据记载,在默认配置下,postfix 在尝试投递之前会假定邮箱所有者的身份。

具体来说:

通过 ~/.forward 文件进行传递需要收件人的权限。因此,~/.forward 之类的文件必须对收件人可读,并且其父目录需要对收件人具有“执行”权限。

如果这对您不起作用,则您以某种方式弄乱了权限。

相关内容