U sljedećem ćemo članku pogledati GoTTY. To je program koji korisnicima omogućuje dijeliti aplikacije na Gnu / Linux terminal putem web preglednika. GoTTY je jednostavan web poslužitelj napisan u programu Go koji pokreće program koji nije GUI i može se pokrenuti na takav način da ga preglednik može prikazati i po želji omogućuje korisniku interakciju.
Možda neće svi pronaći mogućnost pokrenite određeni program naredbenog retka u prozoru preglednika. No, postoje neki slučajevi, na primjer kada želimo nadzirati sustav na daljinu koristeći vrh bez potrebe za povezivanjem na sustav, u kojima bi moglo biti zanimljivo imati tu mogućnost.
Ako uspijemo prikazati izlaz top u prozoru preglednika, ovo bi bilo vrlo jednostavno rješenje. Iako postoje i druge mogućnosti za dobivanje istog rezultata, možda će nas zanimati druge značajke naredbenog retka ili mogućnost korištenja provjerenih korisnika za interakciju sa softverom koji je pokrenut. Ovo i druge stvari, GoTTY će nam omogućiti da to lako učinimo.
Dobra instalacija na Ubuntuu
Da bismo koristili GoTTY trebat ćemo instalirati Go. Većina Gnu / Linux distribucija ima jezik Go u službenom spremištu, tako da ga možemo lako instalirati. Da bismo ga instalirali i konfigurirali u naš Ubuntu, maloprije smo na ovom blogu napisali a artículo u kojem je objašnjeno kako to učiniti na jednostavan način.
Mi ćemo također trebate instalirati git, što možemo učiniti upisivanjem u terminal (Ctrl + Alt + T):
sudo apt install git
Kad već imamo Go, možemo početi pisati sljedeće. Ova će naredba instalirati GoTTY binarni u vašu varijablu okruženja:
go get github.com/yudai/gotty
u provjerite je li sve ispravno, napišite sljedeću naredbu:
ls $GOPATH/bin/
Kako koristiti GoTTY u Ubuntuu
Da bismo je izvršili, upotrijebit ćemo sljedeću sintaksu:
$GOBIN/gotty [opciones] <comando>
U slučaju da to nije važno pokrenite i podijelite naredbu top, samo trebate napisati:
$GOBIN/gotty top
Naredba top pokrenut će se na vašem trenutnom stroju u luka 8080 (http://127.0.0.1:8080/). Iz preglednika nećete vidjeti statičnu sliku, zaslon se ažurira kao da radi u terminalu.
Poslužitelj će raditi dok ga ne ubijete. To se postiže pritiskom na Ctrl + C. Ako je netko povezan s poslužiteljem, trebat će dva pritiska Ctrl + C. Na ovu naredbu mogu se dodati opcije za promjenu porta (-p) i adrese (-a).
Imajte na umu da prema zadanim postavkama, GoTTY ne dopušta klijentima pisanje unosa u TTY, omogućuje vam samo promjenu veličine prozora.
Uredite datoteku iz preglednika
Mi ćemo biti u mogućnosti koristite opciju -wo –dozvoli pisanje kako biste klijentima omogućili pisanje u TTY, što je to ne preporučuje se zbog mogućih sigurnosnih prijetnji na poslužitelju.
Sljedeća naredba će koristiti vi uređivač naredbenog retka za otvaranje datoteke ubunlog.txt i omogućit će vam da ga uređujete iz web preglednika:
$GOBIN/gotty -w vi ubunlog.txt
Koristite GoTTY s osnovnom autentifikacijom (korisničko ime i lozinka)
U prvom slučaju koji smo upravo pogledali, vjerojatno nas nije puno briga mogu li stranci vidjeti vrhunski izlaz. Ako je stroj na kojem je GoTTY pokrenut iza vatrozida, autsajderi ga neće moći vidjeti. Za neke aplikacije to bi bilo dovoljno. Ali, ako na primjer, ako dopustimo ulazak (s opcijom -w), ljudi bi mogli ubiti procese na daljinu, a to vjerojatno nije dobra ideja za objavljivanje na webu.
Da bismo pokušali dati svojevrsno rješenje za to, možemo aktivirati osnovni sustav provjere autentičnosti. Ovdje će klijenti trebati unijeti navedeno korisničko ime i lozinku za povezivanje s GoTTY poslužiteljem.
Sljedeća naredba ograničit će pristup klijenta pomoću opcije -c i tražit će od korisnika navedene vjerodajnice. U ovom će primjeru biti korisničko ime ubunlog i lozinku 12345.
$GOBIN/gotty -w -p "9000" -c "ubunlog:@12345" top
Generiraj slučajni URL u Gottyju
Drugi način ograničavanja pristup poslužitelju koristi opciju -r. Ovdje će GoTTY generirati nasumični URL tako da samo korisnici koji to znaju mogu pristupiti poslužitelju.
Oni koje smo upravo vidjeli samo su neke stvari koje se mogu učiniti s GoTTY. Oni mogu konzultirajte ove i druge, detaljnije iz stranica GitHub projekta. Ovo je jedno od rješenja koje nije za sve, ali ako trebate ono što radi, dobro je imati tu mogućnost na raspolaganju.