无法统计“方向”,权限设置后权限被拒绝

无法统计“方向”,权限设置后权限被拒绝

请耐心等待,我对 Linux 还不熟悉。我有一个 Web 服务器,正在尝试访问用户帐户下的公共文件夹。

问题

我正在运行一个 nginx 服务器,该服务器正在尝试访问应用程序共享公共文件夹内的维护页面并收到权限被拒绝错误。

基本

  • 应用程序用户:quotr和主要组:app
  • Web 服务器用户:ubuntu和主要组:www-data
  • 应用程序主页:/home/quotr/app
  • 应用程序共享公共文件夹:/home/quotr/app/shared
  • 维护文件的绝对路径:/home/quotr/app/shared/public/system/maintenance.html

群组:

我最初只是将www-data群组添加到群组中app,希望能够解决这个问题。当这不起作用时,我也以另一种方式添加了群组。

www-data:x:33:apache,quotr
ubuntu:x:1000:
app:x:1001:quotr,ubuntu,www-data

所有权

整个应用程序树的所有权属于。当我开始收到权限问题时,我将维护页面 ( )路径部分的quotr:app所有权更改为。public/system/maintenance.html/home/quotr/app/shared/public/system/maintenance.htmlquotr:www-data

权限

从以下开始/var/www/quotr-public并逐步向下:

# ls -la
drwxr-xr-x 4 quotr www-data 4096 Mar  3 21:49 .
drwxr-xr-x 5 quotr www-data 4096 Mar  3 21:49 ..
drwxr-xr-x 5 quotr www-data 4096 Mar  4 16:00 assets
drwxr-xr-x 3 quotr www-data 4096 Mar  4 19:03 system

# cd to system ls -la
drwxr-xr-x 3 quotr www-data 4096 Mar  4 19:03 .
drwxr-xr-x 4 quotr www-data 4096 Mar  3 21:49 ..
-rwxr-x--- 1 quotr www-data 3004 Mar  4 19:03 maintenance.html
drwxr-xr-x 3 quotr www-data 4096 Mar  3 21:51 pictures

测试

我正在使用以下命令测试权限:

sudo -u www-data stat /home/quotr/app/shared/public/

这导致权限被拒绝。

最后一搏

作为最后的尝试,我创建了以下符号链接:

quotr-public -> /home/quotr/app/shared/public/

我可以成功运行以下命令但无法更深入地运行:

sudo -u www-data stat /var/www/quotr-public

我现在完全不知道问题出在哪里。任何指导都将不胜感激。

编辑1

我继续对权限进行修改,因此这些可能会有一点不同,但请在下面找到请求的输出。'namei -lx /home/quotr/app/shared/public/system/maintenance.html' 的输出

Drwxr-xr-x root  root     /
drwxr-xr-x root  root     home
drwx------ quotr app      quotr
drwxr-xr-x quotr app      app
drwxr-xr-x quotr www-data shared
drwxr-xr-x quotr www-data public
drwxr-xr-x quotr www-data system
-rw-r--r-- quotr app      maintenance.html

‘namei -lx /var/www/quotr-public/system/maintenance.html’ 的输出

Drwxr-xr-x root   root     /
drwxr-xr-x root   root     var
drwxrwsr-x root   www-data www
lrwxrwxrwx ubuntu www-data quotr-public -> /home/quotr/app/shared/public/
Drwxr-xr-x root   root       /
drwxr-xr-x root   root       home
drwx------ quotr  app        quotr
drwxr-xr-x quotr  app        app
drwxr-xr-x quotr  www-data   shared
drwxr-xr-x quotr  www-data   public
drwxr-xr-x quotr  www-data system
-rw-r--r-- quotr  app      maintenance.html

谢谢。

答案1

我认为在 muru 的帮助下您几乎已经做到了这一点。树中的所有文件夹都需要可由 www-data 执行。由于 quotr 文件夹归 app 组所有,而 www-data 位于 app 组中,因此最好将 exec 授予该组而不是其他组:

chmod g+x quotr

顺便提一句...我已经用 nginx 作为 www-data 构建了几个网站。对我来说,效果很好的方法是让 www-data 作为用户和组拥有所有内容。然后我将我的用户和其他需要访问 www-data 组的人添加进去。

相关内容