Предположим, у меня есть папка:

/home/admin/website.com/stats

Указанная выше папка является admin:admin . У меня есть другая папка в /home/agent/google с chown agent:agent . В этой статистической папке есть скрипт, который читает файл из папки Google. Поэтому я хочу разрешить этой папке статистики доступ к папке Google.

Как я могу это сделать?

2 ответа2

1

Насколько я понимаю:

Когда вы запускаете скрипт из папки stats, запускается процесс этого скрипта. Этот процесс в большинстве случаев имеет идентификатор пользователя и идентификатор группы пользователя, который его запустил (если только биты suid или sgid в исполняемом файле не установлены, то он будет иметь идентификатор пользователя и / или идентификатор группы в файле сценария user / group), Вы можете ввести 'id', чтобы увидеть, с каким идентификатором пользователя и группы вы запускаете скрипт.

Это процесс, который пытается получить доступ к файлу из /home /agent /google. чтобы получить доступ к файлу в /home /agent /google, процесс должен уметь 1) «выполнять» каталог, 2) читать конкретный файл из этого каталога.

Для каталога, предполагая, что процесс выполняется с userId и groupId, отличными от агента, вам нужен каталог, который должен быть читаемым и исполняемым во всем мире (если нет, вы можете выполнить команду chmod +0005 /home /agent /google).

Чтобы файл мог быть прочитан, вам необходимо обеспечить одно из следующих действий:

  1. userId(process) - 0 (root) (вы можете запустить свой скрипт как суперпользователь, но обычно это плохая практика)
  2. userId(процесс) == ownerId (файл) И файл имеет разрешения на чтение для владельца. 'chmod u+r file'
  3. groupId (процесс) == groupID (файл) И файл имеет разрешения на чтение для группы. (вы можете установить его с помощью 'chmod g+r file'
  4. Файл имеет права на чтение для всего мира. (вы можете установить его с помощью файла chmod o+r)

Это помогает?

0

Зависит от того, какой пользователь обращается к файлам. Папка не будет читать файлы из другой папки, пользователь сделает. Пример. Либо это может быть Apache, который будет обращаться к вашим файлам, если вы запускаете скрипт из браузера, либо сам администратор . Для простоты вы можете просто дать разрешение на чтение другим пользователям в каталоге Google -

chmod u+r /home/agent/google

Если файл в папке Google нужно также выполнить, то -

chmod u+rx /home/agent/google

Соответственно измените права доступа для вашего файла также.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .