我是 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/www
root(管理员)身份执行命令并提示您输入设置系统时使用的密码(很可能与 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
答案3
实际上,这些文件应该归 www-data 所有(或者 www-data 应该具有写入权限)。“偷懒”的方法是使用 sudo 将自己切换到 root 并将文件 chown 给自己,执行所需的操作,然后将其切换回 www-data - 我认为这些文件是使用 sudo 添加的,但无论是谁做的,都没有将所有权交给 www-data
这正确的方法是将文件夹设置为组可写,并将您自己添加到该组。这当然更有意义,因为您只需执行一次(针对 www-data 目录),之后您就可以使用普通用户了。Kobaltz 的基本想法是正确的,但执行的某些方面在我看来是不正确的。