权限检测不通过的根本原因是Oracle安装器严格校验路径归属、环境变量隔离和文件系统权限三项硬性规则,任一不符即报“permission denied”或静默退出;最常见问题是grid与oracle用户的$ORACLE_HOME路径嵌套或共用,如$ORACLE_HOME为$GRID_HOME子目录,或环境变量交叉污染、root.sh扫描的27+路径节点中任一权限/属主/SELinux上下文不匹配。
权限检测不通过,不是用户没加组或密码错了,而是 oracle 安装器在后台严格校验路径归属、环境变量隔离和文件系统权限这三项硬性规则——任一环节没对齐,root.sh 或 gridsetup.sh 就会报模糊的 “permission denied” 或直接退出。
这是最常触发权限拒绝的点。安装器会扫描路径结构,一旦发现 $ORACLE_HOME 是 $GRID_HOME 的子目录(比如 /u01/app/19.3.0/grid/dbhome_1),立刻中止。
$GRID_HOME 必须是独立路径,如 /u01/app/19.3.0/grid,属主为 grid:oinstall
$ORACLE_HOME 必须是另一独立路径,如 /u01/app/oracle/product/19c/dbhome_1,属主为 oracle:oinstall
/u01/app/grid 和 /u01/app/grid/dbhome_1 这类组合ls -ld $GRID_HOME $ORACLE_HOME,确认输出中用户/组名完全匹配,且无软链接指向对方目录安装器会在后台比对每个用户的 shell 环境,哪怕 grid 用户的 PATH 里混入了 oracle 的 $ORACLE_HOME/bin,也会导致 root.sh 校验失败。
grid 用户执行:echo $PATH | grep -v "dbhome",确保不含任何 oracle 用户的 bin 路径oracle 用户执行:echo $ORACLE_BASE,必须是独立路径(如 /u01/app/oracle),不能是 /u01/app/19.3.0/grid 或其子路径.bash_profile 要单独维护:grid 只设 GRID_HOME 和 ORACLE_BASE(可与 oracle 共用同一 ORACLE_BASE);oracle 只设自己的 ORACLE_HOME 和同个 ORACLE_BASE
ORACLE_BASE 可以相同,但必须是真实目录,不能是软链接到对方 home 下root.sh 不是简单改权限,它会扫描 $GRID_HOME 下 27+ 个固定路径节点,并校验属主、权限、SELinux 上下文甚至文件创建时间戳。一处不匹配就中断。
.oracle 隐藏目录、installActions*.log、cfgtoollogs(哪怕为空)、非 grid 用户创建的临时文件cfgtoollogs 目录权限必须是 775,不是 755;.oracle 必须由 grid 创建且属主正确rm -rf $GRID_HOME/.oracle $GRID_HOME/installActions*.log $GRID_HOME/cfgtoollogs,再重新解压 GI 介质这个提示不是权限问题,而是 CVU 主动跳过需要 root 权限的检查项(如 RPM 数据库完整性校验)。它出现在日志里,但不影响安装流程。
INFORMATION PRVG-11250 就跳过,别因此切 root 去跑整个 runcluvfy.sh
-method root,但仅限调试,生产环境不推荐PRVF-7532、PRVE-0405、INS-40915 这类带 ERROR 关键字的条目最容易被忽略的是:路径隔离和环境变量污染这两项,在安装日志里往往不直接报错,而是表现为静默退出或 root.sh 中断后只留一句 “permission denied”。必须逐节点、逐用户、逐路径人工验证,不能依赖自动同步或假设一致。