Чтобы сделать другого пользователя владельцем файлов, которые в настоящее время принадлежат уходящей или изменяющейся учетной записи ownCloud, используйте occ files:transfer-ownershipкоманду на стороне сервера. По умолчанию эта команда перемещает все файлы, находящиеся в собственности пользователя, вместе с исходящими общими папками и связанными метаданными; используйте ее, --pathкогда вам нужно перенести только папку. Веб-панель общего доступа изменяет права доступа, но она не является механизмом передачи прав собственности.
Выберите правильный диапазон передачи
В ownCloud Classic право собственности определяет, чье личное файловое пространство содержит исходный элемент и чья учетная запись контролирует исходящий общий доступ. Получатель, имеющий доступ на редактирование, остается получателем; предоставление права «можно редактировать» не делает этого человека владельцем файла. Перед запуском передачи решите, нужны ли новому владельцу все файлы учетной записи или только определенная папка проекта.
- Перенести все файлы: Используйте этот параметр, когда учетная запись выводится из эксплуатации, и принадлежащие ей файлы и исходящие общие ресурсы должны быть перемещены вместе. Он проще в настройке, но перемещает больше контента, чем может потребоваться для передачи данных одной команде.
- Перенос одной папки: используйте этот способ
--pathдля конкретного каталога в папке файлов исходного пользователя. Это сужает область действия, но перед продолжением проверьте вложенное содержимое и связи между общими ресурсами.
- Сохраняйте постоянный общий доступ для всей команды: для постоянного доступа к контенту команды ownCloud рекомендует использовать выделенную учетную запись владельца, общая папка которой остается неизменной при смене сотрудников. Это решение касается управления файлами в будущем, а не ретроспективной передачи файлов одного из существующих владельцев.
В официальной документации ownCloud Server 11 по совместному доступу указано, что команда передает исходящие общие ресурсы и связанные с ними метаданные, такие как теги и комментарии. Входящие общие ресурсы не передаются, поскольку исходные файлы принадлежат другому пользователю. Содержимое корзины также не передается.
Подготовьте бухгалтерские отчеты и данные.
Убедитесь, что идентификаторы пользователя источника и получателя точно совпадают. Это идентификаторы учетных записей, а не обязательно имена пользователей или адреса электронной почты. Убедитесь, что целевая учетная запись существует и может вместить передаваемые данные в рамках своей квоты. Хотя в справочнике команд ownCloud отмечается, что в некоторых версиях может быть создан отсутствующий целевой пользователь, создание и подтверждение нужной учетной записи в первую очередь позволяет избежать перемещения данных под непреднамеренной учетной записью.
Запланируйте операцию на то время, когда пользователи не редактируют исходные файлы. Создайте проверенную резервную копию данных и базы данных ownCloud и убедитесь, что вы знаете процедуру восстановления. Не копируйте, не переименовывайте и не перемещайте файлы непосредственно в каталог данных: база данных отслеживает метаданные файлов и права собственности. Используйте occэту функцию, чтобы ownCloud мог согласованно обновлять свои записи и общие ресурсы.
В текущей документации ownCloud для классической версии есть отдельные руководства для Server 11.0 и 10.16. В документации для Server 11 описана установка на основе Docker; в примерах для 10.16 используется традиционная установка PHP. Используйте форму команды, соответствующую развернутой версии, а не копируйте команду вслепую.
Выполните передачу права собственности.
Для ownCloud Classic 11 в Docker
Из каталога, содержащего ваше развертывание Compose, перенесите все файлы, принадлежащие исходной учетной записи, в целевую учетную запись:
docker compose exec owncloud occ files:transfer-ownership \
source-user \
destination-user
Замените оба идентификатора примеров на точные идентификаторы пользователей ownCloud. Просмотрите вывод команды и любые сообщения о пропущенных общих ресурсах. Не добавляйте параметр, который автоматически принимает пропущенные общие ресурсы, если вы не ознакомились с последствиями и не приняли их.
Для ownCloud Classic 10.16, установленного с PHP.
Запустите occот имени пользователя веб-сервера из каталога установки ownCloud. Во многих развертываниях Debian или Ubuntu этим пользователем является www-data:
sudo -u www-data php /var/www/owncloud/occ files:transfer-ownership \
source-user \
destination-user
Измените путь к исполняемому файлу и учетную запись в соответствии с вашим хостом. Если команда сообщает о неизвестном параметре или команде, проверьте справочник команд ownCloud в установленной версии и используйте его occ files:transfer-ownership --helpперед повторной попыткой.
Ограничьте передачу папкой
Чтобы переместить каталог проекта с определенным именем Projectsвместо каждого файла, добавьте параметр path перед идентификаторами пользователей:
docker compose exec owncloud occ files:transfer-ownership \
--path="Projects" \
source-user \
destination-user
Путь должен существовать внутри папки data/<source-user>/files. ownCloud не просто размещает папку по тому же относительному пути в целевом каталоге. Он сохраняет переданное содержимое в каталоге, указанном в форме, transferred from <source-user> on <timestamp>внутри файлов целевого пользователя. Сообщите получателю, где найти папку после завершения команды. Для получения информации о доступных параметрах обратитесь к справочнику команд ownCloud 10.16 occ .
Узнайте, когда эта команда — неправильный инструмент.
Передача не является общей кнопкой «сменить владельца» для каждого элемента, видимого пользователю-источнику. Файлы во входящих общих папках принадлежат их первоначальному владельцу и не перемещаются. Если требуемый контент является входящей общей папкой, согласуйте это с владельцем или создайте отдельную копию, используя утвержденный рабочий процесс; копия представляет собой отдельный файл и может не сохранять историю исходной общей папки или метаданные.
Существуют также ограничения, специфичные для конкретного хранилища. В документации ownCloud содержится предупреждение о недопустимости использования этой команды с основным хранилищем S3, настроенным с несколькими сегментами, поскольку это может привести к потере доступа к файлам. Архивы жизненного цикла корпоративных файлов также имеют документированные ограничения на передачу. Если применима какая-либо из этих особенностей, перед выполнением действий ознакомьтесь с документацией для конкретной версии и протестируйте процедуру на репрезентативной непроизводственной учетной записи.
Если при передаче возникает исключение или она преждевременно останавливается, не следует сразу же повторять её. В руководстве по совместному использованию ownCloud рекомендуется запустить проверку occ files:troubleshoot-transfer-ownership --uid <uid>состояния передачи для идентификаторов пользователя источника и получателя, чтобы исследовать и восстановить состояние передачи. Сохраните исходные журналы и резервную копию до тех пор, пока не станет понятен результат.
Перед удалением исходной учетной записи проверьте результат.
Войдите в систему под учетной записью получателя и убедитесь, что перенесенная папка отображается в созданном каталоге «перенесено из». Откройте файлы-образцы и проверьте ожидаемые папки, теги, комментарии и исходящие общие ресурсы. Попросите одного из предполагаемых получателей подтвердить доступ через существующий общий ресурс. Затем проверьте исходную учетную запись на наличие оставшихся принадлежащих файлов или общих ресурсов и проверьте вывод команды на наличие пропущенных элементов.
Удалять или отключать исходную учетную запись следует только после того, как владелец целевой учетной записи и соответствующие участники подтвердят доступ. ownCloud привязывает файлы к их владельцам, поэтому удаление пользователя может привести к удалению оставшихся файлов и общих ресурсов этого пользователя. Команда передачи не перемещает корзину или входящие общие ресурсы, и эти ограничения следует включить в контрольный список для передачи.