在/ var / www中处理Apache 2用户www-data权限的最佳方法是什么?

Modified on: Tue, 12 Nov 2019 22:20:02 +0800

有没有人有一个很好的解决方案来处理/var/www中的文件?我们正在运行基于名称的虚拟主机,而Apache 2用户是www-data

我们有两位普通用户&根。所以当弄乱/var/www中的文件时,而不是......

chown -R www-data:www-data

...一直以来,处理这个问题的好方法是什么?

补充问题:你如何继续获得权限?

这一直是协作开发环境中的一个问题。

最佳答案

尝试扩展@ Zoredache的答案,我自己就这样做了:

  • 创建一个新组(www-pub)并将用户添加到该组

    groupadd www-pub

    usermod -a -G www-pub usera ##必须使用-a附加到现有组

    usermod -a -G www-pub userb

    groups usera ## display users for user

  • 将/ var / www下所有内容的所有权更改为root:www-pub

    chown -R root:www-pub /var/www ## -R for recursive

  • 将所有文件夹的权限更改为2775

    chmod 2775 /var/www ## 2 =设置组ID,7 = rwx表示所有者(root),7 = rwx表示组(www-pub),5 = rx为世界(包括apache www-data用户)

    设置组ID(SETGID)bit(2)使组(www-pub)被复制到该文件夹​​中创建的所有新文件/文件夹。其他选项是SETUID(4)来复制用户ID,而STICKY(1)我认为只允许所有者删除文件。

    有一个-R递归选项,但不会区分文件和文件夹,所以你必须使用find,如下所示:

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

  • 将所有文件更改为0664

    find /var/www -type f -exec chmod 0664 {} +

  • 将您的用户的umask更改为0002

    umask控制默认文件创建权限,0002表示文件将有664和目录775.设置此项(通过编辑umask行)代码>在我的情况下)表示由一个用户创建的文件可由www-group中的其他用户写入,而无需/etc/profile

通过创建文件和目录并使用chmod

注意:您需要退出/加入以更改群组才能生效!

作者:Community,Tom

相关问答

添加新评论