Яндекс.Диск заборонив використання open source утиліти rclone

Передісторія

Привіт, Хабре!

До написання цієї посади призвела досить дивна помилка, яку вчора ввечері на ноутбуці з Linux (так, я з тих дивних людей, хто використовує GNU/Linux на ноутбуці), я отримав замість вмісту свого Яндекс.Диска:

$ ls -l /mnt/yadisk
ls: reading directory '.': Input/output error
total 0

Перша думка: мережа відвалилася, нічого страшного. Але при спробі перемонтувати директорію виникла нова помилка:

$ sudo umount /mnt/yadisk && rclone mount --timeout 30m ya:/ /mnt/yadisk
2020/02/21 20:54:26 ERROR : /: Dir.Stat error: [401 - UnauthorizedError] Unauthorized (Не авторизован.)

Це було дивно. Токен протух? Не біда, авторизую заново!

$ rclone config
... (опущу тут весь вывод терминала) ..

Після переходу на веб та спроби авторизуватися там отримую вже конкретніше повідомлення:

Ця програма заблокована за шкідливі дії, тому доступ не дозволено (unauthorized_client).

Перша думка: щоооо?

Про rclone

Трохи довідки:
rclone - Досить відома відкрита утиліта для роботи з хмарними сховищами (неодноразово раз, два, три згадувалася на Хабре). Автор називає її "rsync for cloud storage", що досить ємно. Але цим функціональність не обмежується: крім функцій rsync вона ще може монтувати диски, виконувати функцію ncdu (що, до речі, мені дозволило одного разу виявити неправильний підрахунок вільного місця на Яндекс.Диску та успішно вирішити цю проблему через техпідтримку), а також купу всього ще. Утиліта підтримує як десятки хмарних сховищ, так і традиційніші протоколи — WebDAV, FTP, rsync та інші. Для доступу до Яндекс.Диску утиліта використовує офіційний публічний API Диск.

Утиліта воістину унікальна і (на мою думку) є той клас програм, які ставиш один раз, а користь вони приносять постійно.

Що сталося?

Звернувшись до Google я одразу зрозумів, що не самотній. Є баг в офіційному гітхабі, а також обговорення на офіційному форумі.
Короткий зміст: client_id утиліти заблокований Яндекс.Диском, через що авторизуватися більше не можна. Можна спробувати змінити client_id, але не факт, що та сама доля не спіткає і новий id.
Відповідь підтримки опублікований на тому ж форумі:

Справа в тому, що програма Rclone дозволяє використовувати Яндекс.Диск як інфраструктурний компонент, а Яндекс.Диск — це персональний сервіс, який не розрахований на вирішення таких завдань. Тому ми не підтримуємо роботу зв'язки Rclone - Яндекс.Диск.

"Інфраструктурний компонент"? Ну якщо не можна, то напевно це описано в правилах подумав я і нічого такого в правила самого диску або його публічного API я не знайшов.

Гаразд, напишемо на підтримку.
Перша відповідь прилітає 1 в 1 те, що опубліковано вище (про "інфраструктурний компонент"). Окей, ми не горді.

Подальше листування з підтримкою

Я:

А підкажіть, будь ласка, яке правило сервісу це порушує?
Я вивчив умови використання Яндекс диска і жодних заборон на використання "як інфраструктурний компонент" там немає.

Більше того, я не можу використовувати утиліту з власного ноутбука для роботи з диском. Це вже зовсім ніяк під "інфраструктурний компонент" не підпадає. Штатний клієнт диска жахливий, вибачте.

Підтримка:

Сергій, річ у тому, що Яндекс.Диск – це насамперед персональний сервіс, який не розрахований на завантаження резервних копій в автоматичному режимі.
Ви можете синхронізувати дані між вашим комп'ютером та Яндекс.Диском, а також користуватися веб-інтерфейсом Диску для завантаження файлів та роботи з ними.

Якщо вас із якихось причин не влаштовує наша програма, будь ласка, озвучте їх. Традиційно ми прислухаємося до думки користувачів під час випуску оновлень продукту.

Ви можете ознайомитися з документами, що регулюють використання сервісу, зокрема «Угодою про угоду сервісів Яндекса», опублікованою за адресою: https://yandex.ru/legal/rules/, а також «Умовами використання сервісу "Яндекс.Диск"»: https://yandex.ru/legal/disk_termsofuse

Для вирішення завдань, які потребують великих потужностей, ми рекомендуємо використовувати Яндекс.Хмару. Це інший хмарний сервіс Яндекса, створений для вирішення завдань бізнесу. Дізнатися більше про Яндекс.Хмари можна тут: https://cloud.yandex.ru

Я:

Ви не відповіли на моє запитання. Підкажіть, будь ласка, який пункт правил сервісу порушує використання rclone? Я уважно вивчив правила за вашим посиланням (ще до того, як ви надіслали).

Зовсім недавно ви писали пост, що Яндекс всіляко підтримує OpenSource і без OpenSource Яндекса та сучасного інтернету не було б (https://habr.com/ru/post/480090/).

А тепер ви блокуєте OpenSource утиліту з надуманої причини.

До речі, програма не здійснює "завантаження резервних копій в автоматичному режимі", програма призначена для роботи з хмарними сховищами, зокрема для синхронізації даних між комп'ютером та Яндекс.Диском. І цей мій основний use-case утиліти, який тепер недоступний.

Підтримка:

Відповідно до п. 3.1. «Угода користувача» Яндекс має право встановлювати обмеження у використанні сервісів для всіх Користувачів, або для окремих категорій Користувачів (залежно від місця перебування Користувача, мови, якою надається сервіс і т.д.), у тому числі: наявність/відсутність окремих функцій сервісу, термін зберігання поштових повідомлень у сервісі Яндекс.Пошта, будь-якого іншого контенту, максимальна кількість повідомлень, які можуть бути надіслані або отримані одним зареєстрованим користувачем, максимальний розмір поштового повідомлення або дискового простору, максимальна кількість звернень до сервісу за вказаний період часу, максимальний термін зберігання контенту, спеціальні параметри контенту, що завантажується і т.д. Яндекс може заборонити автоматичне звернення до своїх сервісів, а також припинити прийом будь-якої інформації, що згенерована автоматично (наприклад, поштового спаму).

Користувач також попереджається про це у п. 4.6. "Умов використання Яндекс.Диска".

Зверніть увагу, що «Умови використання Яндекс.Диску» також встановлюють для Користувача обов'язок діяти сумлінно та утриматися від зловживання функціями Сервісу. Користувач зокрема зобов'язується утриматися від організації масового файлообміну з використанням функцій Сервісу.

Яндекс має право застосовувати правила, ліміти та обмеження, спрямовані на запобігання, обмеження та припинення масового файлообміну за правилами п. 4.5. реальних «Умов».

Остання відповідь принесла ясності. Особливо перші два абзаци з посиланням на п. 3.1. «Угода користувача» Яндекс і п. 4.6. "Умов використання Яндекс.Диска". Текст 4.6 тут не наведено, наведу:

4.6. Яндекс залишає за собою право встановлювати будь-які правила, ліміти та обмеження (технічні, юридичні, організаційні чи інші) на використання Сервісу, та може змінювати їх на власний розсуд без попереднього повідомлення Користувача. У випадках, коли це не заборонено законодавством, ці правила, ліміти та обмеження можуть бути різними для різних категорій Користувачів.

Висновки?

Зовсім недавно шановний bobuk У своєму пості тут на Хабрі писав, що Яндекс вважає, що:

Ми в Яндексі вважаємо, що сучасний інтернет неможливий без культури open source та людей, які інвестують свій час у розробку програм з відкритим кодом.

А на практиці виходить зовсім інакше. Відмінну утиліту блокують за те, що не заборонено правилами сервісу. За те, що утиліта дозволяє використовувати відкритий публічний API Диск прямого призначення — завантаження файлів. Блокують не за порушення правил сервісу, а тому, що можуть.
Подвійно дивно те, що заблоковані не конкретні порушники правил (теж незрозуміло яких у правилах використання диска для резервних копій ніде не заборонено). Заблокований інструмент, функція здійснення резервного копіювання, в якому лише одна з багатьох.

Що таке інфраструктурний компонент і чому їх не можна використовувати з диском, теж не зрозуміло. Навіть браузер може бути використаний як "інфраструктурний компонент", чи не варто заборонити користуватися диском у браузері?

Що робити?

Поки що використовувати свій client_id і жити далі. Але, судячи з відповіді техпідтримки, можна чекати продовження полювання на відьом і блокування інших client_id, user-agent rclone або, навіть, якісь евристичні способи заблокувати утиліту.

PS Я щиро сподіваюся, що мала місце проста помилка чи непорозуміння. В Яндексі працюють відмінні фахівці (багато з ким я знайомий особисто) і серед них, певен, є користувачі rclone.

оновлення 24.02.2020:
В випуску 690 підкасту Радіо-Т, обізнаним з яким також є шановний Бобук, обговорювалося блокування rclone. Початок на 1:51:40.

Джерело: habr.com

Додати коментар або відгук