【问题标题】:Giving Ownership/Rights properly on Ubuntu/Linux在 Ubuntu/Linux 上正确授予所有权/权利
【发布时间】:2013-07-15 15:53:05
【问题描述】:

我目前在 Zend Server 上授予权利/所有权方面遇到了很多问题。我总是做一个

chown user -R path/to/file

将 777 给 fodders 并归档,然后最终得到很多 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服务器有关。

【问题讨论】:

  • -r 将删除读取权限,您确定您的意思不是 -R 用于递归吗? -r 和 -R 不是一回事
  • 没有。守护进程与 zend 无关。
  • @Anigel 是的,我的意思是递归,感谢 Marc B 我所说的新问题实际上是由于无法创建临时文件,我找到了一个日志。因此,可能是由于权限更改导致了此问题。我给了权限,没有删除。不知道为什么会这样。 chown 是否只将所有权授予一个人?
  • PHP 警告:文件上传错误 - 无法在 Unknown on line 0 示例中创建临时文件,我不知道它试图在哪个路径中创建文件,我该如何调试?
  • 您可以使用sys_get_temp_dir() 列出使用的临时目录。参考Here

标签: php linux ubuntu zend-server


【解决方案1】:

你不应该让一个不是可执行 shell 脚本的文件可执行(位 0 设置)(CGI 脚本,如 PHP 不需要执行权限),从安全角度来看,将其设置为 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 文件(这可以是通过网络服务器绕过,但取决于服务器配置)。

【讨论】:

  • 有多少用户可以拥有一个文件夹,对吗?但是我的 zend 服务器无法写入日志等。它似乎有权限问题。我不确定zend是否是用户本身?如果我给 zend 所有权,我的 ubuntu 用户和 root 用户呢?他们会失去所有权吗?特别是如果它是 755 只有一个人会写?我对吗? ubuntu/Zend/root
  • 一个用户可以在多个组中,查看用户所在的组运行id username。诸如 apache 之类的进程通常在以“root”身份运行时打开日志文件,然后更改其 uid,这就是为什么即使不是以用户身份运行也可以访问它们的原因。
【解决方案2】:

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

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

【讨论】:

  • 只是为了检查,如果我执行 chown ,它是否会删除其他拥有该文件夹的用户?
  • Root = Owner, Ubuntu(user) = group?
  • 您对每个文件夹/文件所有者、组、所有用户拥有三种权限。因此,如果您更改所有者,新所有者将获得应用于前所有者的权限。检查这个Understanding Linux File Permissions
  • 如果你执行ls -l,第三列是所有者,第四列是组,第一列是每个人的权限。要解释第一列,第一个字符是文件/目录/链接规范,接下来的 3 个字符是所有者的权限,接下来的 3 个是组,最后 3 个是所有其他字符。
  • 你可以使用usermod -a -G toGroup userLink
猜你喜欢
  • 2015-02-10
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 2013-04-30
  • 2020-11-22
  • 2014-02-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多