我在www
apache 目录中工作。我需要这样做是因为公司里的其他人需要不断地看到我的工作 - 无论是访问我正在处理的内容的更新版本(主要是 css 文件)还是给我反馈(这一切都在本地网络上)。
我正在使用最新的 Ubuntu 14.04 的实时版本,使用 Apache 2.2。权限系统让我很头疼。这主要是因为使用目录时出现了令人惊讶的不一致www
- 有时我可以访问所有内容,有时我可以访问它们但无法复制到其他地方,有时某些目录无法访问。我认为上次更新带来了更多以前不存在的奇怪限制。
我总是以某种方式解决这个问题。我要么sudo cp
通过命令行,要么我这样做,sudo nautilus
要么我在有限的时间内更改权限(apache 需要的权限为www-data
,否则当您尝试通过网站访问网站时,localhost
网站会收到403
其所有静态文件的权限)。
但我已经受够了,这太荒谬了。我需要该目录表现得好像我拥有它一样,但又不与 Apache 发生任何冲突。
我可以在这个网站上找到很多关于权限问题的答案,但就像我说的 - 我暂时没有问题可以解决这个问题。但我希望了解使用 www 目录的正确方法是什么,不会破坏任何东西,也不需要对每件小事都执行 sudo 操作。
提前致谢
答案1
对我来说,保留目录的所有者root
就可以了。我更喜欢创建一个组www-editor
,然后让自己(和任何其他共同编辑者)成为该组的成员。 将文件夹授予chgrp
该组并授予其完全权限。www
www-editor
默认情况下,该组应该对文件夹具有写入权限,并且新写入的文件也应具有类似的权限。为和所有子目录(即)www-editor
打开粘滞位会很方便。www
sudo chmod g+s www
这样,你创建的任何文件都将归你所有(不是root
必需sudo
的)并归组所有。目录www-editor
的示例如下:ls -l
www
drwxrwsr-x 8 root www-editor 4096 Feb 28 00:00 .
drwxr-xr-x 14 root root 4096 Mar 16 10:14 ..
-rw-rw-r-- 1 ken_l www-editor 1150 Feb 8 2013 favicon.ico
-rw-rw-r-- 1 root www-editor 177 Dec 25 2012 index.html
drwxrwsr-x 2 ken_l www-editor 4096 Jun 12 2013 main
从上面的例子,ken_l
创建index.html
并复制favicon.ico
到www
without sudo
。
应尽量减少的权限www-data
以降低安全风险。因此,默认情况下,目录应由其他人(包括 )只读www-data
。当然,您可以根据需要随时微调特定目录的权限。