Форум программистов, компьютерный форум, киберфорум
Наши страницы

Linux

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Amaterino
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 9
#1

Как сделать, чтобы web-сервер видел файлы, загруженные пользователем по ftp? - Linux

05.04.2013, 05:21. Просмотров 1746. Ответов 5
Метки нет (Все метки)

Всем привет,

подскажите плз как сделать так, чтобы при загрузке FTP пользователем в /data/ftp/ права для www-data или group/other были как-нимум read?

дело в том, что каталог /data/ftp/ это Document root для Apache2. И получается на файлы загруженные FTP юзером Permission Denied. FTP юзер себя ставит владельцем, а всем остальным фиг и апач не может доступ к файлам получить.

Пробовал выставлять бит setgid на папку /data/ftp, но при создании файлов в папке ftp, права сверху не наследуются.

делал даже с запасом, вот так:
Bash
1
chmod u+ws,g+ws,o+ws /data/ftp
в результате получаю на папку ftp такие права
Код
drwsrwsrw- www-data:ftpusers
Однако при заливке FTP юзер ставит себя own'ером.
Можно как-то наследование включить или повлиять на такое поведение?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2013, 05:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как сделать, чтобы web-сервер видел файлы, загруженные пользователем по ftp? (Linux):

Как закачать файлы на ftp-сервер? - Bash
Код должен вытаскивать все файлы из папки /home/path/to/public_html/tmp/orders/ и закачивать на ФТП 12.345.67.8.9/server/Share/orders/ У...

FTP сервер vsftpd. Как указать каталог /var/ftp как каталог который нужно открыть при подключении? - RedHat, Fedora Linux
CentOS 5.8, FTP сервер: vsftpd При подключении к FTP с клиентской машины сразу же попадаю в домашний каталог Как сделать так,...

Как автоматически залить файлы на ftp-сервер? - Debian Linux
Собственно сабж. Debian 6. Юзал гугл по теме фтп клиентов но находил только графические клиенты, и не где не было инструкции по...

Как сделать, чтобы каждый пользователь ftp видел только свою папку? - Ubuntu Linux
Всем доброе время суток! У меня возник вопрос Вот я создал папку, создал юзера, создал группу, запихнул юзера в группу, дал юзеру...

Как перевести обращение к ftp-серверу в Интернете на домашний ftp-сервер? - Ubuntu Linux
Сервер LAMP поднимал , но интересует такой вопрос , сделать UPLOAD . Взять сервер на хостинге , а дома поднять HOME сервер . Смысл...

Как сделать, чтобы finger-сервер отвечал на запросы клиента? - Ubuntu Linux
Как поднять под Ubuntu 12.10 сервер finger, чтобы он отвечал на запросы клиента?

5
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
05.04.2013, 06:00 #2
Цитата Сообщение от Amaterino Посмотреть сообщение
дело в том, что каталог /data/ftp/ это Document root для Apache2
это нелогично, нужно, чтобы у каждого было своё: у web-сервера своя папка, у ftp-сервера - своя

Цитата Сообщение от Amaterino Посмотреть сообщение
в результате получаю на папку ftp такие права
в результате, у тебя ftp-сервер попадает под юрисдикцию web-сервера

настрой ftp для ftp, и открой туда доступ для web-сервера
включи пользователя www-data в группу, которая может проходить в папки ftp-сервера
надо писать что-нибудь - включи пользователя www-data в группу, которая может писать
1
Dmitry
Эксперт по компьютерным сетямЭксперт NIX
10387 / 5888 / 378
Регистрация: 09.09.2009
Сообщений: 23,201
05.04.2013, 11:39 #3
Цитата Сообщение от Amaterino Посмотреть сообщение
Можно как-то
как "костыль" - в крон команду на смену прав
0
Amaterino
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 9
05.04.2013, 18:19  [ТС] #4
Спасибо за ответы и помощь в исправлении косяков с оформлением

Цитата Сообщение от accept Посмотреть сообщение
это нелогично, нужно, чтобы у каждого было своё: у web-сервера своя папка, у ftp-сервера - своя
А если файлы загруженные по FTP должны быть доступны по http://, то как лучше сделать? Просто на старой Fedore эта схема работала.

Цитата Сообщение от accept Посмотреть сообщение
настрой ftp для ftp, и открой туда доступ для web-сервера
включи пользователя www-data в группу, которая может проходить в папки ftp-сервера
надо писать что-нибудь - включи пользователя www-data в группу, которая может писать
А я уже так пробовал. У меня www-data в группе ftpusers, а у нее права есть:
/data/ftp/
Bash
1
drwsrwsrw- 7 www-data ftpusers
А вот залитый внутрь файлик по FTP уже меняет владельца и права таким образом:
/data/ftp/test.txt
Bash
1
-rw------- 1 ftpu ftpusers
0
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
06.04.2013, 02:08 #5
Цитата Сообщение от Amaterino Посмотреть сообщение
А если файлы загруженные по FTP должны быть доступны по http://, то как лучше сделать?
точно так же: всё по своим полочкам разложено, никто не лезет в чужие настройки
потому что с бардака начинаются проблемы

паскаль. разделяй и властвуй
лекция 7. модули Майерса
вот у тебя два модуля - web-сервер и ftp-сервер, нужно просто соединить их, а не смешать друг с другом

Цитата Сообщение от Amaterino Посмотреть сообщение
А вот залитый внутрь файлик по FTP уже меняет владельца и права таким образом:
/data/ftp/test.txt
Bash
1
-rw------- 1 ftpu ftpusers
и правильно делает, это ftp-сервер контролирует свои файлы
маска, по которой устанавливаются права на созданный файл, определяется настройками ftp-сервера
не нужно делать пользователя, который никак не относится к ftp, владельцем файла (должна быть возможность быстро запретить web-серверу доступ к файлам ftp-сервера, и это делается просто исключением пользователя из группы, а не какими-то рекурсивными сменами владельца)

сделай так:
1. создай файл, у которого права группы такие, какие надо (как будто он был закачан ftp-пользователем, владелец - ftp-сервер, группа владельцев - группа пользователей ftp-сервера)
2. настрой web-сервер для использования этого файла так, как надо (сделай проход в каталог к этому файлу, посмотри, как web-сервер его находит)
3. настрой ftp-сервер, чтобы он закачиваемые файлы создавал с точно такими же владельцем, группой и правами

таким образом у тебя просто открыт проход к файлу, web-сервер использует его потому, что находится в группе ftp-пользователей (все, кто находится в группе ftp-пользователей, могут это проделывать)
это потом уже ты будешь для файлов, которые предназначены для web-сервера, устанавливать специальную группу, которую создашь отдельно (чтобы другие пользователи ftp-сервера не имели на них каких-то прав)
1
Amaterino
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 9
07.04.2013, 06:22  [ТС] #6
Цитата Сообщение от accept Посмотреть сообщение
3. настрой ftp-сервер, чтобы он закачиваемые файлы создавал с точно такими же владельцем, группой и правами
То что нужно. Сделал через unmask 022. Спасибо большое!
0
07.04.2013, 06:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2013, 06:22
Привет! Вот еще темы с ответами:

Как сделать, чтобы машины с виндой увидели файловый сервер с Ubuntu? - Ubuntu Linux
Добрый день! Проблема в следующем. Имеется локальная сеть из машин с ос Windows и сервер Windows sever 2003. Требуется заменить данный...

Как сделать, чтобы файлы из одной папки отображались в другой? - Ubuntu Linux
Здравствуйте! Никак не соображу как сделать так, чтобы в домашней папке /home/pavel/Документы отображались файлы из папки...

Как сделать, чтобы на Linux Ubuntu открывались .exe файлы? - Ubuntu Linux
Как сделать, чтобы на Linux Ubuntu открывались .exe файлы? Zaranee izvinite za to 4to pe4atayu angl bukvami. Kak sdelat chto bi na...

Как сделать, чтобы пользователи на сервере могли редактировать файлы друг друга? - Ubuntu Linux
Здравствуйте. В нашей организации имеется сеть из windows машин и файлового сервера на ubuntu 12.04. Доступ ко всем папкам настроен, всё...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru