У меня есть веб-сервер, и я загружаю файлы с помощью FTP-клиента. По этой причине владелец и группа файла берутся у пользователя, использованного при загрузке.
Теперь мне нужно сделать этот файл доступным для записи веб-серверу (apache / apache).
Один из способов - просто изменить владельца и группу загруженного файла на apache / apache, но таким образом я не могу изменить файл с помощью учетной записи FTP. Другой способ - дать файлу 777 разрешений.
Оба подхода кажутся не очень профессиональными и немного рискованными. Есть ли другие варианты? В Windows я могу просто добавить в файл другого пользователя. Можно ли что-то подобное сделать с Linux?
Вы можете изменить группу файлов:
groupadd webusers
usermod -aG webusers the_user_name
chgrp -R webusers the_directory
chmod g+s the_directory
Если это дистрибутив на основе RedHat, вы можете использовать setfacl для этого без группы и настроить это по умолчанию:
setfacl -R -m user:the_username:rwx directory_name
setfacl -d -R -m user:the_username:rwx directory_name
Разрешить группе пользователей поддерживать набор файлов - это одно: вы просто устанавливаете добавление их в общую группу и устанавливаете владение существующими файлами и каталогами для этой группы, а затем устанавливаете бит липкой группы для любых каталогов (впоследствии файлов должны быть добавлены группой как доступные для записи по умолчанию).
Теперь мне нужно сделать этот файл доступным для записи веб-серверу.
Вы должны быть очень осторожны и очень избирательны в том, какие файлы вы делаете доступными для записи на веб-сервере, чтобы избежать проблем с внедрением кода - НЕ добавляйте uid веб-сервера в группу пользователей, определенную выше - держите эти файлы полностью отделенными от другого контента на веб-сайте ( т.е. в отдельном каталоге со всеми отключенными cgi / php и т. д.), предпочтительно полностью вне корня документа. Большинство FTP-серверов позволяют вам устанавливать разрешения на загрузку (0666 для файлов, 0777 для каталогов) и / или устанавливать другой липкий бит для каталогов.
С.
для работы setfacl раздел должен быть смонтирован с опцией acl