我正在尝试在/ 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
问题:
(a)中。这个相当安全吗? (b)中。这有多余吗? (C)。此设置是否需要更改默认的umask?如果是这样,到底是什么?
答案 0 :(得分: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是什么,所以不知道这是否需要改变。