Можно настроить каталог так, чтобы файлы, созданные в нем, принадлежали конкретной группе независимо от эффективного идентификатора группы процесса, который создает их. Это называют семантикой BSD, и необходимо установить бит SGID, чтобы каталог включил его:
chgrp domain /var/www/domain
chmod g+s /var/www/domain
Это не изменяет группу файлов и каталогов уже в /var/www/domain
, необходимо будет заботиться о том вручную (например, использование -R
с chgrp
выше). Обратите внимание, что все подкаталоги, впоследствии созданные в каталоге, также наследуют SGID, автоматически включая семантику BSD для помощников директора также.
Та же семантика не возможна для владельца, все же.
Если необходимо достигнуть этого и для владельца и для группы, вероятно, необходимо удостовериться, что код, который создает файлы под /var/www/domain
выполнения с эффективным пользователем domain
и эффективная группа domain
. Можно использовать sudo
сделать это:
sudo -u domain -g domain your_command
Если domain
основная группа пользователя domain
, следующее будет достаточно
sudo -u domain your_command
Так как это решение легко заботится и о владельце и о группе, там не потребность в семантике BSD.
Если Вы не хотите изменять эффективного пользователя и группу процесса, который создает файлы (например, потому что это - большой сервер, выполняющий много других несвязанных функций), Вы, возможно, должны воплотить часть функциональности, которая создает файлы в отдельный процесс, эффективный UID которого и GID могут быть изменены соответственно, или можно использовать семантику BSD и попытаться достигнуть конечной цели путем надежды только на группу.
www-admin
. Большую часть времени я работаю над различными папками и файлами в системе. Я не могу сделатьsudo -u domain -g domain
для каждого файла в папке. Таким образом, если я понимаю это правильно нет никакого способа сделать это. Я не делаю undrstand, что Вы имеете в виду с Вами, возможно, должен воплотить часть функциональности, которая создает файлы – Saif Bechan 24.12.2011, 07:14www-admin
из-за соображений безопасности. Сделать это более сложным пользовательdomain
не имеет никакого разрешения входа в систему. – Saif Bechan 26.12.2011, 07:01