2017 m. sausio 30 d., pirmadienis

Sausio mėnesio naujienos

Naujienos:

Programos:

Išleista Qt 5.8 
Išleista Wine 2.0
Išleista Firefox 51 Su  FLAC Audio Palaikymu, ir WebGL 2.0, pagal nutylėjimą.
Išleista SMPlayer 17.1 Su Chromecast palaikymu
Wayland 1.13 Alpha ir Weston 2.0 Alfa Versija
LineageOS - CyanogenMod projekto pratęsimas, parsisiuntimai jau veikia.

Svetainės:

Oficialios Ubuntu pamokos.
CMD išūkis.

Saugumas:

Lavabid išnaudo atsidaro,
Lavabid yra šifruotas elektroninio pašto tiekėjas, kurį naudojo Edvardas Snoudenas. Šį kart Lavabin paviešina savo pirminį kodą.
Atgoritmai gali atkurti užrakinimo šabloną.
Algoritmai iš filmuotos medžiagos, net ir per didelius atstumus, vien iš pirštų judesių, nematant ekrano, iš 5 kartų gali atkurti užrakinimo šablonus 95 % tikslumu.
Google išleidžia savo root sertifikatus (CA).
Nesutaisytų Heartbleed spragų ataskaita, apie ~200 tūstančių pažeidžiamų serverių.
Linux trojanas Linux.Proxy.10  atidarantis SOCKS5 proxy serverį.

Vaizdinė medžiaga:

Apie Vulkan Grafikos programavimo sąsaja - ką tai reiškia?
Linux 2017 konferencijų įrašai future of opensouce.
White Hat CAll Policy youtube kanalas, su daugybe įdomiu temų

Kita:

Atrasta nauja medžiagos būsena? Laiko kristalai
Struktūra kuri atsikartoja laike. Kai paprasti kristalai atsikartoja erdvėje.

2017 m. sausio 29 d., sekmadienis

Blogger spamas

Pastebėjau, kad atsirado spamas, kuris nori apsimesti, lyg būtų tikras komentaras.

Panašiai kaip yra targeted advertisement, tai dabar atsirado targeted spam

Principas toks:
Randamas blogo įrašas, kuris atitinka kriterijus.
Sugeneruojamas, komentaro turinys, kuris panašus į tikrą komentarą.
Komentaro turinyje įterpiama nuoroda į svetainę.

Pavyzdžiai:
Nuotraukoje matomi robotizuoto blogger spamo pavyzdžiai



Spamo pavyzdžiai komentarų sekcijose:
Statau sodyba 1, 2

2017 m. sausio 27 d., penktadienis

Žaidimai terminale

Greed
Nuotraukoje matome žaidimą greed, kuris žaidžiamas terminale
Žaidimas Greed


Žaidimas, kurio tikslas surinkti kuo daugiau ekrane esančių skaičių.
Priešais esantis skaičius nurodo, atstumą, kuris gali būti nueitas.
@ simbolis, parodo dabartinę buvimo vietą. 

$ sudo apt-get install greed

Moonbuggy
Nuotruakoje  matomas kaip mašina važiuoja "Menuliu"
Pasivažinėjimas mėnuliu. Žaidimo tikslas, peršokti visas kliūtis.

$ sudo apt-get install moon-buggy

nInvaders
Nuotraukoje matomas ninvaders žaidimo langas

Klasikinis kosmoso įsiveržėlių (angl. space invader) žaidimas.

$ sudo apt-get install ninvaders

nsnake
Nuotraukoje matomas gyvatėlės žaidimas terminale
Klasikinis gyvatėlės žaidimas. Su įvairovę nustatymų.

$ sudo apt-get install nsnake

Pacman4Console
Nuotraukoje matomas packman žaidimas terminale
Klasikinis packman žaidimas.

$ sudo apt-get install pacman4console

Sudoku
Nuotraukoje matomas sudoku žaidimas terminale
Klasikinio sudoku žaidimo variantas.  Sudoku, tai tokie galvosūkiai, kuriuose reikia surasti ir įrašyti skaitmenis nuo 1 iki 9 taip, kad skaitmenys nesikartotų eilutėse, stulpeliuose bei paryškintuose 9 langelių (3×3) kvadratuose. .

$ sudo apt-get install sudoku

Nethack
Nuotraukoje matomas ASCII žaidimas - nethack
Požemių tyrinėjimo, nuotykių žaidimas. Žaidimas sukurtas 1987 metai ir tobulinamas iki šių dienų.

Kelios komandos:
Navigacija:
h (dešinė)j(apačia) k(viršus) l(kairė)
 _ ir . > <- greitas keliavimas
Komandos:
q - gerti/ e - valgyti
, - daiktų pakėlimas, P-žiedų/amuletų užsidėjimas, a-naudojimas
o/Ctrl+d - atidaryti duris
d - (drop) daikto išmetimas D - kelių daiktų išmėtimas.
i - (inventory) invetorius.
A - daiktų nuėmimui.
f - mesti instrumentą,
p-mokėti parduotuvėje.

#adjust - leidžia pakeisti inventoriaus daiktų raides.
#pray - malda, padeda sunkiomis akimirkom.
#enhanced - įgudžiai.
#force - atidaro dėžes.
#untrap
durų atrakinimas
a(apply)?(pasirinkimas)
@ - automatinis daiktų rinkimas

Nurodant krypti
. - yra kvadratas, kuriame stovi.

Daugiau komandų ir paaiškinimų čia ir komandos, Wiki 3.6 versijos kompiliavimas čia.

$ sudo apt-get install nethack-console

Robot Finds Kitten


Tu esi robotas (#), tavo užduoti surasti kačiuką.

$ sudo apt-get install robotfindskitten


2048
Žaidimo tikslas yra sujungti vienodus numerius kartu, siekiant pasiekti '2048 'plytelės skaičių.
Valdymo klavišai: hjkl arba wasd

Diegimo instrukcija github puslapyje.

2017 m. sausio 26 d., ketvirtadienis

Kodėl negalima paleidinėti komandų iš nepatikimų šaltinių?

Pamėginkime paleisti šią komandą:
 ls ; clear; echo 'Haha! Turiu priėjimas prie tavo kompiuterio!';sleep 1;  echo 'Kompiuteris nulaužtas :^).'; sleep 1; tput setaf 1; echo 'Niekados nepaleidinėkite komandų iš nežinomų šaltinių, ypač su'; tput bold; echo 'sudo!'
-lat
Perspėjimas: Viduje yra paslėptas kodas

Štai kokios dovonos slepiasi tarp ls ir -lat:

Ačiū Suresh Alse

Linux linksmybės



Matrica terminale
Nuotraukoje matomas krentantis tekstas, kaip iš filmo matrica

Pabusk Neo. Atsakymas yra ten, ir jis ieško tavęs, ir jis suras tave, jei tu to norėsi.

Veiksmai:
# apt-get install cmatrix


Traukinukas


Kiekvieną kartą neteisingai suvedus ls, pravažiuoja traukinukas.

Veiksmai:
# apt-get install sl


Sudo įžeidinėjimai

Nustatymas, kuris kiekvieną kartą neteisingai įvedus sudo slaptažodį, generuoja pranešimą.

[sudo] password for up: 
I've seen penguins that can type better than that.
[sudo] password for up: 
It can only be attributed to human error.

Veiksmai:

$ sudo visudo # Atsidarom /etc/sudoers
Ir prirašom šia eilutę: Defaults insults




Daugiau linksmybiu čia.

2017 m. sausio 23 d., pirmadienis

Inkscpace

Ctrl + R - Įjungia/Išjungia liniuotę
Shift + 3 - Įjungia grid.
Ctrl + D - Dubliuoja objektą.
Ctrl + G/U - Grupuoja/Atskiria objektus.
Neišgrupavus, galima lengvai išsirinkti vieną objektą, laikant Ctrl.

Spalvos keitimas:
Pažymėjus objektą ir nuspaudus Shift keičiasi punktyrinės linijos spalva.

Lygiavimas:
Objektai lygiuojami santykinai pagal pasirinktą nustatymą, Relative to.

Pažymėjus objektus, juos galima:
[] - Sukti
<> - Keisti dydį.

Pasirinkus Select And Transform Objects, nuspaudus Shift +S pereinama pasukimo rėžimą.
Kaip pasirinkti objektą, kuri užstoja figūrą: Alt + Paspausti vietą kur yra tas objektas.
Kelių objektų pasirinkimas: Laikant Shift mygtuką arba laikant Alt ir brėžiant liniją

Select And Transform Objects - S
H- pasuka objektą horizontaliai, V - vertikaliai.

Edit Paths By Nodes - N
Ir pasirinkus convert selected object to path:

Shift + ! - Pažymės visus priešingus objekto taškus.
Parašius tekstą ir lankant Alt mygtuką, pažymėtas tekstas deformuosis
Ctrl+L arba Ctrl + Alt - šalina po vieną bezier tašką
Shift- pažymima keli taškai, per taškus cirkuliuoti galima su Tab


Tweak objects by sculting or painting - W
Zoom in or out - Z
~ klavišas sugrąžina į ankstesnį zoom vaizdą.
Q - priartina pažymėtą objektą.

Create rectagles and squares - R
Shift + Taškas toliau centro, keičia figūros dydį. pasuka figūrą.
Alt + Taškas arčiau centro, suspaudžia/praplečia linijas.

Create 3D boxes - X
Create circles, ellipses, and arcs - E

Create stars and polygons - *
Alt+Taškas arčiau centro - Keičia atsitiktinę generacija.
Shift + Taškas arčiau centro - Sudaro pasikartojančias figūras,
Taškas toliau centro, keičia figūros pasisukimo kryptį.

Create spirals - I
Draw freehand lines - P

Draw Bezier curves and straight lines - B
Ctr + K sukungia kelias pažymėtas Bezier linijas

Draw calligraphic or brush strokes - C
Create and edit text objects - T
Spray objects by sculpting or painting - A
Erase existing paths - E arba Shift+E
Fill bounded areas -
Create and edit gradients - G
Pick colors from images - D
Create diagram connectors - O

Resursai:
Inskape greitieji klavišai.

2017 m. sausio 20 d., penktadienis

Jungimasis prie prievadų

Kaip prisijungti prie http protokolo ir gauti atsaką?

$ telnet localhost 80
GET /index.php

$ netcat 127.0.0.1 80
GET /index.html

Parametrų siuntimas atrodytų taip:
GET /index.php?id=1


Antraštės sugavimas:
$ nc akl.lt 80
HTTP/1.1
...
<address>Apache/2.4.7 (Ubuntu) Server at wildcard.akl.lt Port 80</address>
...


Serveris atsakys su HTTP būsena ir puslapio pirminiu kodu:
$ telnet www.akl.lt 80
GET / HTTP/1.1
Host: www.akl.lt

...
HTTP/1.1 200 OK
...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
...


Failų dalinimasis:

$ nc -v -l -p 8000 < informacija.txt

Atidaromas failas:
$ nc 192.168.11.119 8000
$ telnet 192.168.11.119 8000
$ firefox -new-tab 192.168.11.119:8000

Perkeliamas failas:
$ nc -l -p 6868 > file.txt
$ nc 31.41.59.26 6868 < file.txt


2017 m. sausio 19 d., ketvirtadienis

ip komandos pavyzdžiai

Ip komanda yra pagrindinės iproute2 paketo komponentas. Ši komanda gali būti naudojama keisti įvairius Linux tinklo aspektus. Keletas komandų turi trumpinius, kurie atlieką tą patį funkcionalumą.

Galima stebėti IPv4 arba IPv6 informacija su -4 arba -6 nustatymu:
$ ip -4 a # Atspausdint tik IPv4 informacija
$ ip -6 a # Atspausdint tik IPv6 informacija


IP adresai

Rodo visus ip adresus:
# ip adresess
# ip a
# ip addresess show
# ip a s

Prideda ip adresą:
# ip address add 192.0.2.10/27 dev eth0

Trina ip adresą:
# ip address delete 192.0.2.1/24 dev eth0
# ip a del 192.168.77.25/24 dev eth0 #arba

Trina visus ip adresus iš sąsajos:
# ip address flush dev eth1

Tinklo sąsajos pervadinimas:
# ip l s enp4s0 down
# ip l s enp4s0 name tinklas # Ši komanda veiks tik tuomet, kai sąsaja bus down režime
# ip l s tinklas up

Transliavimo grupės adresu, peržiūra:
# ip maddr

Numatytieji maršrutai (ang. default route)


Rodo visus maršrutus:
# ip route
# ip r
# ip route show
# ip r s

Numatytojo maršruto trinimas:
# ip route del default

Prideda default route:
# ip r add default via 10.0.2.2 dev eth0
# ip route change default via 192.168.77.1 #arba

IP adreso draudimas:
# ip route add prohibit 192.168.11.132
# ip route add prohibit 192.168.11.132 from 192.168.11.135

# ip route del prohibit 192.168.11.132 # Draudimo pašalinimas


ARP - kaimyniniai adresai

# ip neighbor show
# ip n s #arba

PERMANENT - Rodo, kad šis įrašas buvo suvestas į komandinę eilutę.
REACHABLE - Reiškia, kad kompiuteris yra pasiekiamas.
STALE     - Rodo, kad yra reikia patikrinti adresą.

Naujo kaimyno pridėjimas.
# ip n add 192.168.77.23 lladdr 00:c0:7b:7d:00:c8 / dev eth1 nud perm

ARP įrašo trinimas
# ip n del 192.168.77.23 dev eth1

Pokyčių stebėjimas:

Stebės link, address, route, mroute, neigh pokyčius.
# ip monitor all

Prievadų informacija:
$ ss -n # -n numeruoja prievadus
$ ss -l # -l rodo prievadus, kuriuose klausomasi
$ ss -lp  # -p rodo procesus, kurie naudoja prievadus


$ ss -pn | grep :80
tcp ESTAB 0 0 127.0.0.1:39544 127.0.0.1:80 users:(("chrome",pid=6720,fd=212))


Ačiū Marek Andreánsky už išsamia informacija apie ip komandą.

2017 m. sausio 18 d., trečiadienis

Ekranų valdymas

Paprastas visų ekranų išjungimas
$ xset dpms force off

Tam, kad galėtume išjungti tam tikrus vaizduoklius, pirmiausiai turime sužinoti jų pavadinimus.
$ xrandr -q
...
HDMI-0 connected 1920x1080+1920+16 (normal left inverted right
..
DVI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis)


$ xrandr --output HDMI-0 --off # Paprastas vieno ekrano išjungimas.
$ xrandr --output HDMI-0 --auto # Įjungiam ekraną


Nuotruakoje matome kaip išdėstyti vaizduokliai, kaireje pusėje DVI-1, dešnėje HDMI-0
Vaizduoklių išdėstymas

Įjungus HDMI-0 monitorių su --auto komandą, monitorius ėmė dubliuoti pirmąjį DVI-1 monitorių. Galime priskirti, ekrano pozicija, nurodydami, kurioje vietoje jis turėtų atsirasti su --right-of komanda:

Dešiniojo ekrano įjungimas/išjungimas
$ xrandr --output HDMI-0 --off
$ xrandr --output HDMI-0 --right-of DVI-1 --auto

Kairiojo ekrano įjungimas/išjungimas
$ xrandr --output DVI-1 --off
$ xrandr --output DVI-1 --left-of HDMI-0 --auto --primary

2017 m. sausio 17 d., antradienis

Sisteminių įrašų stebėjimas

Atsidarius less ar journalctl langui ir nuspaudus Shift f, rodis naujus įrašus, panašiai kaip su tail -f komanda.

Branduolio įrašai:
$ journalctl -k

Tarnybų įrašai::
$ journalctl -u cron.service

Naujų įrašų stebimas:
$ journalctl -k -f

/var/log katalogo naujų įrašų stebėjimas:
$ tail -f /var/log/auth.log
$ tail -f /var/log/apache2/access.log

2017 m. sausio 14 d., šeštadienis

espeak pavyzdžiai

"Espeak" ir "Festiva" yra  balso sintezavimo (angl. TTS,  Text To Speech) programos, kurios užrašytą tekstą perskaito balsu. Ačiū opensuse.lt

espeak

-s skaitymo greitis, numatyta reikšmė 160
-w - nusako, kad failas bus įrašomas kaip .wav formatu

$ espeak -s 200 "Faster and faster" #Greitinam skaitymo greitį
$ espeak -s 20 "Slower and slower" #Lėtinam skaitymo greitį

Kaip pasižiūrėti kokiomis kalbomis galime šnekinti kompiuterį?

$ espeak --voices5 de M german de
5 el M greek europe/el
5 en M default default
...
2 en-gb M english en (en-uk 2)(en 2)
5 lt M lithuanian europe/lt
5 lv M latvian europe/lv
...


$ espeak --voices=lt
Pty Language Age/Gender VoiceName File Other Languages
5 lt M lithuanian europe/lt     

Šnekinimas lietuvių kalba:

$ espeak -v lt "Išreikštos mintys visados yra negyvos. Hermanas Hesė"


Skaitymas atsisiunčiant internetinį puslapį:

$ wget -qO - http://espeak.sourceforge.net/languages.html | espeak -m -ven+11

Vertimas klausomu .wav formatu:

Tekstinio failo:

$ espeak -f Tekstinio_failo_pav.txt -w wav --stdout >> Audio_failo_pav.wav

Pažymėto teksto rašymas į .wav. failo formatą:

$ echo "$(xsel -o)" | espeak --stdin -w /tmp/file.wav

.pdf dokumento keitimas į .wav rinkmeną:

$ pdftotext -layout pdf-failas.pdf - | espeak --stdin -w /tmp/pdf-file.wav

2017 m. sausio 10 d., antradienis

xdotool pavyzdžiai

Su xdotool programa galima automatizuoti pelytės valdymą.

Mygtukų reikšmes galime rasti su xev komanda.

Gauname pelytės koordinates:

$ xdotool getmouselocation
x:969 y:0 screen:0 window:67108881 

Pelytė buvo ekrano viršuje, maždaug ties viduru. XXX - nusako verikalės koordinates, kai - YYY horizontalės. Viršuje, kairiame kampe, koordinatės yra: x:0 y:0.

Žemiau esančiame pavyzdyje, pelytė bus nuspaudžiama, kas 5 sekundes.

#!/bin/bash
    TEMPFILE=$(mktemp);
    xprop > $TEMPFILE;
    X=$(awk '{print $1}' $TEMPFILE | grep -o [[:digit:]]*)
    Y=$(awk '{print $2}' $TEMPFILE | grep -o [[:digit:]]*)
   
    while [ 1 ]; do
    xdotool mousemove $X $Y click 1 &
    sleep 5
    
    rm -f $TEMPFILE
done

Paprastas klavišų siuntimas:

$ xdotool key  Control_L+Shift_L+KP_0 #Siunčiame Ctrl+Shift+0 klavišų kombinacija
$ xdotool key Control_L+KP_Multiply # Ctrl+*

Lango aktyvavimas:

WID=`xdotool search "Mozilla Firefox" | head -1` #Randam programos langą ir išsaugom lango id

Langų informacija:

Gaunam langų id, ir peržiūrim langų pavadinimus
$ xdotool search --class "vlc" | while read; do xdotool getwindowname $REPLY; done
vlc
vlc
vlc
Ashton Lane - One Kiss Later [M2y] - VLC media player


Randame tik VLC media player id:

$ xdotool search --class "vlc" | while read; do name=$(xdotool getwindowname $REPLY); [[ $name == *"VLC media player" ]] && echo $name ; done
#!/bin/bash

pids=$(xdotool search --class "vlc")
for pid in $pids; do
    name=$(xdotool getwindowname $pid)
    if [[ $name == *"VLC media player" ]]; then
        #Do what you want, $pid is your sought for PID,
        #matching both class gvim and TODO in title
  echo $name
    fi
done

Viena eilute:
$ xdotool search --class "vlc" | while read; do name=$(xdotool getwindowname $REPLY); [[ $name == *"VLC media player" ]] && echo $name ; done

Arba galime rasti pažymėjus langą:

WINDOWID=$(xdotool selectwindow) #Randam lango id nurodžius langą pelyte

$ xdotool windowactivate --sync $WID #Aktyvuojam langą
$ xdotool key --clearmodifiers ctrl+l  #Aktyvuojam įvedimo laukelį

Lango paieška ir komandos išsiuntimą, galime atlikti viena komanda:

$ xdotool search "Mozilla Firefox" windowactivate --sync key --clearmodifiers ctrl+l # Siunčiam Ctrl+l klavišą Mozilai

$ xdotool search "VLC media player" windowactivate --sync key --clearmodifiers n # Siunčiam n mygtuką vlc grotuvui

Paleidžiam chrome naršyklę ir įvedam url:

/bin/bash -c "chromium-browser&sleep 2&&xdotool type 'technologijos.lt'&&xdotool key Return"

Daugiau:

2017 m. sausio 3 d., antradienis

awk pavyzdžiai

awk - tai komanda turinti programavimo kalboms būdingų bruožų. Ši komanda atskiria failų eilutes, kuriose atrandamas vartotojo užkoduotas šablonas.

-F: - laukelio skyriklis, paprastai skyriklis yra tarpas. Skaitant passwd failą, jį pakeiskime į ":".
$0 - visų argumentų atvaizdavimas.
$1..$n - n argumento atvaizdavimas.

Rezervuoti kintamieji:
NR - Perskaitytų failo eilučių kiekis faile.
NF - Laukų skaičius einamojoje eilutėje.
exit - Programos nutraukimas.

$ awk -F: '{print $1}' /etc/passwd #Atspausdins visus passwd failo vartotojus  ($1)
$ awk -F: '{print $1, $3}' /etc/passwd #Atspausdins 1, 3 dvitaškiu atskirtą žodį
$ awk -F : '$3 > 1000 {print $0}' /etc/passwd #Atspausdins tik tas eilutes, kurių vartojo id ($3) > 1000

Kaip atspausdinti eilutes tam tikru  intervalu?

$ cat -n aaa | awk 'NR%2==1' #Pradeda, nuo 1 eilutės ir spausdinam, kas 2

Kaip gauti intarvalą tarp dviejų reikšmių?

$ awk -F : '($3 > 1000) && ($3 <= 1003) {print $0}' /etc/passwd #Atspausdins vartotojus, kurių id 1000 > x < 1003

Tuščių eilučių pašalinimas, kartu  atspausdinant tam tikrą eilučių skaičių:
$ awk '{$2=$2};1 && FNR <= 5' file #Su && sujungiame komandas.

Argumentų reikšmių priskyrimas:
$ echo "vienas du trys atspausdintas tekstas" | awk '{$1=$2=$3="";print}' #Atspausdins tik " atspausdintas tekstas"

Scenarijai

Kaip rasti negaliojančius sistemos vartotojus?

Vartotojų galiojimo laikas kontroliuojamas chage komandą. Galiojimo laikas saugomas /etc/shadow dokumente, nurodant dienų skaičių po epochos laiko pradžios.
TODAY=$(echo $(($(date --utc --date "$1" +%s)/86400))) #Dienos praėjusios po 1970 sausio 1 d iki šiandien
$ sudo gawk -F: '{if (($8 > 0) && ($TODAY > $8)) print $1}' /etc/shadow

Kaip atspausdinti savo ip adresą?

$ ip a s $(ip r s 0/0 | awk '{print $5;exit}') | awk '$1 ~ /inet$/ {print $2;exit}'


Prie kokių servisų esam prisijungę?:
$ netstat -np | awk '{print $7}' | awk -F/ '{count[$2]++}END{for(j in count) print count[j],j}' | sort -nr