即使是 root 用户,也没有权限访问 /var/www/ 文件夹

即使是 root 用户,也没有权限访问 /var/www/ 文件夹

/var/www/mywebsite我目前正尝试使用具有 root 权限且属于“root”组的用户“exampleadmin”通过 sftp修改内容。

当我尝试通过 SFTP 添加文件或目录时,收到错误消息:permission denied。到目前为止,我还不完全理解为什么,因为我的用户应该具有 root 访问权限。

/var/www我使用命令列出了文件夹内容ls -la,并得到了以下结果:

drwxr-xr-x  4 root root 4096 May  6 10:00 .  
drwxr-xr-x 14 root root 4096 May  6 07:59 ..  
drwxr-xr-x  3 root root 4096 May  6 09:49 html  
drwxr-xr-x  2 root root 4096 May  6 10:00 mywebpage  

现在我有几个关于权限的问题,但我还没有找到答案:

  • 如果我更改文件夹/文件的所有者或组,“根”所有者/组是否会被删除,这意味着他们无法再访问?

  • 是否可以允许多个组和/或用户特定权限(例如在 Windows 中)或者我只能分配一个所有者和一个组?

  • 如果我想进行以下设置该怎么办:

    • 具有完全访问权限的用户 1
    • 具有读取/执行权限的用户 2
    • 用户 3 拒绝
    • 其他只读

如果是这种情况,则必须有一个在服务器上设置 apache 文件权限的最佳实践。

答案1

Apache 和类似的服务器程序通常不会由root用户运行,因为如果它们包含错误,可能会导致安全漏洞。

这是推荐用于网页(未经 Apache 修改)归所有人所有root,并且每个人都有读取权限,但不允许服务器调整内容。

Apache 通常在用户 下运行www-data。要允许对 进行写访问/var/www,您应该更改相关数据的所有权。您应该限制对您真正需要使用服务器进行修改的文件夹的访问。

sudo chown -R www-data:www-data /var/www/<relevant subfolder>

对于您的具体问题:

如果我更改文件夹/文件的所有者或组,“根”所有者/组是否会被删除,这意味着他们无法再访问?

只要您保留所有人的读取权限,那么所有人都可以读取它们。所有权root通常是最严格的。

是否可以允许多个组和/或用户特定权限(例如在 Windows 中)或者我只能分配一个所有者和一个组?

如果您需要多个用户拥有特定权限,则必须在 Linux 中为他们创建一个组。

如果我想要以下设置怎么办:...

这是一个非常具体的设置,你应该提出另一个问题如果这不仅仅是一个理论问题。你可能需要了解一些关于访问控制列表第一的。

相关内容