Задать вопрос
@xave

Как подружить Windows WebDAV клиент, nginx и многопользовательский доступ?

Имеется сервер с работающим nginx, доступ на который осуществляется по webdav. Все было сделано по 'этому мануалу и прекрасно работало, пока не понадобилось сделать доступ для нескольких пользователей со своими логинами и паролями. Самый тривиальный вариант - создать еще один location в со своим auth_basic_user_file. Если следовать примеру по ссылке, то что-то такое:
location ^~ /Family {
...
	auth_basic_user_file	/usr/local/etc/nginx/secure/family.htpasswd;
...
location ^~ /AnotherFolder {
...
	auth_basic_user_file	/usr/local/etc/nginx/secure/anotherfolder.htpasswd;
...
}

В браузере такая штуковина работает отлично, т.е. пока находишься в папке /Family, сервер спрашивает логин+пароль из family.htpasswd, а как только заходишь в /AnotherFolder, спрашивает их уже из anotherfolder.htpasswd.
Но DAV-клиент windows (тестировано на 8.1) в данном случае подключает папку /Family как сетевой диск и нормально работает с ней. При попытке подключить еще один диск для /AnotherFolder он уже не спрашивает логин и пароль, а использует старые данные, причем как-то умудряется получать листинги директорий, несмотря на то, что nginx вообще-то должен требовать в них авторизацию по другим учетным данным. В то же время сами файлы на таком сетевом диске не открываются. Если при подключении второго диска специально выбрать "использовать другие учетные данные", то windows выдаст ошибку "указанная сетевая папка подключена с использованием другого имени пользователя и пароля". Я вообще думал что такая ошибка возможна только при работе с сетевыми дисками по SMB, но оказалось, что нет. Еще более непонятно то, почему можно по webdav подключить 2 и более дисков microsoft onedrive, хотя они будут иметь также одинаковое доменное имя вида https://d.docs.live.net/UNIQUE_FOLDER_NAME/ и различаться только location, как и в моем случае.
  • Вопрос задан
  • 1363 просмотра
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы