2

我正在尝试在 /var/www 中配置具有安全权限的 Linux 服务器。我读到您不应该出于各种原因将您的用户帐户添加到 www-data 组。相反,最好(有人告诉我)创建一个单独的开发人员组。

这是我想出的:

group add developers
usermod -a -G developers my_account
chown -R root:developers /var/www
find /var/www/ -type d -exec chmod 775 {} \;
find /var/www -type d -print | xargs chmod g+rwxs
find /var/www/ -type f -exec chmod 664 {} \;

另外,编辑 /etc/apache2/envvars 并添加:

umask 002

问题:

(一种)。这是相当安全的吗?(b)。这是多余的吗?(C)。此设置是否需要更改默认 umask?如果是这样,对什么?

4

1 回答 1

4

在冗余方面,这些行几乎相互重复:

find /var/www/ -type d -exec chmod 775 {} \;
find /var/www -type d -print | xargs chmod g+rwxs

第一个设置所有权限,第二个只是更改组权限。对于这一部分,除了粘性位之外,它设置的所有内容都与第一个相同。

我建议使用前者(因为这绝对设置权限),但修改它以包含粘性位,使用以下任何一种:

find /var/www/ -type d -exec chmod 2775 {} \;

或者:

find /var/www -type d -print | xargs chmod 2775

它们做的事情完全相同,但第二个效率更高:前者调用chmod每个文件,后者调用chmod一组文件,因此启动chmod频率较低。

在 umask 上,我假设您希望开发人员组具有写访问权限,但文件是否可读?在这种情况下,您需要umask 002. 我不知道您的默认 umask 是什么,所以不知道是否需要更改。

于 2012-04-04T20:09:54.607 回答