LINUX.ORG.RU
ФорумAdmin

nginx + webdav «домашние папки»

 ,


0

4

Коллеги!

Возникла у меня задача организовать сетевое файловое хранилище для пользователей. Так чтобы каждый мог в свою папку файл записать, и каждый залогиненый пользователь мог бы файлы других пользователей прочитать.

Казалось бы, что лучше всего это сделать через webdav (встроенный клиент есть в каждой ОС). И казалось что для этого дела должен подойти nginx. (Да и вообще люблю я его).

Но вот столкнулся с проблемой: не нашел в сети ни одного примера как прописать разрешения доступа в зависимости от логина.

Сгенерировать конфиг по каталогу пользователей скриптом я вполне смогу... Но вот как написать что-то вроде

location /shaplov/ {
   if ($login = 'shaplov')
   {
     dav_access user:rw;
   } else

   {
      dav_access user:r;
   }
}
я не понимаю. В сети не нашел, а языком nginx'ного конфига не владею достаточно свободно...

Кто-нибудь что-нибудь подобное проделывал?

Update:

Так, я понял... Логин пользователя хранится в $remote_user. А права доступа видимо надо реализовывать через перечень методов... Что-то вроде:

location /shaplov/ {
   if ($remote_user = 'shaplov')
   {
      dav_methods PUT DELETE MKCOL COPY MOVE;
   } else

   {
      dav_methods off
   }
}
Завтра буду пробовать...

Ответ на: комментарий от disarmer

Увы, dav_access — это маска прав с которыми файл создается... :-(

shaplov ★★ ()

Внезапно собери nginx с lua и опиши кастомные права и разрешения сам.

trofk ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.