GoTTY - Linux terminalyňyzy (TTY) web programmasy hökmünde paýlaşyň


GoTTY, terminalyňyzy (TTY) web programmasy hökmünde paýlaşmaga mümkinçilik berýän ýönekeý GoLang esasly buýruk setiridir. Buýruk setir gurallaryny web programmalaryna öwürýär.

Web brauzerlerinde JavaScript esasly terminaly ýerine ýetirmek üçin Chrome OS terminaly emulýatoryny (hterm) ulanýar. Iň esasy zat, GoTTY TTY-dan çykyşy müşderilere geçirýän we müşderilerden giriş alýan (ýagny müşderileriň girişine rugsat berilýän bolsa) we TTY-a ugrukdyrýan web soket serwerini işleýär.

Arhitekturasy (hterm + web soket ideýasy), HTTP we HTTPS arkaly terminaly üpjün edýän Wetty programmasy bilen ylham aldy.

GoTTY işletmek üçin Linux-da GoLang (Go Programming Language) gurşawy bolmaly.

Linux ulgamlarynda GoTTY nädip gurmaly

Eger eýýäm işleýän GoLang gurşawyňyz bar bolsa, ony gurmak üçin aşakdaky go buýrugyny işlediň:

# go get github.com/yudai/gotty

Aboveokardaky buýruk, GOBIN gurşaw üýtgeýjiňizde GoTTY ikili gurar, munuň şeýledigini ýa-da ýokdugyny barlamaga synanyşyň:

# ls $GOPATH/bin/

Linux-da GoTTY nädip ulanmaly

Ony işletmek üçin GOBIN env üýtgeýjisini ulanyp we aşakdaky ýaly awtomatiki usulda buýruk berip bilersiňiz:

# $GOBIN/gotty

Seogsam, ikitaraplaýyn doly ýoly ýazman, GoTTY ýa-da başga bir Go programmasyny işlediň, aşakdaky eksport buýrugyny ulanyp, ~/.profile faýlynda GOBIN üýtgeýjiňizi PATH-a goşuň:

export PATH="$PATH:$GOBIN"

Faýly ýazdyryň we ýapyň. Soňra ýokardaky üýtgeşmeleri amala aşyrmak üçin faýly gözläň:

# source ~/.profile

GoTTY buýruklaryny işletmegiň umumy sintaksisidir:

Usage: gotty [options] <Linux command here> [<arguments...>]

Indi ulgam disk bölekleriniň giňişligini we web brauzerinden ulanylyşyny görmek üçin df buýrugy ýaly islendik buýruk bilen GoTTY işlediň:

# gotty df -h

GoTTY deslapky görnüşde 8080 portda web serwerini açar. Soňra web brauzeriňizde URL: http://127.0.0.1:8080/ açyň we işleýän buýrugy terminalyňyzda işleýän ýaly görersiňiz:

Linux-da GoTTY-ny nädip sazlamaly

~/.gotty profil faýlynda deslapky opsiýalary we terminalyňyzy (hterm) üýtgedip bilersiňiz, bu faýly bar bolan ýagdaýynda adaty ýagdaýda ýükleýär.

Bu goti buýruklary bilen okalýan esasy özleşdirme faýly, şonuň üçin ony aşakdaky ýaly dörediň:

# touch ~/.gotty

GoTTY-y özleşdirmek üçin konfigurasiýa opsiýalary üçin öz dogry bahalaryňyzy belläň (ähli konfigurasiýa opsiýalaryny şu ýerden tapyň):

// Listen at port 9000 by default
port = "9000"

// Enable TSL/SSL by default
enable_tls = true

// hterm preferences
// Smaller font and a little bit bluer background color
preferences {
    font_size = 5,
    background_color = "rgb(16, 16, 32)"
}

Buýruk setirinden --index opsiýasyny ulanyp, öz index.html faýlyňyzy düzüp bilersiňiz:

# gotty --index /path/to/index.html uptime

GoTTY-da howpsuzlyk aýratynlyklaryny nädip ulanmaly

GoTTY ygtybarly howpsuzlygy üpjün etmeýändigi sebäpli, aşakda düşündirilen käbir howpsuzlyk aýratynlyklaryny el bilen ulanmaly.

Üns beriň, adaty ýagdaýda GoTTY müşderilere TTY-a giriş ýazmaga rugsat bermeýär, diňe penjiräniň ölçegini üýtgetmäge mümkinçilik berýär.

Şeýle-de bolsa, müşderilere serwere howp abanmagy sebäpli maslahat berilmeýän TTY-a hat ýazmagyna rugsat bermek üçin -w ýa-da --permit-write opsiýasyny ulanyp bilersiňiz.

Aşakdaky buýruk, web brauzerinde redaktirlemek üçin fossmint.txt faýlyny açmak üçin vi buýruk setiriniň redaktoryny ulanar:

# gotty -w vi fossmint.txt

Aşakda web brauzerinden görnüşi ýaly vi interfeýsi (bu ýerde hemişeki ýaly vi buýruklaryny ulanyň):

Müşderilerden GoTTY serwerine birikmek üçin görkezilen ulanyjy adyny we parolyny talap etmeli esasy tanamak mehanizmini işjeňleşdirmäge synanyşyň.

Aşakdaky buýruk, ulanyjylardan görkezilen şahsyýet maglumatlaryny (ulanyjy ady: synag we parol: @ 67890) soramak üçin -c opsiýasyny ulanyp, müşderiniň girişini çäklendirer.

# gotty -w -p "9000" -c "test:@67890" glances

Serwere girmegi çäklendirmegiň başga bir usuly, -r opsiýasyny ulanmakdyr. Bu ýerde, GoTTY tötänleýin URL döreder, şonuň üçin diňe URL-ni bilýän ulanyjylar serwere girip bilerler.

Şeýle hem, web brauzerleriniň interfeýsiniň adyny kesgitlemek üçin “GoTTY - {{.Command}} ({{.Hostname}})” sözbaşy görnüşini ulanyň we ulgam gözegçilik statistikasyny görkezmek üçin serediş buýrugy ulanylýar:

# gotty -r --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

Web brauzer interfeýsinden görnüşi ýaly ýokardaky buýrugyň netijesi:

Düzgüne görä, serwer bilen müşderileriň arasyndaky ähli baglanyşyk şifrlenenok, ulanyjy şahsyýetnamasy ýa-da başga bir maglumat ýaly GoTTY arkaly gizlin maglumat ibereniňizde, -t ýa-da ulanmaly bolarsyňyz - sessiýada TLS/SSL mümkinçilik berýän -tls opsiýasy:

GoTTY adaty ýagdaýda ~/.gotty.crt şahadatnama faýlyny we ~/.gotty.key açar faýlyny okar, şonuň üçin öz-özüňe gol çekilen şahadatnamany döretmekden başlar. aşakdaky openssl buýrugyny ulanyp açar faýl hökmünde (şahadatnamany we esasy faýllary döretmek üçin berlen soraga jogap beriň):

# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ~/.gotty.key -out ~/.gotty.crt

Soňra SST/TLS açyk görnüşde GoTTY ulanyň:

# gotty -tr --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

Seredip görmek buýrugyny ulanyp bilersiňiz (tmux gurnandygyňyzy anyklaň):

# gotty tmux new -A -s gotty glances 

Başga konfigurasiýa faýlyny okamak üçin –config “/ path/to/file” opsiýasyny ulanyň:

# gotty -tr --config "~/gotty_new_config" --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

GoTTY wersiýasyny görkezmek üçin buýrugy işlediň:

# gotty -v 

Has köp ulanylyş mysallaryny tapmak üçin GoTTY GitHub ammaryna baryp görüň: https://github.com/yudai/gotty

Bu hemmesi! Synap gördüňizmi? GoTTY nädip tapyp bilersiňiz? Aşakdaky seslenme formasy arkaly pikirleriňizi biziň bilen paýlaşyň.