我无法访问目录


10

在我的Web服务器上,我有一个目录'www',该目录具有权限drwxrwxr--和user:group,root:www-data以便Apache可以访问它。

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

sudo usermod -g www-data myuser

如果我这样做,groups那么www-data它们就在其中,但是当我尝试简单地将其插入cd时,会显示“权限被拒绝”。

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

我想念什么吗?

Answers:


14

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

我还建议您添加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/

1
重新登录就可以了,太愚蠢了。也非常有用serverfault.com/questions/6895/...
dazz

感谢您提到Dazz。我从来不明白为什么xD对我不起作用。现在我可以安息了。
2014年

0

对我而言,导致此错误的原因与众不同

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

我在本地用UID = 123配置了用户“ apache”,并在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或显示getent)Apache以root身份启动,然后切换到配置的用户并放弃权限。切换到的用户/etc/httpd/conf/httpd.confUser参数定义。但是,这是问题所在-进程将作为其运行的组(GID)不是该用户的主要组。该组通过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 / error_log的错误 [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

我希望这有帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.