有人可以解释一下关于Unix文件夹的权限和安全吗?

为什么我会将文件夹权限更改为755或777?

我读它意味着读写和执行,但我想知道,任何人都可以窃取取决于这些权限的PHP代码?

谢谢。

每个文件或文件夹都有一个用户所有者和一个组所有者。 在文件上执行ls -l将显示当前所有者是谁。 “所有者”是/ etc / passwd中的某个用户,该组是/ etc / groups中的某个组,而其他则代表其他所有组。

权限号码中的三位数字表示用户,组和“其他”的权限。

所以755意味着:

user=7 group=5 other=5 

一个文件可以具有读取权限,写入权限和执行权限。

读取= 4写入= 2执行= 1

它们实际上是它们听起来像,读取允许您读取文件的内容,写入允许您编辑文件。 运行脚本需要执行,文件夹允许访问它们。

通过添加它们,您可以获得许可号码。 在755的情况下:

 User: read(4)+write(2)+execute(1)= 7 Group: read(4)+execute(1)=5 Other: read(4)+execute(1)=5 

您需要在文件夹上input755,因为访问您网站的互联网用户将进入“其他”类别,为了访问服务器上的文件夹(以及该文件夹内的任何脚本),他们需要能够进入该文件夹,所以他们需要执行权限。

777通常不是一个好主意,用这种方式想想..你想要其他用户能够编辑你的服务器上的东西吗?

关于权限的知识还有很多,查看这个链接了解更多信息。

至于窃取PHP代码,您的networking服务器应该自动提供任何带有.php句柄的文件作为PHP脚本,而不会将PHP显示给用户。 但是,如果您的脚本的名称不是由您的networking服务器处理,那么如果您的networking服务器用户有权读取它,它将显示为文本。

如果您正在讨论内部用户通过terminal窃取代码,那么您可以删除除Web服务器以外的任何人的读取权限。

755是八进制的111-101-101二进制,这意味着…

 User | Group | Others ========================== Read | Red | Read Write | - | - Execute | Execute | Execute 

所以只有用户可以write这个文件。 777允许用户,组和其他人写入这个文件,这通常是不受限制的。

当然 – 如果他们能读懂,那么他们就可以“看到”。

应用程序保护其代码的方法有几种。 这一切都是特定应用程序的 ,任何深入处理都应该被引用到应用程序编码器中。

  • 文件系统权限

只是说“没有人能看到这些文件”,这很容易。 但是,至less需要您的Web服务器能够读取这些文件,并且可以为其提供服务。 php可以被web服务器执行,所以需要权限7.假设你是以Web服务器运行的用户身份login的,你将得到755中的7个。

其他人必须能够确定他们想要什么文件,所以他们需要能够看到他们。 他们(取决于应用程序)可能需要能够读取文件,所以Web服务器可以处理它。

  • 代码级保护

PHP代码可以用几种方法查看。 在旧时代,你不得不在页面的某个地方放一个die()命令,所以如果人们通过分裂的方式来实现,那么他们应该不会显示顽皮的比特。

要么通过build立这个代码,通过build立networking服务器来做到这一点,或者通过做这两个,你可以保持不必要的眼睛。

  • 应用级保护

任何代码都可能被破坏,所以让不好的用户出门,让好用户进入他们应该的地方是非常重要的。

有几个有趣的权限组合:

  • /tmp通常是模式1777 – 每个人都可以在那里创build文件,但是“粘性位”意味着只有文件的所有者被允许删除它。
  • 有些人在他们的主目录中保留一个incoming目录,让其他人将文件放入。 这样的目录通常会得到一个733的模式,所以每个人都可以进入目录并在那里创build新的文件,但不知道哪些文件存在。
  • 如果你有一个带有用户主页的public_html目录,但不希望其他人查看你的主目录,那么你将使用711来允许所有人进入目录并从那里引用文件,但是不会列出目录内容或添加文件(请注意,如果您知道文件的名称并且有权访问它,则可以这样做)。