在Ubuntu/Linux上正确赋予所有权/权利


Giving Ownership/Rights properly on Ubuntu/Linux

我目前面临着在Zend Server上授予权限/所有权的许多问题。我总是做

chown用户-R路径/到/文件

把777给了水仙花,然后排成一排,最后得到了很多777有些人不需要那777,如果zend服务器有用户,我希望我可以让它拥有一切。。。。所以我不用777这么多东西

到目前为止,赋予权利/所有权是在修复和制造zend服务器的问题。。。这就是我在这里的原因:(

我在调试方面也遇到了问题,当出现错误时,我不知道如何检查是什么原因造成的。我读过论坛上的人按照他们的命令进行-debug。有时我也不确定该授予哪个文件权限。我意识到我的zend服务器本身就是一个用户,我相信。。。

任何建议或指导都将不胜感激。

我有这些作为用户

zend:x:106:112::/usr/local/zend/gui/lighttpd/:/bin/false
root:x:0:0:root:/root:/bin/bash

以及许多其他方面。我认为守护进程和zend与zend服务器有关。

你永远不应该让一个不是可执行shell脚本的文件可执行(设置为0位)(PHP等CGI脚本不需要执行权限),从安全角度来看,将其设置为777是非常懒惰和危险的。

我经常运行以下程序来更正web文件夹上的权限:

chown username:groupname * -R
find -type d -exec chmod 755 {} ';
find -type f -exec chmod 644 {} ';

这将提供所有目录:

  • 所有者、组和其他任何人的读取权限
  • 仅所有者的写入权限
  • 执行允许输入它们并列出其内容的权限

它将提供所有文件:

  • 所有者、组和其他任何人的读取权限
  • 仅由所有者授予写入权限
  • 根本没有执行权限

如果您可以将Apache/HTTP服务器用户添加到用户组(usermod -G apache -a username),则可以将其进一步收紧到750和640,这将阻止其他用户读取web文件(这可以通过web服务器绕过,但取决于服务器配置)。

在授予web服务器权限时请注意。

权限很简单。您只需要记住*nix中有读写和执行权限。您不需要在任何脚本文件中具有执行权限,但所有文件夹都必须具有执行权限。这将使您拥有读取和写入权限。您需要对所有文件和文件夹拥有读取权限。您只需要对需要由web服务器更改的文件夹和文件具有写入权限。基本上,您需要临时文件夹的读写和执行权限,如果您使用文件上传,则需要存储文件的文件夹。您可能只需要对需要由web服务器更改的文件具有写入权限(对于简单的网站,这些权限可能不存在)。