我该如何设置权限才能这样做?“创建新文件夹”选项呈灰色。
我尝试了这个:
sudo chmod -rw /opt/lampp/htdocs
但它仍然不起作用。当我添加:
sudo chmod -rw 755 /opt/lampp/htdocs,
它说:"755" no such file or directory
答案1
您误解了 chmod 和 unix 文件权限的操作方式。
您需要配置 /opt/lampp/htdocs 目录,以便您登录的用户具有写入权限。您还需要确保您在其中写入的内容可以被 LAMPP 使用的任何 Web 服务器读取(不幸的是,我不熟悉 LAMP)。
首先,您需要查看谁拥有 /opt/lampp/htdocs:
$ ls -ld /opt/lampp/htdocs
应该返回类似这样的内容:
drwxr-xr-x 4 lampp www 4096 2011-03-22 12:43 /opt/lampp/htdocs
第一位(dwrxr-xr-x)是文件权限。“lampp”是目录的所有者,“www”是目录的组所有者。你需要注意这一点。
首先让我们对组进行排序。如果组不是“root”,则一切正常,您可以跳过此部分:
如果它是“root”,则需要将其更改为更合理的内容。让我们为其创建一个新组:
$ sudo groupadd www
然后更改目录上的组:
$ sudo chgrp -R www /opt/lampp/htdocs
现在您需要让 Web 服务器作为组 www 运行。如果 Web 服务器是 Apache,则应检查 /etc/apache/httpd.conf 文件并相应地编辑“组”设置。我不知道其他 Web 服务器的设置。
现在,如果您不需要将组从根组切换到其他组,您可以跳至此处。
现在我们需要解决目录的权限问题。我们想要使用一些非常特殊的权限,称为“setgid”位。
$ sudo chmod 2775 /opt/lampp/htdocs
$ ls -ld /opt/lampp/htdocs
drwxrwsr-x 4 lampp www 4096 2011-03-22 12:43 /opt/lampp/htdocs
您会看到权限现在有所改变。让我们解释一下。
- 第一个字母是文件类型。在本例中,“d”代表目录。
- 接下来的三个“rwx”是所有者(lampp)对 directort 的权限。r = 读取,w = 写入,x = 查看目录内容。
- 接下来的三个“rws”代表群组所有者(www),但您会注意到,在这种情况下,x 实际上是一个 s - 我们稍后会讨论这一点。
- 最后三个“rx”是给其他所有人的。即读取,并查看目录的内容。禁止写入。
组权限中的“s”称为“setgid”位。这是一个特殊权限,它使目录中创建的任何文件都从目录本身继承组所有者。因此,如果组“users”中的用户“fred”在其中创建了一个文件,它将归组“www”中的“fred”所有。这对于多个人都读写相同文件的共享区域非常有用。
但目前你仍然无法写入该区域。为什么?因为你不在“www”组中。现在让我们纠正这个问题:
$ sudo usermod -aG www blub
将“www”替换为您在开头附近记下的 /opt/lampp/htdocs 目录的组所有者。
您需要注销并再次登录才能使此更改生效 - 您的群组成员身份将在登录时读取。
一旦你完成了这些,你就会突然发现你现在可以在 /opt/lampp/htdocs 中神奇地写入文件。
如果您希望允许系统上其他用户向其写入数据,只需使用该usermod -aD www <username>
命令将他们添加到 www 组即可。
答案2
这个简单的终端命令给了我完全权限htdocs
,我能够开始处理 PHP 项目
sudo chmod 777 -R /opt/lampp/htdocs
针对穆罕默德的评论,最好使用sudo chmod 755 -R /opt/lampp/htdocs
答案3
你可以使用 +rw 或八进制, 不是都。
您要做的是从名为 755 的目录以及 /opt/lampp/htdocs 中删除读写权限。
无论如何,您不应该使用 xampp - 您可以获得更新、原生的 lamp 堆栈安装 - 您可以使用 taskel 安装它。
答案4
将目录/opt/lampp/htdocs
及其内容的组所有权更改为组jade
。
sudo chgrp -R jade /opt/lampp/htdocs
然后,如果您想修改权限(例如,授予组jade
写访问权限),通常可以使用 chmod 命令。例如:
sudo chmod -R g+w /opt/lampp/htdocs