CentOS7用户不继承组权限

CentOS7用户不继承组权限

我一直在关注https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-on-centos-7(以及所有先决条件教程)在我的 CentOS7 新服务器上设置 wordpress。到目前为止,一切运行正常

sudo chown -R apache:apache /var/www/html/*

我理解上述命令将所有权分配给 apache 用户和组。不过,通常情况下,我使用自己的myuser帐户通过 putty 和 Filezilla 进行连接,并希望为该帐户启用权限。

因此,除了上述命令之外,我还将其添加myuserapache组并注销并重新登录,但是当我尝试在 html 文件夹中执行 CRUD 操作时,我仍然收到权限被拒绝的错误消息。但是,如果我提升命令,sudo它们就会起作用,所以我有点困惑如何允许帐户myuser执行文件操作。有什么想法吗?

答案1

您需要检查所有权、权限和 selinux 上下文

所有权 - 听起来您说对了。CentOS7 上的所有者:组应该是 apache:apache。对于您的用户,您必须将 apache 添加为补充组。您可以使用 进行检查id myuser,如果 apache 没有出现在组列表中,则运行usermod -a -G apache myuser

权限 - 它们被列为 rwxrwxrwx。中间的 rwx 组是重要的部分,因为它通过组控制访问(所以对 myuser 来说很重要)。您可能只需要读/写权限,因此可能chmod -R 664 directoryname就足够了(对 apache 用户和组来说是读/写,对其他所有人都是只读)。您可以使用 检查权限ls -l

注意:WordPress 通常包含一个隐藏的“.htaccess”文件,您需要手动将 chmod 应用于该文件以及任何其他隐藏文件,因为递归 chmod/chown 将跳过它们。

SELinux 上下文 - 您可以使用 进行检查ls -Z。要关闭 SELinux 强制执行,您可以运行setenforce 0- 这对于调试 SELinux 是否是罪魁祸首很有用,但是您应该在使用 完成测试后将其重新打开setenforce 1。如果 SELinux 是问题所在,那么您可能需要做的是使用类似以下内容更改文件的上下文chcon -R -t httpd_sys_rw_content_t directoryname

注意:递归 chcon 还将跳过隐藏文件(任何以“。”开头的文件)

附注:如果您使用符号链接,则应确保链接目录和实际符号链接本身都具有适当的所有权/权限。要使用 chmod / chown 定位符号链接,请使用标志-h,如果定位目录,请确保尾部斜杠不存在(例如,/var/www/html/linked_dirand not /var/www/html/linked_dir/- 如果使用制表符补全,请小心,因为它会自动添加尾部斜杠)

相关内容