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

我需要限制/home的用户目录的权限,以便对于某些帐户,其他用户不能读取文件或者cd到其中。 但是我仍然需要给系统服务访问它们。

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

 drwxr-x--- user www-data user 

但是我刚刚发现,如果用户创build了~/.forward文件,postfix会忽略它并在本地发送邮件。 如果我chmod o+rx的目录, .forward再次工作。 (所以这似乎表明, 与这个答案相反的是,在postfix的本地交付代理被给予邮件之前,或者本地交付代理没有以用户的身份访问主目录,读取前向。

我应该怎样解决这个问题? 如果还有其他需要访问的系统服务呢?

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

这会工作吗? 这是一个不好的计划吗?

还有其他方法是否更好?

使用经典的Unix权限,最终会出现问题。 你可以尝试的东西:

  • 如果支持,请改用ACL。 这样,你可以给例如。 wwww-data组分开权限。
  • 如果这不起作用,您必须尝试阻止访问主目录的要求:
    • 而不是经典的~/.forward ,也许尝试使用筛选筛选或其他交付方法。
    • 对于WWW的东西,你可以改变web服务器的configuration,使用一个替代的目录,所有的用户网站目录存储,然后从真正的主目录符号链接到它。 这就是如果你真的想要~/username网站,我倾向于在这些天无处不在。

如文档所述 ,使用默认configuration,postfix在尝试传递之前会假定邮箱所有者的身份。

特别:

通过〜/ .forward文件传送是通过接收者的权限完成的。 因此,类似于〜/ .forward的文件必须能够被接收者读取,并且他们的父目录需要对接收者具有“执行”权限。

如果这不适合你,你搞砸了权限。