允许第二个用户访问文件夹

允许第二个用户访问文件夹

用例:

我有两个用户nginxnodejs我想运行一个 nginx 服务器来提供静态文件,这些文件是由 nodejs 用户(来自git pull)创建的。

问题:

我注意到,当我第一次尝试时,nginx 日志中会出现“打开文件时权限被拒绝”的信息。我所做的就是将用户添加nginxnodejs组(也是 nodejs 用户的组)。我通过运行(以 nginx 用户身份)确认 nginx 用户在这个组中groups

但是这仍然不起作用。因此我以nginx用户身份登录并尝试访问包含它应该提供的资产的文件夹:

[nginx@m5465 home]$ cd nodejs
bash: cd: nodejs: Permission denied

文件夹权限:

在此处输入图片描述

问题:

我如何授予 nginx 用户对所需文件夹及其文件的读取权限(/home/nodejs/projectname/wwwroot/)/我做错了什么?

答案1

[nginx@m5465 home]$ cd nodejs
bash: cd: nodejs: 权限被拒绝

从您的图像来看,nodejs 目录的权限是rwxr------。为了能够遍历目录结构,进程需要具有x(遍历)允许在某种程度上。您的组权限太严格。您需要x在组级别添加到目录中,例如

chmod g+x nodejs.

您需要对 nginx 需要遍历的每个目录执行此操作。

由于您使用的是 CentOS 系统,因此您可能还遇到了 SELinux 问题。您可以通过查看 /var/log/audut/audit.log 查找拒绝消息来确认这一点。要确认 SELinux 是否导致问题,您可以暂时将其置于宽容模式。

setenforce 0

如果您的行动现在有效,则证明这一点,您需要进行适当的更改。这可能很简单,例如启用httpd_enable_homedirs(但这可能会泄露您不想泄露的信息),也可能更复杂但更不公开。

相关内容