
У меня есть скрипт, который иногда запускается через веб, иногда через командную строку. Когда скрипт запускается через веб, он запускается через пользователя www-data
. Когда он запускается через командную строку, он запускается через пользователя jason
.
Этот скрипт записывает данные в каталог с именем cache
.
- Если я
chown -R jason cache
, я могу запустить скрипт как ,jason
но неwww-data
. Это имеет смысл. - Если я
chown -R www-data cache
, я могу запустить скрипт как ,www-data
но неjason
. Это тоже имеет смысл.
Я попробовал создать группу под названием scripts
, добавить двух своих пользователей, затем chown
ing cache
в scripts
. Я не совсем уверен, как сделать последнюю часть, chown
часть ing. Документация по командам Linux, которую я нашел в сети, для этого поразительно плоха.
Не знаю, объяснил ли я это достаточно хорошо, но надеюсь, понятно, что я пытаюсь сделать. Буду признателен за любые советы.
решение1
Обычно с помощью chown вы делаете:
chown пользователь:группа (файлы)
Это не работает? Можете ли вы проверить и убедиться, что файлы принадлежат группе, и что вторая группа разрешений - не ниже rx?
-rwxr-xr-x 1 user group 44380 2009-02-10 13:10 junk
решение2
Вы можете использоватьchgrp
илиchown
при указании user:group
вместо просто user
.
Вероятно, вы захотите указатьSGID бит, так что владение группой сохраняется при создании. Вы можете сделать это с помощью chmod g+s directory
.
Вам также необходимо убедиться, что для группы установлены биты записи и выполнения, что можно сделать с помощью chmod g+wx
.