Извините за основной вопрос - я разработчик .NET и не имею большого опыта работы с настройками LAMP.
У меня есть сайт PHP, который позволит загружать файлы в определенную папку. Мне сказали, что эта папка должна принадлежать пользователю веб-сервера, чтобы процесс загрузки работал, поэтому я создал папку и затем установил права доступа следующим образом:
chown apache:apache -R uploads/
chmod 755 -R uploads/
Единственная проблема сейчас заключается в том, что пользователь FTP не может изменять загруженные файлы вообще.
Есть ли параметр разрешения, который позволит мне по-прежнему загружать файлы, а затем изменять их позже как пользователь, отличный от пользователя веб-сервера?
Вы можете создать новую группу, в которой пользователь apache и пользователь FTP будут являться участниками, а затем сделать разрешение для папки загрузки 775. Это должно дать пользователям apache и FTP возможность записывать файлы в папке, но оставлять всех остальных от их изменения.
Или хотя бы 766.
- читать = 4
- написать = 2
- выполнить = 1
7 = чтение + запись + выполнение
6 = чтение + запись
- первый номер: владелец
- второй номер: группа
- третий номер: другие пользователи
Я добавлю, что если вы используете SELinux, вам нужно убедиться, что тип контекста равен tmp_t. Это можно сделать с помощью утилиты chcon.
chcon -t tmp_t загружает
Я бы пошел с ответом Райана, если вы действительно хотите это сделать.
В целом, в среде * nix вы всегда хотите ошибиться, выдавая как можно меньше разрешений.
9 раз из 10 755 является идеальным разрешением для этого - поскольку единственным пользователем, который может изменять файлы, будет веб-сервер. Измените это на 775 с вашим пользователем ftp в группе, если вам действительно нужно это изменить.
Поскольку вы новичок в php по собственному желанию, вот полезная ссылка для повышения безопасности вашей службы загрузки:
move_uploaded_file
Важно то, что apache
пользователь и группа должны иметь минимальный read
доступ, а в некоторых случаях execute
доступ. В остальном вы можете дать 0
доступ.
Это самая безопасная настройка.
Помните также CHOWN
или chgrp
папку вашего сайта. Пытаться myusername# chown -R myusername:_www uploads
Я бы поддержал идею создания группы ftp, которая будет иметь права на загрузку. Однако я не думаю, что нужно давать разрешение 775. 7 обозначает чтение, запись, выполнение. Обычно вы хотите разрешить определенным группам чтение и запись, но в зависимости от случая выполнение может не потребоваться.
Основываясь на ответе @Ryan Ahearn
ниже, я сделал Ubuntu
16.04, чтобы создать пользователя, front
который имеет разрешение только на веб-каталог nginx /var/www/html
.
шаги:
* предварительные шаги: * базовая подготовка сервера, * создать пользователя 'dev' который будет владельцем "/ var / www / html", * * установить nginx, * * * создать пользователя 'front' sudo useradd -d / home / front -s / bin / bash front sudo passwd front # создать домашнюю папку, если она еще не существует, sudo mkdir / home / front # установить владельца новой домашней папки, sudo chown -R спереди: спереди / дома / спереди # переключиться на пользователя, су - фронт # copy .bashrc, если еще не существует, cp /etc/skel/.bashrc ~ front / cp /etc/skel/.profile ~ front / # включить цвет, vi ~ front / .bashrc # раскомментируйте начало строки с "force_color_prompt", # выход пользователя Выход * * добавить в группу 'dev', sudo usermod -a -G фронт разработчика * сменить владельца веб-каталога, sudo chown -R dev: dev / var / www * изменить разрешение веб-каталога, chmod 775 $ (найти / var / www / html -типа d) chmod 664 $ (найти / var / www / html -type f) * * войдите как «фронт» чтобы группа вступила в силу, * * контрольная работа * * ОК *
chmod u+rwX,go+r theFolder
!