在linux webservers上正确的umask?

大多数VPS拥有1个以上用户的团队,除了configuration系统并在网站和/或数据库上工作外,什么都不做。 我会假设所有的团队成员都是像“开发人员”这样的团队,这样他们就可以根据需要在Web根目录下对文件进行操作。

考虑到这一点, umask 007会比默认的022更好吗? 毕竟,不应该有任何“其他/世界”的用户,因为这台机器的主要目的是为网页提供服务。 所有的开发人员都可以访问,并没有任何“客人”login…

是和不是。 umask是有时候可以改变的东西。 一般来说,最好是“默认拒绝”,因为在默认情况下,大多数情况下最less的权限。 您可能会发现,如果您更改了默认的umask,并且没有特别意识到权限,那么您可能会遇到默认权限阻止某些事情发生的情况。

例如,通过CPAN安装的PERL模块不会将权限设置为安装过程中的公共可读,并且稍后Web应用程序将无法读取它。

真的,强化权限的主要好处将在多用户系统中看到。 尽pipe如此,重要的是要特别意识到在Internet可访问的守护进程中很容易访问的任何东西。

对于硬化,最好查看SUID或公共可写的东西。 我发现自己正在validation权限,并将它们调整为最不必要的权限,就像我一天到晚的时候一样。 当我改变umask的时候,通常是为了一个特定的目的,比如一组特定的用户,或者是以编程方式创build文件的时候。

如果您正在为您的服务器和一般强化技术寻找一些“最佳实践”,请查看Bastille。 如果我没有记错,那里有东西改变了默认的umask。

这不是一个直接的答案,但“最佳实践”将是没有多个帐户在web根目录上工作。 相反,使用版本控制系统(任何,这并不重要)和一个部署脚本来控制网站的根。 这解决了您的权限问题,并且是任何types的工作负载(stream量)或员工(更多开发人员)扩展的绝对先决条件。