Эффективный UID / GID - это UID / GID, который используется программным обеспечением прямо сейчас (например, программное обеспечение, запущенное root, может изменить свой UID / GID на daemon: daemon, поэтому эффективный UID / GID также изменяется. Реальный UID/ GID - это UID / GID владельца процесса, и он никогда не изменяется после запуска процесса.
Таким образом, вызов file_exists выполняется с разрешениями владельца процесса