RedHat 8权限管理问题:SGID目录下组成员访问文件提示权限被拒
RHCSA权限拒绝问题排查与解决方案
问题根因1:父目录/data权限拦截
Linux的路径访问规则要求用户对路径上的每一级父目录都拥有*执行(x)*权限,你当前的配置存在以下疏漏:
- 仅给子目录
/data/sales设置了属组为sales,未修改父目录/data的属组 - 你执行
chmod -R 770 /data后,/data的权限为770,默认属组为root,sales1不属于root组,没有/data的执行权限,无法进入该目录,自然无法访问子目录下的文件
修复方法
二选一即可:
- 如果仅允许sales组成员访问
/data下的所有内容:执行chown :sales /data - 如果允许所有用户进入
/data但仅允许属主和属组修改内容:执行chmod o+x /data(仅增加执行权限,不会开放写权限,满足你禁止其他用户在/data下创建内容的要求)
问题根因2:用户组配置未即时生效
执行usermod -aG sales sales1修改用户组后,新的组配置只会对新创建的登录会话生效,如果你在执行usermod命令前已经有sales1的登录会话,即使使用su -切换也可能出现组未加载的情况。
验证与修复
- 切换到sales1用户后执行
id命令,查看输出的用户组列表中是否包含sales组,若未包含则属于该问题 - 完全退出当前所有sales1的会话,重新登录即可生效,RHCSA考试环境下也可以直接重启主机验证
快速验证方法
切换到sales1用户后执行cd /data,如果提示权限拒绝则属于父目录权限问题,优先修复该配置即可。
内容的提问来源于stack exchange,提问作者subhrajit1891
相关产品推荐
相关产品推荐

