公共Web服务器上的默认umask更改为002是否安全?

我有一个运行Apache的Ubuntu服务器。 我有一个Web应用程序将文件写入文件夹。 Apache正在以www-data:www-data ,因此所有文件都是使用该用户和组创build的。

我也有一个用户shabbyrobe ,我用来login到框,并进行非根改变。 如果我想改变被www-data触动的东西,我会发现自己正在破解它,只是做了sudo -i ,然后在我知道它正在做所有事情的时候,都在提升的特权水平上,真的感觉到了就像我根本不需要成为root

我在www-data组中添加了shabbyrobe ,并在由我的web应用程序编写的文件所在的文件夹上运行了chmod -R 2775 ,但是新文件仍然被创build为755 ,所以用户shabbyrobe无法访问。

基本上,我只是想知道,如果我把/etc/profile的umask从022(这似乎是默认值)更改为002而不危及我的服务器的安全性是安全的。 我想我只是想明白为什么它默认为022,我不想在不明白原因的情况下轻率地改变它。

更新 :为了回应Caleb的build议,我想了解更多的信息,并不认为将umask系统设置为广泛的考虑是可能的,因为它只能用于apache。 所以如果我把/etc/apache2/envvars的umask改为002而不是/etc/profile ,那么还有什么安全考虑呢?

将umask设置为002将使所有创build的文件都可以被写入该文件的用户在同一个GROUP中的任何人写入。

根据您的系统configuration,这可能会导致重大的安全问题。 我不会推荐做这个系统范围。 如果您有一个特定的用户或程序可以从创build组中其他用户可写入的文件中受益,那么可以将其设置为执行该程序或脚本,但这是一个糟糕的想法使其成为默认行为。

请注意,允许对其他用户可以执行的任何操作进行写入访问是特别危险的,因为对可执行文件的偷偷摸摸的更改可能会让其他用户无意识地运行,并允许以用户身份执行恶意代码,从而损害其帐户。