Я нахожусь в $ORACLE_HOME/OPatch
справочнике и когда я печатаю opatch
, то получаю ответ в виде:
-bash: opatch: command not found
Если я это сделаю ./opatch
, то я получу ответ, как:
/bin/sh: ./opatch: Permission denied
ls -l
на OPatch
шоу -rwx--x---
.
Итак, для группыoinstall, он должен иметь право на выполнение и id -g
подтверждает, что пользователь принадлежит кoinstallгруппа.
Так почему же я не могу казнить opatch
в этом случае?
решение1
Похоже, opatch
это скрипт. То есть, это текстовый файл, который начинается с #!
и перечисляет свой интерпретатор (возможно /bin/sh
). Только скомпилированные двоичные файлы (непосредственно исполняемый код) могут быть выполнены без разрешения на чтение. Для всех скриптов, независимо от интерпретатора ( sh
, python
, и т. д.), интерпретатор должен иметь возможность открыть файл, что требует разрешения на чтение и разрешения на выполнение.