我如何管理 /var/www?

我如何管理 /var/www?

我是 Linux 新手,正在尝试在运行 Ubuntu Server 的虚拟机内设置一个小型测试服务器。我找到了 /var/www 文件夹,它应该是存储我的 Apache 文档的地方,事实上,如果我访问我的虚拟机的 IP,我就会看到存储在那里的 index.html 页面。

我的问题是我无法写入该文件夹。

ls -l返回:

d-w-r-xr-x 2  root root 4096 2011-12-28 16:08 ./ 
drwxr-xr-x 13 root root 4096 2011-12-28 17:02 ../ 
-rw-r--r-- 1  root root 177  2011-12-28 16:08 index.html

我的用户叫gab

处理此文件夹时,最好的做法是什么,才能允许我在此处编辑和创建文件?我应该创建一个新组还是将自己设置为文件夹的所有者?

答案1

这是一个受保护的文件夹。您需要 root 权限才能修改此目录。

您还可以通过执行以下操作使 gab 成为此目录的所有者

sudo chown -R gab /var/www

sudo将以chown -R gab /var/wwwroot(管理员)身份执行命令并提示您输入设置系统时使用的密码(很可能与 gab 相同的密码)。

完成此操作后,您还可以执行以下操作

sudo chown -R 755 /var/www

授予写权限。

#   Permission
7   full
6   read and write
5   read and execute
4   read only
3   write and execute
2   write only
1   execute only
0   none


Reference   Class   Description
u   user    the owner of the file
g   group   users who are members of the file's group
o   others  users who are not the owner of the file or members of the group

755 表示用户将拥有完全访问权限,组将拥有读取和执行访问权限,其他人将拥有读取和执行访问权限。

答案2

我本来要建议您成为www-data(或同等)组的成员,但由于目录和文件index.html都归 拥有root,您可能确实需要这样做(正如 kobaltz 所建议的)——如果您想避免使用虚拟主机。
如果您采用虚拟主机的方式,则/var/www目录只是一个占位符,允许您验证 Apache 是否正在运行。

我知道这有点难读,但你看过了吗本文档页面或者此维基页面

答案3

实际上,这些文件应该归 www-data 所有(或者 www-data 应该具有写入权限)。“偷懒”的方法是使用 sudo 将自己切换到 root 并将文件 chown 给自己,执行所需的操作,然后将其切换回 www-data - 我认为这些文件是使用 sudo 添加的,但无论是谁做的,都没有将所有权交给 www-data

正确的方法是将文件夹设置为组可写,并将您自己添加到该组。这当然更有意义,因为您只需执行一次(针对 www-data 目录),之后您就可以使用普通用户了。Kobaltz 的基本想法是正确的,但执行的某些方面在我看来是不正确的。

相关内容