典型共享 Linux Web 主机上的权限

Jan*_*ieT 5 linux webserver shared-hosting file-permissions

我试图了解典型共享 Linux 网络托管帐户的文件权限。我知道如何为文件或目录的 OWNER GROUP 和 PUBLIC 实体设置 rwx 权限。我不太清楚的是,访问权限通常会映射到哪里?我猜是:

用户权限会影响什么......呃......这里不确定
GROUP权限会影响服务器上运行的 PHP 或其他脚本可以做什么
其他(有时称为 PUBLIC 或 WORLD?)权限会影响网站的 UA访客可以做

任何人都可以更正、确认或扩展我对此的理解吗?

澄清:

如果我想允许在服务器上运行的 PHP 脚本写入文件的权限,该权限是在 USER、GROUP 还是 OTHER 中指定的?如果我想拒绝网站访问者的浏览器查看目录的内容,是否会在目录的 USER、GROUP 或 OTHER 中指定该权限?

Man*_*nwe 3

让我们先指定一些关键字。

FTPUSER   = you with your ftp client
WWWDAEMON = program (servers) that's responsible for processing your web pages and scripts 
WWWUSER   = user as which the WWWDAEMON processes your pages
BROWSER   = Someone looking at your website with a browser
FILES     = files that reside in your www/ftp site
yourgroup = group that your FTPUSER belongs to and WWWUSER does not
Run Code Online (Sandbox Code Playgroud)

您可以使用 ftp 程序以 FTPUSER 身份访问您的文件

-rwxr-xr-x  2 FTPUSER yourgroup   72 2012-01-18 13:56 somescript.php
Run Code Online (Sandbox Code Playgroud)

现在..因为 WWWDAEMON 用户 WWWUSER 不是您 (FTPUSER),所以当它尝试read您的脚本时,它会尊重其他权限。(有些托管站点以您的 FTPUSER 身份运行您的脚本)。删除其他读取和执行权限将阻止使用 somescript.php

# this scipt is unusable trough a browser
-rwxr-x---  2 FTPUSER yourgroup   72 2012-01-18 13:56 somescript.php
Run Code Online (Sandbox Code Playgroud)

创建具有全局可写权限的目录将允许您的脚本在那里写入,但除非您以某种方式保护该目录(例如使用 .htaccess 或将其放在 www 目录之外),否则它也可能意味着浏览器可以直接访问这些文件,因为:

BROWSER contacts WWWDAEMON which runs as WWWUSER so 
BROWSER can see everything processed by WWWDAEMON that the WWWUSER can. 
Run Code Online (Sandbox Code Playgroud)

已处理还意味着 WWWDAEMON 也尊重 .htaccess 或类似于块访问。

建议创建 sayphpwritedir并赋予其 a+rwx 权限。在那里添加.htaccess文件(如果您的托管服务允许)

deny from all
Run Code Online (Sandbox Code Playgroud)

这样,您以 WWWUSER 身份运行的脚本仍然可以使用该目录,但 WWWDAEMON 将阻止任何浏览器对其进行访问。