Yandex.Disk a interzis utilizarea utilitarei open source rclone

Povestea

Salut, Habr!

Scrierea acestui articol a fost determinată de o eroare destul de ciudată pe care am primit-o ieri seară la laptopul cu Linux (da, sunt unul dintre acei oameni ciudați care folosesc GNU/Linux pe laptop) în loc de conținutul meu de pe Yandex.Disk:

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

Primul gând: rețeaua a căzut, nimic grav. Dar la încercarea de a remonta directorul, a apărut o nouă eroare:

$ sudo umount /mnt/yadisk && rclone mount --timeout 30m ya:/ /mnt/yadisk
2020/02/21 20:54:26 ERROR : /: Dir.Stat error: [401 - UnauthorizedError] Unauthorized (Neautorizat.)

Asta a fost deja ciudat. Token-ul a expirat? Nicio problemă, mă voi autentifica din nou!

$ rclone config
... (omitem aici toată ieșirea terminalului) ..

După ce am trecut pe web și am încercat să mă autentific acolo, primesc un mesaj mai concret:

Această aplicație a fost blocată din cauza unor acțiuni dăunătoare, așa că accesul nu este permis (unauthorized_client).

Primul gând: ceeeeee?

Despre rclone

Puțin ajutor:
rclone — un utilitar destul de cunoscut open-source pentru lucrul cu stocarea în cloud (a fost menționat de mai multe ori unu, doi, trei pe Habr). Autorul îl numește "rsync pentru stocarea în cloud", ceea ce este destul de concis. Dar funcționalitatea nu se oprește aici: pe lângă funcțiile rsync, aceasta poate monta și unități, efectua funcția ncdu (ceea ce, de fapt, mi-a permis odată să descopăr un calcul incorect al spațiului liber pe Yandex.Disk și să rezolv cu succes această problemă prin suportul tehnic), precum și multe altele. Utilitarul suportă atât zeci de servicii cloud, cât și protocoale mai tradiționale — WebDAV, FTP, rsync și altele. Pentru accesul la Yandex.Disk, utilitarul folosește API-ul public oficial al Disk-ului.

Utilitarul este cu adevărat unic și (în opinia mea) reprezintă acea clasă de programe pe care le instalezi o dată, dar îți aduc continuu beneficii.

Ce s-a întâmplat?

Căutând pe Google, am realizat imediat că nu sunt singur. Există un bug în GitHub-ul oficial, precum și o discuție pe forum-ul oficial.
Rezumat: client_id al utilitarului a fost blocat de Yandex.Disk, motiv pentru care nu mai este posibil să te autentifici. Poți încerca să schimbi client_id, dar nu este sigur că aceeași soartă nu va afecta și noul id.
Răspunsul suportului a fost publicat pe același forum:

Problema este că programul Rclone permite utilizarea Yandex.Disk ca componentă de infrastructură, iar Yandex.Disk este un serviciu personal care nu este destinat rezolvării unor astfel de sarcini. Prin urmare, nu susținem utilizarea combinației Rclone — Yandex.Disk.

"Componentă de infrastructură"? Ei bine, dacă nu se poate, probabil că este descris în reguli, m-am gândit și nu am găsit nimic de genul în regulile serviciului de disk sau în API-ul său public. Nu am găsit nimic.

Bine, o să scriem la suport.
Primul răspuns este exact același ca cel publicat mai sus (despre "componenta de infrastructură"). Ok, nu suntem mândri.

Continuarea corespondenței cu suportul

Eu:

Îmi puteți spune, vă rog, ce regulă a serviciului este încălcată?
Am studiat termenii de utilizare ai Yandex.Disk și nu sunt interdicții referitoare la utilizarea "ca componentă de infrastructură".

Mai mult decât atât, nu pot utiliza utilitarul de pe laptopul personal pentru a lucra cu diskul. Acest lucru nu se încadrează deloc sub "componenta de infrastructură". Clientul standard al diskului este teribil, îmi cer scuze.

Asistență:

Sergei, problema este că Yandex.Disk este în primul rând un serviciu personal, care nu este destinat încărcării automate a copiilor de siguranță.
Puteți sincroniza datele între computerul dumneavoastră și Yandex.Disk, precum și să utilizați interfața web a Diskului pentru a încărca fișiere și a lucra cu ele.

Dacă din anumite motive programul nostru nu vă satisface, vă rugăm să ne comunicați aceste lucruri. În mod tradițional, ascultăm părerile utilizatorilor atunci când lansăm actualizări ale produsului.

Puteți consulta documentele care reglementează utilizarea serviciului, în special "Contractul de utilizare a serviciilor Yandex", disponibil la adresa: https://yandex.ru/legal/rules/, precum și "Condițiile de utilizare a serviciului Yandex.Disk": https://yandex.ru/legal/disk_termsofuse

Pentru sarcini care necesită puteri mari, vă recomandăm să utilizați Yandex.Cloud. Acesta este un alt serviciu cloud al Yandex, creat pentru a rezolva sarcinile de afaceri. Puteți afla mai multe despre Yandex.Cloud aici: https://cloud.yandex.ru

Eu:

Nu mi-ați răspuns la întrebare. Vă rog să-mi spuneți, ce punct din regulile serviciului încalcă utilizarea rclone? Am studiat cu atenție regulile de la linkul dumneavoastră (încă înainte de a mi le trimiteți).

Recent, you wrote a post stating that Yandex supports Open Source in every way, and without Yandex's Open Source, modern internet wouldn't exist.https://habr.com/ru/post/480090/).

And now you are blocking an Open Source utility for a fabricated reason.

By the way, the program does not perform "automatic backup uploads"; it is designed for working with cloud storage, including for synchronizing data between the computer and Yandex.Disk. This is my main use case for the utility, which is now unavailable.

Asistență:

According to p. 3.1. of the "User Agreement," Yandex has the right to impose restrictions on the use of services for all Users or for specific categories of Users (depending on the User's location, the language in which the service is provided, etc.), including: the presence/absence of certain service features, the storage period of email messages in Yandex.Mail, any other content, the maximum number of messages that can be sent or received by one registered user, the maximum size of an email message or disk space, the maximum number of requests to the service within a specified period, the maximum storage period for content, special parameters for uploaded content, and more. Yandex may prohibit automated access to its services and also cease acceptance of any information generated automatically (e.g., email spam).

The User is also warned about this in p. 4.6. of the "Terms of Use of Yandex.Disk."

Please note that the "Terms of Use of Yandex.Disk" also establish the User's obligation to act in good faith and refrain from abusing the Service's features. The User is also obliged to refrain from organizing large-scale file sharing using the Service's features.

Yandex has the right to apply rules, limits, and restrictions aimed at preventing, limiting, and addressing large-scale file sharing according to the rules of p. 4.5. of these "Terms."

Răspunsul final a adus claritate. În special, primele două paragrafe fac referire la pct. 3.1. din „Acordul utilizatorului” Yandex și pct. 4.6. din „Condițiile de utilizare ale Yandex.Disk”. Textul din 4.6 nu este prezent aici, îl voi cita:

4.6. Yandex își rezervă dreptul de a stabili orice reguli, limite și restricții (tehnice, legale, organizaționale sau altele) asupra utilizării Serviciului și le poate modifica la propria discreție, fără notificarea prealabilă a Utilizatorului. În cazurile în care acest lucru nu este interzis de legislație, regulile, limitele și restricțiile indicate pot fi diferite pentru diferite categorii de Utilizatori.

Care sunt concluziile?

Recent, respectatul bobuk într-un post aici pe Habr a scris că Yandex consideră că:

Noi la Yandex credem că internetul modern nu poate exista fără cultura open source și oamenii care își investesc timpul în dezvoltarea de programe cu cod deschis.

Dar, în practică, lucrurile stau complet diferit. O utilitară excelentă este blocată pentru ceva ce nu este interzis de regulile serviciului. Din cauza că utilitara permite utilizarea API-ului public deschis al Disk-ului pentru scopul său direct - încărcarea fișierelor. Este blocat nu pentru încălcarea regulilor serviciului, ci pentru că se poate.
Ciudat este de două ori faptul că nu sunt blocați anumiți încălcători ai regulilor (de asemenea, nu se știe care, în regulile de utilizare a disk-ului pentru backup-uri nu este interzis nicăieri). Este blocat instrumentul, fiindcă o funcție de realizare a backup-ului este doar una dintre multe.

Ce este un component infrastructural și de ce nu pot fi utilizate cu disk-ul nu este de asemenea clar. Chiar și un browser poate fi folosit ca "component infrastructural", nu ar trebui interzis utilizarea disk-ului în browser?

Ce să fac?

Până atunci folosesc client_id-ul meu și continui. Dar, judecând după răspunsul suportului tehnic, putem aștepta continuarea vânătorii de vrăjitoare și blocarea altor client_id-uri, user-agent rclone sau, chiar, anumite metode heuristice pentru a bloca utilitara.

P.S. Sper sincer că a fost o simplă eroare sau o neînțelegere. La Yandex lucrează specialiști excelenți (cu mulți dintre care mă cunosc personal) și sunt sigur că printre ei sunt și utilizatori de rclone.

Actualizare 24.02.2020:
În în episodul 690 al podcastului Radio-T, co-prezentat de respectatul Bobuk, s-a discutat despre blocarea rclone. Începere la 1:51:40.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster