Blu*_*lub 4 permissions xampp ubuntu
如何设置权限,以便我可以?“创建新文件夹”选项呈灰色。我试过这个: sudo chmod -rw /opt/lampp/htdocs
但它仍然不起作用。当我添加 sudo chmod -rw 755 /opt/lampp/htdocs 时,它说:“755”没有这样的文件或目录
Maj*_*nko 15
您误解了 chmod 和 unix 文件权限的操作方式。
您需要配置/opt/lampp/htdocs 目录,以便您登录的用户具有写入权限。您还需要确保您在其中编写的内容可以被 LAMPP 使用的任何 Web 服务器读取(不幸的是,我不熟悉 LAMP。)
首先,您需要查看谁拥有 /opt/lampp/htdocs:
$ ls -ld /opt/lampp/htdocs
Run Code Online (Sandbox Code Playgroud)
应该返回如下内容:
drwxr-xr-x 4 lampp www 4096 2011-03-22 12:43 /opt/lampp/htdocs
Run Code Online (Sandbox Code Playgroud)
第一位 (dwrxr-xr-x) 是文件权限。“lampp”是目录的所有者,“www”是目录的组所有者。你需要注意这一点。
首先让我们对组进行排序。如果该组是除“root”之外的任何内容,那么一切都很好,您可以跳过本节:
如果它是“root”,则需要更改为更合理的内容。让我们为它创建一个新组:
$ sudo groupadd www
Run Code Online (Sandbox Code Playgroud)
然后更改目录上的组:
$ sudo chgrp -R www /opt/lampp/htdocs
Run Code Online (Sandbox Code Playgroud)
现在您需要使 Web 服务器作为 www 组运行。如果 Web 服务器是 Apache,那么您应该检查 /etc/apache/httpd.conf 文件并相应地编辑“组”设置。我不知道其他 Web 服务器的设置。
现在,如果您不需要将组从 root 切换到其他内容,您可以跳到这里。
我们现在需要解决目录的权限问题。我们想使用一些非常特殊的权限,称为“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
Run Code Online (Sandbox Code Playgroud)
您会看到权限现在发生了一些变化。让我们解释一下这些。
组权限中的“s”称为“setgid”位。这是一个特殊的权限,它会导致在目录中创建的任何文件从目录本身继承组所有者。因此,如果“users”组中的用户“fred”在其中创建一个文件,则该文件将归“www”组中的“fred”所有。这对于多人都读取和写入相同文件的共享区域非常有用。
但就目前而言,您仍然无法写入该区域。为什么?因为您不在“www”组中。现在让我们纠正一下:
$ sudo usermod -aG www blub
Run Code Online (Sandbox Code Playgroud)
将“www”替换为您在开头附近记下的 /opt/lampp/htdocs 目录的组所有者。
您需要注销并再次登录才能使此更改生效 - 您的组成员身份在登录时被读取。
完成后,您会突然发现现在可以神奇地在 /opt/lampp/htdocs 中写入文件。
如果您希望允许在系统上写入其他用户,只需使用usermod -aD www <username>命令将它们添加到 www 组。