Извините за основной вопрос - я разработчик .NET и не имею большого опыта работы с LAMP установками.
У меня есть сайт на PHP, который позволяет загружать файлы в определенную папку. Мне сказали, что эта папка должна принадлежать пользователю веб-сервера, чтобы процесс загрузки работал, поэтому я создал папку, а затем установил соответствующие разрешения:
chown apache:apache -R uploads/
chmod 755 -R uploads/
Единственная проблема теперь заключается в том, что пользователь FTP не может изменять загруженные файлы вообще.
Есть ли параметр разрешения, который позволит мне загружать файлы, а затем изменять их позже под пользователем, отличным от пользователя веб-сервера?
Вы можете создать новую группу, членами которой будут пользователь apache и пользователь FTP, а затем установить разрешение на папку upload 775. Это даст возможность пользователям apache и FTP писать в файлы в папке, но не позволит всем остальным изменять их.
Я пошел бы с Ryan' s отвечают, хотите ли Вы действительно сделать это.
В целом на *отклоняют окружающую среду, Вы всегда хотите допустить ошибку при выдаче как можно меньших разрешений.
9 раз из 10, 755 идеальное разрешение для этого - поскольку единственный пользователь со способностью изменить файлы будет webserver. Измените это на 775 с Вашим пользователем ftp в группе, если Вы ДЕЙСТВИТЕЛЬНО должны изменить это.
С тех пор you' ре, в новинку для php Вашим собственным приемом, here' s полезная связь для улучшения безопасности Вашего обслуживания закачки: 'move_uploaded_file'
Я поддержал бы идею создать группу ftp, которая будет иметь права загрузить. Однако я don' t думают, что необходимо дать 775 разрешений. 7 обозначает прочитанный, напишите, выполните. Обычно Вы хотите позволить определенным группам читать и писать, но в зависимости от случая, чтобы выполнить может не быть необходимым.
То, что важно, - то, что 'апачский' пользователь и группа должны иметь минимальный 'прочитанный' доступ и в некоторых случаях 'выполнить' доступ. Для остальных Вы можете дать '0' доступ.
Это - самое безопасное урегулирование.
Помните также 'CHOWN' или 'chgrp' Ваша папка веб-сайта. Попробуйте 'myusername# показанный-R myusername: _ www закачки
На основе ответа от '@Ryan Ahearn', следующее - то, что я сделал на 'Ubuntu' 16.04, чтобы создать пользователя 'фронт', у которого только есть разрешение для nginx' s веб-директор '/var/www/html'.
Шаги:
< pre> * предварительные шаги: * основной готовятся сервера, * создайте пользователя ' dev' который будет владельцем "/var/www/html" * * установите nginx, * * * создайте пользователя ' front' sudo useradd-d/home/front-s/bin/bash фронт sudo passwd фронт# создайте домашнюю папку, если не существует уже,
sudo mkdir/home/front
# владелец набора новой домашней папки,
sudo, показанный-R front:front/home/front
# переключитесь на пользователя,
su - фронт
# скопируйте .bashrc, если не существует уже,
CP/etc/skel/.bashrc ~front/
CP/etc/skel/.profile ~front/
# позвольте цвет,
vi ~front/.bashrc
# не прокомментируйте начало строки с " force_color_prompt"
# выходной пользователь
выход