Kitame straipsnyje apžvelgsime „GoTTY“. Tai programa, leidžianti vartotojams dalintis programomis į „Gnu / Linux“ terminalą per interneto naršyklę. „GoTTY“ yra paprastas interneto serveris parašyta „Go“, kuri paleidžia ne GUI programą ir gali būti paleista taip, kad naršyklė galėtų ją parodyti ir pasirinktinai leidžia vartotojui bendrauti.
Galbūt ne visi ras galimybę paleiskite konkrečią komandinės eilutės programą naršyklės lange. Tačiau yra keletas atvejų, pavyzdžiui, kai mes norime stebėti sistemą nuotoliniu būdu naudojant „top“, nereikalaujant prisijungti prie sistemos, kai gali būti įdomu turėti tokią galimybę.
Jei galime pasiekti, kad „top“ išvestis būtų rodoma naršyklės lange, tai būtų labai paprastas sprendimas. Nors tam pačiam rezultatui gauti yra kitų galimybių, mes galime būti suinteresuoti turėti kitas komandinės eilutės funkcijas arba galimybę naudoti autentifikuotus vartotojus sąveikai su veikiančia programine įranga. Tai ir kiti dalykai, „GoTTY“ leis mums tai padaryti lengvai.
„GoTTY“ diegimas „Ubuntu“
Norėdami naudoti „GoTTY“, turėsime įdiegti „Go“. Daugumoje „Gnu / Linux“ platinimų oficialioje saugykloje yra „Go“ kalba, todėl mes galime lengvai ją įdiegti. Norėdami įdiegti ir sukonfigūruoti tai savo „Ubuntu“, prieš kurį laiką rašėme šiame tinklaraštyje a straipsnis kuriame paaiškinta, kaip tai padaryti paprastu būdu.
Mes taip pat reikia įdiegti git, kurį galime padaryti įvesdami terminalą (Ctrl + Alt + T):
sudo apt install git
Kai jau turime „Go“, galime pradėti rašyti šiuos dalykus. Ši komanda įdiegs „GoTTY“ dvejetainį elementą jūsų aplinkos kintamajame:
go get github.com/yudai/gotty
į patikrinkite, ar viskas buvo teisinga, parašykite šią komandą:
ls $GOPATH/bin/
Kaip naudoti „GoTTY“ „Ubuntu“
Norėdami jį įvykdyti, naudosime šią sintaksę:
$GOBIN/gotty [opciones] <comando>
Jei tai nesvarbu paleisti ir dalintis viršutine komanda, jūs tiesiog turite parašyti:
$GOBIN/gotty top
Viršutinė komanda bus vykdoma jūsų dabartinėje mašinoje 8080 uostas (http://127.0.0.1:8080/). Naršyklėje nematysite statinio vaizdo, ekranas atnaujinamas taip, lyg jis veiktų terminale.
Serveris veiks tol, kol jį užmušite. Tai pasiekiama paspaudus „Ctrl“ + C. Jei kas nors yra prisijungęs prie serverio, reikės dviejų paspaudimų „Ctrl“ + C. Į šią komandą parinktis galima pridėti norint pakeisti prievadą (-p) ir adresą (-a).
Jūs turite tai nepamiršti pagal numatytuosius nustatymus „GoTTY“ neleidžia klientams rašyti įrašų į TTY, tai leidžia pakeisti tik langų dydį.
Redaguokite failą iš naršyklės
Mes sugebėsime Norėdami leisti klientams rašyti TTY, naudokite parinktį -wo –permit-write, kas tai yra nerekomenduojama dėl galimų grėsmių saugumui serveryje.
Ši komanda naudos vi komandinės eilutės redaktorius, kad atidarytumėte failą ubunlog.txt ir leis jį redaguoti iš interneto naršyklės:
$GOBIN/gotty -w vi ubunlog.txt
Naudokite „GoTTY“ su pagrindiniu autentifikavimu (vartotojo vardas ir slaptažodis)
Pirmuoju atveju, į kurį mes ką tik žiūrėjome, mums tikriausiai nelabai rūpi, jei nepažįstami žmonės matys aukščiausią rezultatą. Jei mašina, kurioje veikia „GoTTY“, yra už ugniasienės, pašaliniai žmonės jos nematys. Kai kurių programų to pakaktų. Bet, pavyzdžiui, jei mes leidžiame įeiti (su -w parinktimi), žmonės gali nužudyti procesus nuotoliniu būdu, ir tai tikriausiai nėra gera idėja paskelbti internete.
Norėdami pabandyti tam tikrą sprendimą išspręsti, galime suaktyvinti pagrindinę autentifikavimo sistemą. Čia klientai turės įvesti nurodytą vartotojo vardą ir slaptažodį, kad prisijungtų prie „GoTTY“ serverio.
Ši komanda apribos kliento prieigą naudodamas -c parinktį ir paragins vartotojus pateikti nurodytus kredencialus. Šiame pavyzdyje vartotojo vardas bus ubunlog ir slaptažodį 12345.
$GOBIN/gotty -w -p "9000" -c "ubunlog:@12345" top
Generuoti atsitiktinį URL „Gotty“
Kitas būdas apriboti serverio prieiga naudoja -r parinktį. Čia „GoTTY“ sugeneruos atsitiktinį URL, kad prie serverio galėtų prisijungti tik jį žinantys vartotojai.
Ką tik matėme, yra tik keletas dalykų, kuriuos galima padaryti naudojant „GoTTY“. Jie gali pasitarkite su šiais ir kitais, išsamiau iš projekto „GitHub“ puslapis. Tai yra vienas iš tų sprendimų, kurie netinka viskam, tačiau jei jums reikia to, ką jis daro, gerai, kad ši galimybė yra prieinama.