Ubuntu server (Nginx 报错500或者报301是怎么个)- nginx: “/root/index.html“ forbidden (13: Permission denied) -

解决nginx返回500 Internal Server Error

ubuntu 系统Nginx默认是 www-data用户执行的

# root @ www-dongqianshan-com in /home/kevin/website on git:master x [19:12:40]
$ cat /etc/nginx/nginx.conf
user www-data;# 已什么用户启动Nginx工作进程
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
...省略若干行...

然后打包的build root 权限不够
在这里插入图片描述
在这里插入图片描述

## 改变目录下所有文件属主和属组为Nginx 用户
sudo chown -R  www-data:www-data build

解决改变属主和属组后nginx仍然返回301 Internal Server Error

在这里插入图片描述


2024/04/16 03:08:33 [crit] 903097#903097: *1356 stat() "/home/kevin/website/build/index.html" failed (13: Permission denied), client: 83.97.73.245, server: dongqianshan.com, request: "GET /?XDEBUG_SESSION_START=phpstorm HTTP/1.1", host: "150.158.1111", referrer: "http://150.158111:80/?XDEBUG_SESSION_START=phpstorm"

是因为开启 AppArmor 这个鬼东西

sudo systemctl status apparmor.service  

在这里插入图片描述

AppArmor 是一个 Linux 内核安全模块,用于实施操作系统级别的安全策略,以保护系统和应用程序免受潜在的安全威胁。它通过限制程序对文件系统、网络和其他系统资源的访问,提供了额外的安全层。

具体来说,AppArmor 可以通过配置应用程序的访问规则,限制它们能够访问的文件、目录、网络端口等资源,以防止恶意行为或潜在的安全漏洞。这样可以降低系统被攻击或受到损害的风险。

AppArmor 的工作原理是基于安全策略文件(profiles),这些文件定义了应用程序的权限和访问规则。这些规则可以针对特定的应用程序进行定制,以适应其运行环境和安全需求。

总的来说,AppArmor 是 Linux 系统中一种用于实施安全访问控制的工具,可以提高系统的安全性并保护系统和应用程序免受潜在的安全威胁。

在这里插入图片描述
在这里插入图片描述

参考文献

连接 >forbidden (13: Permission denied) - stackoverflow.com/
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值