无法访问我所属群组的目录

无法访问我所属群组的目录

在我的网络服务器上,我有一个具有权限drwxrwxr--和用户:组的目录“www” root:www-data,以便 Apache 可以访问它。

现在我已将我的帐户添加到 www-data 组

sudo usermod -g www-data myuser

如果我groups这样做,那么www-data它就在其中,但是当我尝试简单地通过 cd 进入它时,我得到“权限被拒绝”的信息。

如果我将用户更改为“myuser”或将组设置为我所属的其他组,我就可以进入。

我是否遗漏了什么?

答案1

您的进程在登录时设置了其组列表,因此您需要再次登录才能使更改生效。

我还建议您将其添加www-data为补充组而不是主要组(主要组设置为仅您是其成员的组)。您应该能够使用以下命令执行此操作:

# Reset to your original primary group
sudo usermod -g myuser myuser
# Add an extra supplementary group
sudo usermod --append -G www-data group

如果您希望您创建的文件可由组内的其他成员读取www-data,请相应地调整您的 umask:

umask 002

由于您的主要群组成员身份是个人群组,因此这不会影响您创建的文件的安全性。

还值得在setgid您将在其中创建文件的目录中设置位:这将导致文件继承父目录的组所有权:

chmod g+s www/

答案2

对我来说,这是导致此错误的另一件事

具有两个不同 UID 的同一用户名

我在本地配置了用户“apache”,其 UID=123,在 NIS 目录中也配置了相同的名称(“apache”),但 UID=456。根据启动顺序和服务依赖性,本地用户可能先于 NIS 用户使用。这也意味着,当您显示用户名时,这会造成混淆,两者都将显示为“apache”。只有当您查看数字 UID 时(例如,通过执行此操作,ls -ln您才会看到差异。示例: [root@mymachine]# ls -l drwxr-x--- 4 apache ggg1 88 May 31 17:12 file1 drwxr-x--- 4 apache ppp2 88 May 31 17:12 file2 查看 file2 的 UID 是否不同(456 而不是 123): [root@mymachine]# ls -ln drwxr-x--- 4 123 48 88 May 31 17:12 file1 drwxr-x--- 4 456 48 88 May 31 17:12 file2

Apache 配置中定义的不同组

我遇到的另一个问题是用户不匹配和由此导致的权限错误,当时我使用组“httpd”限制对文件的访问。这是用户“apache”的主要组(使用id或显示)Apache 以 root 身份启动,然后切换到配置的用户并放弃权限。切换到的用户由参数getent定义。但问题在于 - 进程将按原样运行的组 (GID)/etc/httpd/conf/httpd.confUser不是该用户的主要组。该组在同一配置文件中通过参数定义Group

所以就我的情况来说(/etc/httpd/conf/httpd.conf): User apache Group apache

并且目录被授予这样的访问权限: drwxr-x--- 4 someuser httpd 88 May 31 17:12 mydir

因为 httpd(GID=444)是该用户的主要组: [root@somemachine]# id apache uid=48(apache) gid=444(httpd) groups=444(httpd)

这导致我花了一些时间进行调试,直到我意识到Group配置文件中是“apache”而不是“httpd”。

错误来自/var/log/httpd/错误日志 [Fri May 31 17:13:40.070343 2019] [authz_core:debug] [pid 2527] mod_authz_core.c(809): [client 11.22.32.21:53824] AH01626: authorization result of Require all granted: granted [Fri May 31 17:13:40.070367 2019] [authz_core:debug] [pid 2527] mod_authz_core.c(809): [client 11.22.32.21:53824] AH01626: authorization result of <RequireAny>: granted [Fri May 31 17:13:40.070396 2019] [core:error] [pid 2527] (13)Permission denied: [client 11.22.32.21:53824] AH00132: file permissions deny server access: /var/www/html/somedir/otherdir/css/file1.txt

我希望这有帮助。

答案3

要将您的用户名添加到群组:

sudo usermod --append -G groupname username

要在不注销/登录的情况下刷新您的登录权限:

su - $USER

相关内容