Насколько я понимаю:
Когда вы запускаете скрипт из папки stats, запускается процесс этого скрипта. Этот процесс в большинстве случаев имеет идентификатор пользователя и идентификатор группы пользователя, который его запустил (если только биты suid или sgid в исполняемом файле не установлены, то он будет иметь идентификатор пользователя и / или идентификатор группы в файле сценария user / group), Вы можете ввести 'id', чтобы увидеть, с каким идентификатором пользователя и группы вы запускаете скрипт.
Это процесс, который пытается получить доступ к файлу из /home /agent /google.
чтобы получить доступ к файлу в /home /agent /google, процесс должен уметь 1) «выполнять» каталог, 2) читать конкретный файл из этого каталога.
Для каталога, предполагая, что процесс выполняется с userId и groupId, отличными от агента, вам нужен каталог, который должен быть читаемым и исполняемым во всем мире (если нет, вы можете выполнить команду chmod +0005 /home /agent /google).
Чтобы файл мог быть прочитан, вам необходимо обеспечить одно из следующих действий:
- userId(process) - 0 (root) (вы можете запустить свой скрипт как суперпользователь, но обычно это плохая практика)
- userId(процесс) == ownerId (файл) И файл имеет разрешения на чтение для владельца. 'chmod u+r file'
- groupId (процесс) == groupID (файл) И файл имеет разрешения на чтение для группы. (вы можете установить его с помощью 'chmod g+r file'
- Файл имеет права на чтение для всего мира. (вы можете установить его с помощью файла chmod o+r)
Это помогает?