/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 中为他们创建一个组。
如果我想要以下设置怎么办:...