Для доступа к общей папке Windows или Samba в ownCloud Server включите приложение «Поддержка внешних хранилищ» и добавьте точку монтирования хранилища SMB/CIFS на странице администрирования ownCloud. Используйте адрес сервера общей папки, имя общей папки и действительные учетные данные SMB; как правило, предварительное монтирование общей папки с помощью Linux неmount.cifs требуется .
Этот метод позволяет получить доступ к существующим сетевым файлам через интерфейс ownCloud Files, сохраняя при этом права доступа, установленные SMB-сервером. Приведенные ниже инструкции относятся к классическому интерфейсу внешнего хранилища ownCloud Server, описанному для версий 10.16 и 11.0, а не к ownCloud Infinite Scale.
1. Проверьте предварительные требования для общего доступа SMB и ownCloud.
Для работы с ownCloud вам необходимы права администратора, доступный SMB-сервер, общедоступная папка, к которой у вас есть разрешение на доступ, и учетная запись SMB с необходимыми правами на чтение и запись. Обеспечьте доступность TCP-порта 445 между ownCloud и файловым сервером, предпочтительно через доверенную частную сеть или VPN, а не через общедоступный интернет.
В качестве конкретного примера предположим, что SMB-сервер — это files.internal.example, общий ресурс — Projects, а учетная запись службы — ACME\oc-share. Папка, которая будет отображаться в ownCloud, будет Team Projects. Это вымышленные значения; подставьте свои реальные данные сервера.
В стандартной установке Linux может потребоваться клиент Samba и соответствующее расширение клиента PHP SMB. Например, на хосте на основе Debian установите тестовый клиент командной строки:
sudo apt update
sudo apt install smbclient
Перед установкой расширения проверьте, какую версию PHP и какой метод установки использует ownCloud. Инструкции по установке ownCloud Server 10.16 для Ubuntu описывают php7.4-smbclientнастройку для PHP 7.4; используйте этот пакет только в том случае, если он соответствует вашей фактической поддерживаемой среде PHP и репозиторию. После включения расширения перезапустите службу PHP или веб-сервер, на котором работает ownCloud, и проверьте загрузку модулей с помощью php -m | grep -i smbclientкоманды `call`. Эта команда проверяет PHP через командную строку; веб-процесс может иметь отдельную конфигурацию.
В документации по официальному образу Docker ownCloud Server 11.0 указано, что зависимости SMB для выполнения включены, хотя в образе отсутствует smbclientкоманда для ручного тестирования. Не следует предполагать, что одни и те же команды host-packages применимы во всех образах контейнеров.
2. Проверьте доступ с сервера ownCloud.
Перед изменением настроек ownCloud проверьте разрешение имен, аутентификацию и сам общий ресурс с хоста ownCloud или из его сетевой среды. На хосте с установленной операционной системой smbclientвыполните следующую команду:
smbclient -L //files.internal.example -U 'ACME/oc-share'
smbclient //files.internal.example/Projects -U 'ACME/oc-share' -c 'ls'
Введите пароль учетной записи SMB, когда появится соответствующий запрос, вместо того, чтобы указывать его в командной строке. Первая команда выводит список доступных общих ресурсов; вторая проверяет доступ к конкретному ресурсу. Список не является подтверждением прав на запись. Если команда не выполняется, перед продолжением подтвердите имя сервера или IP-адрес, правильность написания названия ресурса, учетные данные, домен, правила брандмауэра и действующие права доступа на сервере Windows или Samba. В руководстве ownCloud SMB/CIFS также рекомендуется провести тестирование smbclientперед настройкой.
3. Включите поддержку внешних накопителей.
- Войдите в ownCloud, используя учетную запись администратора.
- Откройте «Настройки» → «Приложения» и убедитесь, что поддержка внешнего хранилища включена.
- Перейдите в Настройки → Администрирование → Хранилище (названия пунктов навигации могут немного отличаться в разных интерфейсах).
- Включите внешнее хранилище, если на странице есть соответствующий флажок, и используйте функцию «Добавить хранилище» , чтобы выбрать SMB/CIFS .
Включение параметра «Разрешить пользователям монтировать внешние хранилища» не является обязательным условием для создания управляемой администратором общей папки. Этот отдельный параметр позволяет пользователям создавать собственные точки монтирования, потенциально включая подключения к сетевым службам, которые администратор в противном случае не стал бы предоставлять. См. руководство по настройке внешних хранилищ ownCloud .
4. Настройте монтирование SMB/CIFS.
В новой строке хранилища укажите информацию о подключении. В следующем примере имя общего ресурса SMB отделено от имени папки, которое пользователи видят в ownCloud.
| Поле ownCloud | Пример значения | Назначение |
| Название папки | Командные проекты | Имя, отображаемое в интерфейсе файлов. |
| Внешнее хранилище | SMB / CIFS | Использует бэкэнд SMB напрямую. |
| Хост | files.internal.example | Имя хоста или IP-адрес SMB-сервера |
| Поделиться | Проекты | Имя удаленного ресурса без полного UNC-пути. |
| Удалённая подпапка | Команда (необязательно) | Ограничивает монтирование существующей папкой в общей папке. |
| Домен | ACME (при необходимости) | Домен или рабочая группа, связанные с учетной записью. |
| Аутентификация | Имя пользователя и пароль | Для доступа к этой публикации необходимы явные учетные данные. |
| Доступно для | Выбранная группа ownCloud | Ограничивает видимость крепления |
Введите oc-shareимя пользователя, указанное ACMEв отдельном поле «Домен». Не вводите его //files.internal.example/Projectsв поле «Хост» и не путайте имя общего ресурса с необязательной подпапкой. Для удаленной подпапки ownCloud поддерживает $userвыбор существующего каталога, соответствующего текущему имени пользователя ownCloud; он не создает этот каталог.
Для стандартной учетной записи службы имя пользователя и пароль — это просто, но доступ к ней осуществляется в соответствии с разрешениями SMB этой учетной записи. Если пользователи проходят аутентификацию в SMB с помощью собственных учетных данных ownCloud, то учетные данные для входа, сохраненные в сессии, могут подойти лучше. Однако ownCloud описывает важные ограничения, связанные с учетными данными сессии: фоновое сканирование и прямой доступ к смонтированному хранилищу не могут работать так же, как с сохраненными учетными данными. Выбирайте, исходя из фактических требований к аутентификации и сканированию, а не только из удобства. См. раздел « Механизмы аутентификации внешнего хранилища» .
Ограничьте доступ к ресурсу только для определенных пользователей или групп ownCloud; созданный администратором ресурс по умолчанию доступен всем пользователям. Если сотрудникам нужно только просматривать файлы, включите параметр «Только для чтения» для ресурса , а также установите режим доступа только для чтения на сервере SMB. Оставьте общий доступ к ресурсу отключенным, если это не требуется вашей политикой доступа.
5. Перед использованием устраните недоступность точки монтирования.
После заполнения необходимых полей ownCloud автоматически сохраняет строку хранилища. Зеленый индикатор состояния означает, что соединение готово; красный или желтый индикатор указывает на необходимость дальнейшего исследования. ownCloud может пометить неисправное внешнее хранилище как недоступное в течение десяти минут, поэтому после устранения проблемы щелкните индикатор состояния или перезагрузите страницу администрирования.
- Ошибка аутентификации: перепроверьте пароль SMB, домен, формат имени пользователя, состояние блокировки учетной записи и права доступа к общему ресурсу. Сравните с
smbclientрезультатами теста с использованием той же учетной записи.
- Ошибка "Время ожидания соединения истекло": проверьте DNS, маршрутизацию, доступ брандмауэра к TCP 445 и запущен ли сервис SMB. Проверьте работу из той же контейнерной сети, если ownCloud находится в контейнере.
- Отсутствует бэкэнд SMB/CIFS: Убедитесь, что приложение поддержки внешних хранилищ включено и необходимое расширение SMB загружено в среду выполнения PHP, которая обслуживает ownCloud, если это применимо.
- Некоторые папки отсутствуют: проверьте разрешения удаленной подпапки и файловой системы SMB. Назначение группы ownCloud не может предоставить доступ, поскольку удаленный сервер запрещает доступ.
- Внешне измененные файлы не отображаются: проверьте частоту проверки файловой системы монтирования, фоновые задания и механизм сканирования. Учетные данные SMB, доступные только в рамках сессии, препятствуют фоновому сканированию; избегайте планирования сканирования
occ files:scanкак предполагаемого решения этой проблемы.
Использование монтирования CIFS на уровне ядра, предоставляемого ownCloud в качестве локального хранилища, обычно является неправильным резервным вариантом. ownCloud предупреждает, что если такое монтирование файловой системы исчезнет, он может увидеть пустой локальный каталог и распространить события удаления. Вместо этого используйте прямой бэкэнд SMB/CIFS; обратитесь к официальному предупреждению о локальном хранилище .
6. Проверьте доступность общего ресурса в разделе «Файлы».
Войдите в систему как пользователь, которому разрешен доступ в разделе «Доступно для» . Откройте «Файлы» и найдите «Командные проекты» . Перейдите в существующую директорию и откройте небольшой тестовый файл. Если учетная запись SMB и точка монтирования ownCloud разрешают запись, загрузите безобидный тестовый файл и убедитесь, что он отображается на сервере SMB; удалите его после проверки. Для точек монтирования только для чтения убедитесь, что вместо этого заблокирована модификация.
Наконец, убедитесь, что строка хранилища остается зеленой после перезагрузки страницы и что другой пользователь вне разрешенной группы не может видеть точку монтирования. Эти проверки подтверждают, что ownCloud может получить доступ к правильной общей папке SMB, удаленная учетная запись имеет необходимый доступ, и точка монтирования доступна только для целевой аудитории.