LINUX.ORG.RU
решено ФорумAdmin

Как сломать nextcloud?

 , ,


0

1

Установил в nextcloud дополнение transmission. Но трансмиссию установил на другом компьютере. Задать адрес оказалось возможным в файле /nextcloud/apps/transmission/lib/Controller/TransmissionController.php задав переменную $host. Но случилась ещё одна засада.

У меня дурная привычки не использовать административные привилегии. Но трансмиссия для nc работает только от пользователя состоящего в группе admin. Впрочем в PageController.php (там же) сказано:

    /**
     * CAUTION: the @Stuff turns off security checks; for this page no admin is
     *          required and no CSRF check. If you don't know what CSRF is, read
     *          it up in the docs or you might create a security hole. This is
     *          basically the only required method to add this exemption, don't
     *          add it to any other method if you don't exactly know what it does
     *
     * @NoAdminRequired
     * @NoCSRFRequired
     */

Но не сказано как это сделать. Нет, я конечно попытался раскомментировать @NoAdminRequired, но результат получил ожидаемый.

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

Вот здесь: https://docs.nextcloud.com/server/latest/developer_manual/app_development/tutorial.html и здесь: https://docs.nextcloud.com/server/latest/developer_manual/basics/controllers.html про это упоминают, но как применять не говорят.

Или я чего-то не понимаю и ограничение на администратора в этом приложении задано иначе?

Да, я понимаю что использовать от простого пользователя свою трансмиссию в своём некстклауде крайне небезопасно. Но я готов пойти на этот риск.

★★★★★

Но не сказано как это сделать

Сделать что?

Нет, я конечно попытался раскомментировать @NoAdminRequired

Зачем? Это аннотация.

fernandos ★★★
()
Ответ на: комментарий от fernandos

Эээ.., видимо я неправильно понял что там написано: «the @Stuff turns off security checks». Это я понял как что этим можно выключить.

В общем, мне нужно чтобы трансмиссия работала не от администратора (у нас же тут вроде как не виндовс). Но как это сделать я не нашёл.

sin_a ★★★★★
() автор топика

Судя по всему, аннотация и должна оставаться закомментированной. Может приложение ограничено в самом nextcloud? Там, помнится мне, можно было задать группы тех, кому оно будет доступно.

Приложения->выбрать нужное->Подробные сведения->Разрешить использование только участникам этих групп

Не у каждого приложения такая настройка имеется, подозреваю что те, кто не имеют - доступны всем

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Это я проверил. По умолчанию группы не заданы, создал и задал «users» – картина не изменилась.

А может дело в том что трансмиссия на удалённой системе? Никто не использует трансмиссию в некстклауд? Проверить, работает от пользователя или нет?

sin_a ★★★★★
() автор топика
Последнее исправление: sin_a (всего исправлений: 1)
Ответ на: комментарий от sin_a

Автор дополнения гоняет transmission в докере, так что думают он расчитывает на то, что запросы будут отправляться по сети... Если я конечно все правильно понял

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

В конфигурации предусмотрено rpc-port, rpc-username и rpc-password, а переменную host я с трудом нашёл и она не в Settings.php а в контроллере. Возможно только планирует, может быть у него в докере комплект из клауда и торрента.

sin_a ★★★★★
() автор топика
Ответ на: комментарий от sin_a

Похоже у него там всё еще проще:

The Transmission docker instance runs on the same machine as the Nextcloud docker instance. It saves the downloaded torrents in a volume that is shared with the Nextcloud docker instance. This volume is integrated into Nextcloud by adding it as an external storage.
Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Интересно, у него работает только от админа или нет? Этот вопрос может быть связан с отдельным хостом, но на первый взгляд такой зависимости взяться неоткуда.

sin_a ★★★★★
() автор топика
Ответ на: комментарий от sin_a

Так-то на отдельном хосте работает нормально, проверил.

sin_a ★★★★★
() автор топика
Ответ на: комментарий от sin_a

Судя по описанию, лучше вообще это приложение не использовать или что лучше самому его переписать. А то получается, что его автор видимо не знает, что некстклауд и трансмишн могут быть не в докере и вообще на разных машинах.

einhander ★★★★★
()
Ответ на: комментарий от einhander

Да нет, вон Pinkbyte привёл выдержку, у него раздельные докеры для трансмиссии и некстклауда, то есть, насколько я понимаю они как раз работают отдельно и на разных адресах. А докер это сегодня обычное средство поставки.

Возможно автор просто использует виндос и привык что всё от администратора. Не могу представить что есть необходимость запрещать работу простым пользователям. А переписать не получится, он программист а я нет… Если не выяснится то придётся не использовать.

sin_a ★★★★★
() автор топика
Ответ на: комментарий от sin_a

раздельные докеры для трансмиссии и некстклауда

Я так понял, что на одной машине, а не на разных.

А докер это сегодня обычное средство поставки.

Ну скорого и баш будут в докере поставлять. Я понимаю когда используется сильно нестандартные библиотеки или есть ещё какая несовместимость. А тут похоже на молоток, когда он в руках, то все кажется гвоздями. А некстклауд вообще можно через зип поставлять, главное чтобы пхп был.

einhander ★★★★★
()
Ответ на: комментарий от einhander

Да, на одной машине но два экземпляра докера. Здесь мы видим как раз одно из достоинств докера. Это практически виртуальная машина (но с околонулевыми накладными расходами). И программы из разных контейнеров докера могут взаимодействовать только по сети.

И некстклаут поставляется конечно в зипе. Но для разных случаев есть и другие формы поставки.

sin_a ★★★★★
() автор топика
Ответ на: комментарий от sin_a

Это практически виртуальная машина (но с околонулевыми накладными расходами).

Это lxc почти виртуальная машина, туда и железо пробросить можно. А докер это по сути уникальный образ машины автора приложения, со всеми костылями использованными при разработке, так как на других системах его приложение не работает. Он решает именно эту проблему.

einhander ★★★★★
()

У меня дурная привычки не использовать административные привилегии.

  • почему дурная? или это ирония?
    • как без root поставить систему, установить пакеты?
      • делегировать?
anonymous
()
Ответ на: комментарий от anonymous

Ну как же. Вон человек: специалист, программист, грамотный человек написал программу, я так не могу и он пользуется в обычной учётной записи привилегиями администратора. Значит так правильно, а я страдаю фигнёй пытаясь использовать его программу неправильно.

sin_a ★★★★★
() автор топика
Ответ на: комментарий от fernandos

Зачем? Это аннотация.

Спасибо, ключевое слово помогло, натыкал этих аннотаций перед всеми функциями – вроде заработало, правда несколько кривовато…

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