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

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

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

chown -R www-data:www-data

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

补充问题:你是如何获得权限的硬核?

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

解决方法

尝试扩展@ Zoredache的 answer,我自己给出了一个:

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

groupadd www-pub

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

usermod -a -G www-pub userb

groups usera ##显示用户组
>将/ 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为world(包括apache www-data用户)

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

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

find / var / www -type d -exec chmod 2775 {}
>将所有文件更改为0664

find / var / www -type f -exec chmod 0664 {}
>将用户的umask更改为0002

其他umask控制默认文件创建权限,0002意味着文件将有664和目录775.设置此项(通过编辑/ etc / profile底部的umask行),意味着一个用户创建的文件可由其他用户写入www-group中的用户无需chmod他们.

通过创建文件和目录并使用ls -l验证所有者,组和权限来测试所有这些.

注意:您需要注销/以更改组才能生效!

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...