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ň.