From 205af0b53bee6bf20a39322b4f21456ff6788f82 Mon Sep 17 00:00:00 2001 From: photovolter Date: Sun, 20 Feb 2022 17:30:05 +0100 Subject: [PATCH 01/15] =?UTF-8?q?dodany=20skrypt=20tworz=C4=85cy=20swapfil?= =?UTF-8?q?e=20na=20AWS=20EC2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../create_swapfile_on_aws_ec2_server.sh | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh diff --git a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh new file mode 100644 index 00000000..66ab9758 --- /dev/null +++ b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +do_the_job=$1 + +swapfile = "/swapfile" + +if [ ! -e $swapfile ]; then + echo "$swapfile exists!" +# Checking the swapfile is non-existing +# else: +# if [ -z $(swapon --show=NAME) ]; then +# fallocate -l 2G /swapfile && +# chmod 600 $swapfile && +# mkswap $swapfile +# swapon $swapfile +# echo -e "$swapfile\tswap\tswap\tdefaults\t0\t0" >> /etc/fstab +# fi +# fi +else: + if [ -z $(swapon --show=NAME) ]; then + echo "fallocate -l 2G /swapfile" && + echo "chmod 600 $swapfile" && + echo "mkswap $swapfile" + echo "swapon $swapfile" + echo "echo -e "$swapfile\tswap\tswap\tdefaults\t0\t0" >> /etc/fstab" + fi +fi +swapon --show + From 321d58746be77b0777d9b40fe02698fdb589365a Mon Sep 17 00:00:00 2001 From: photovolter Date: Sun, 20 Feb 2022 17:38:17 +0100 Subject: [PATCH 02/15] =?UTF-8?q?poprawki=20sk=C5=82adni,=20dodatkowy=20te?= =?UTF-8?q?st=20na?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh index 66ab9758..989cc066 100644 --- a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh +++ b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh @@ -7,7 +7,8 @@ swapfile = "/swapfile" if [ ! -e $swapfile ]; then echo "$swapfile exists!" # Checking the swapfile is non-existing -# else: +elseif [ $1 == "mkswapfile" ]; then + echo "Tworzę swapfile w pliku $swapfile" # if [ -z $(swapon --show=NAME) ]; then # fallocate -l 2G /swapfile && # chmod 600 $swapfile && @@ -15,8 +16,7 @@ if [ ! -e $swapfile ]; then # swapon $swapfile # echo -e "$swapfile\tswap\tswap\tdefaults\t0\t0" >> /etc/fstab # fi -# fi -else: +else; if [ -z $(swapon --show=NAME) ]; then echo "fallocate -l 2G /swapfile" && echo "chmod 600 $swapfile" && From 3195384c2ca91b8f46c662ab90f5a4130b3d442c Mon Sep 17 00:00:00 2001 From: photovolter Date: Sun, 20 Feb 2022 18:09:56 +0100 Subject: [PATCH 03/15] =?UTF-8?q?poprawki=20zwi=C4=85zane=20z=20nieumiej?= =?UTF-8?q?=C4=99tno=C5=9Bci=C4=85=20u=C5=BCywania=20gita=20:)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh index 989cc066..b1111011 100644 --- a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh +++ b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh @@ -16,7 +16,7 @@ elseif [ $1 == "mkswapfile" ]; then # swapon $swapfile # echo -e "$swapfile\tswap\tswap\tdefaults\t0\t0" >> /etc/fstab # fi -else; +else if [ -z $(swapon --show=NAME) ]; then echo "fallocate -l 2G /swapfile" && echo "chmod 600 $swapfile" && @@ -25,5 +25,5 @@ else; echo "echo -e "$swapfile\tswap\tswap\tdefaults\t0\t0" >> /etc/fstab" fi fi + swapon --show - From 9578fe12ff15e6c2b3322a7150093137834467b5 Mon Sep 17 00:00:00 2001 From: photovolter Date: Sun, 20 Feb 2022 18:17:07 +0100 Subject: [PATCH 04/15] =?UTF-8?q?odwr=C3=B3cenie=20warunku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh index b1111011..ae2764f0 100644 --- a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh +++ b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh @@ -4,7 +4,7 @@ do_the_job=$1 swapfile = "/swapfile" -if [ ! -e $swapfile ]; then +if [ -e $swapfile ]; then echo "$swapfile exists!" # Checking the swapfile is non-existing elseif [ $1 == "mkswapfile" ]; then From 866b28b3a5b9b90ba1efdd7af4d73a12304a55eb Mon Sep 17 00:00:00 2001 From: photovolter Date: Sun, 20 Feb 2022 18:20:28 +0100 Subject: [PATCH 05/15] =?UTF-8?q?poprawa=20sk=C5=82adni=20elseif=20->=20el?= =?UTF-8?q?if?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh index ae2764f0..aabc545b 100644 --- a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh +++ b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh @@ -7,7 +7,7 @@ swapfile = "/swapfile" if [ -e $swapfile ]; then echo "$swapfile exists!" # Checking the swapfile is non-existing -elseif [ $1 == "mkswapfile" ]; then +elif [ $1 == "mkswapfile" ]; then echo "Tworzę swapfile w pliku $swapfile" # if [ -z $(swapon --show=NAME) ]; then # fallocate -l 2G /swapfile && From d68ffe0e88c393027cf242e1bafb718e8adecf1a Mon Sep 17 00:00:00 2001 From: PhotoVolter Date: Sun, 20 Feb 2022 20:13:22 +0000 Subject: [PATCH 06/15] =?UTF-8?q?wersja=20dzia=C5=82aj=C4=85ca?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../create_swapfile_on_aws_ec2_server.sh | 38 ++++++++++++------- 1 file changed, 25 insertions(+), 13 deletions(-) mode change 100644 => 100755 pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh diff --git a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh old mode 100644 new mode 100755 index aabc545b..ad18c8e3 --- a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh +++ b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh @@ -1,24 +1,36 @@ #!/bin/bash +arg1=$1 +do_the_job='mkswapfile' +# Zmienna size określa wielkość pliku wymiany +# size=2G +size=1G -do_the_job=$1 +#echo "\$0 to: $0" +#echo "\$1 to: $1" +#echo "\$2 to: $2" -swapfile = "/swapfile" +swapfile="/swapfile" -if [ -e $swapfile ]; then +if [[ -e $swapfile ]]; then echo "$swapfile exists!" # Checking the swapfile is non-existing -elif [ $1 == "mkswapfile" ]; then +elif [[ $do_the_job == $arg1 ]]; then echo "Tworzę swapfile w pliku $swapfile" -# if [ -z $(swapon --show=NAME) ]; then -# fallocate -l 2G /swapfile && -# chmod 600 $swapfile && -# mkswap $swapfile -# swapon $swapfile -# echo -e "$swapfile\tswap\tswap\tdefaults\t0\t0" >> /etc/fstab -# fi + if [[ -z $(swapon --show=NAME) ]]; then + fallocate -l $size /swapfile && + chmod 600 $swapfile && + mkswap $swapfile + swapon $swapfile + if [[ -z $(grep 'swap' < /etc/fstab) ]]; then + echo -e "$swapfile\tswap\tswap\tdefaults\t0\t0" >> /etc/fstab + else + echo "Wpis odnoszący się do swap już istnieje w /etc/fstab. Skontroluj zawartość /etc/fstab i wyedytuj go samodzielnie." + fi + fi else - if [ -z $(swapon --show=NAME) ]; then - echo "fallocate -l 2G /swapfile" && + if [[ -z $(swapon --show=NAME) ]]; then + echo "Jeżeli wywołasz skrypt z argumentem $do_the_job, to wykonam polecenia:" && + echo "fallocate -l $size /swapfile" && echo "chmod 600 $swapfile" && echo "mkswap $swapfile" echo "swapon $swapfile" From 8f0f35d27298e50a1c39703d58a5a6c9696fbc98 Mon Sep 17 00:00:00 2001 From: photovolter Date: Sun, 20 Feb 2022 23:58:52 +0100 Subject: [PATCH 07/15] added some comments to script --- .../create_swapfile_on_aws_ec2_server.sh | 43 +++++++++++++++---- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh index ad18c8e3..700dda65 100755 --- a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh +++ b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh @@ -1,19 +1,37 @@ #!/bin/bash +############################################################################## +# # Bash (watch out double square brackets!) script # +# # for create swapfile on AWS EC2 Ubuntu server # +# # Tested on Ubuntu 20.04 LTS # +############################################################################## + arg1=$1 do_the_job='mkswapfile' -# Zmienna size określa wielkość pliku wymiany -# size=2G +############################################################################## +# # Zmienna size określa wielkość pliku wymiany # size is swapfile size :) # +# # size=2G # +############################################################################## size=1G - -#echo "\$0 to: $0" -#echo "\$1 to: $1" -#echo "\$2 to: $2" +############################################################################## +# # For debugging purpose # +# #echo "\$0 to: $0" # +# #echo "\$1 to: $1" # +# #echo "\$2 to: $2" # +############################################################################## swapfile="/swapfile" +############################################################################## +# # Checking the swapfile is non-existing # I'm sorry for my english :) # +############################################################################## if [[ -e $swapfile ]]; then echo "$swapfile exists!" -# Checking the swapfile is non-existing +############################################################################## +## If swapfile is non exist, then check the argument1 is proper # +## For now only accepted argument is 'mkswapfile' - # +## empty argument or any other is equivalent of help (it shows commands # +## queue) # +############################################################################## elif [[ $do_the_job == $arg1 ]]; then echo "Tworzę swapfile w pliku $swapfile" if [[ -z $(swapon --show=NAME) ]]; then @@ -27,6 +45,11 @@ elif [[ $do_the_job == $arg1 ]]; then echo "Wpis odnoszący się do swap już istnieje w /etc/fstab. Skontroluj zawartość /etc/fstab i wyedytuj go samodzielnie." fi fi +############################################################################## +# # # +# # If argument1 is not valid show command queue # +# # # +############################################################################## else if [[ -z $(swapon --show=NAME) ]]; then echo "Jeżeli wywołasz skrypt z argumentem $do_the_job, to wykonam polecenia:" && @@ -37,5 +60,9 @@ else echo "echo -e "$swapfile\tswap\tswap\tdefaults\t0\t0" >> /etc/fstab" fi fi - +############################################################################## +# # # +# # Always show "swapon --show" # +# # # +############################################################################## swapon --show From 5ff141e1d21925bd3195ef3865de85584988e8e1 Mon Sep 17 00:00:00 2001 From: photovolter Date: Mon, 21 Feb 2022 00:11:27 +0100 Subject: [PATCH 08/15] added TODO: function check_free_disk_size --- pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh index 700dda65..7de07266 100755 --- a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh +++ b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh @@ -31,6 +31,8 @@ if [[ -e $swapfile ]]; then ## For now only accepted argument is 'mkswapfile' - # ## empty argument or any other is equivalent of help (it shows commands # ## queue) # +## TODO: function check_free_disk_size() to determine free size on disk and # +# stop creating swapfile (or modify swapfile filesize) # ############################################################################## elif [[ $do_the_job == $arg1 ]]; then echo "Tworzę swapfile w pliku $swapfile" From b9bc6d30aa3c82e085ab8be703e50584c29de2c9 Mon Sep 17 00:00:00 2001 From: photovolter Date: Mon, 21 Feb 2022 00:14:49 +0100 Subject: [PATCH 09/15] modified comment --- pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh index 7de07266..e30f6e68 100755 --- a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh +++ b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh @@ -50,7 +50,7 @@ elif [[ $do_the_job == $arg1 ]]; then ############################################################################## # # # # # If argument1 is not valid show command queue # -# # # +# # (bottom list is sketch of steps to do) # ############################################################################## else if [[ -z $(swapon --show=NAME) ]]; then From dc15440edad31d2bea148668d414cd11d8fb32ff Mon Sep 17 00:00:00 2001 From: photovolter Date: Mon, 21 Feb 2022 00:21:08 +0100 Subject: [PATCH 10/15] modified comment, again --- pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh index e30f6e68..70ad80dd 100755 --- a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh +++ b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh @@ -2,7 +2,7 @@ ############################################################################## # # Bash (watch out double square brackets!) script # # # for create swapfile on AWS EC2 Ubuntu server # -# # Tested on Ubuntu 20.04 LTS # +# # Tested on Ubuntu 20.04 LTS (I'm sorry for my english) # ############################################################################## arg1=$1 @@ -22,7 +22,7 @@ size=1G swapfile="/swapfile" ############################################################################## -# # Checking the swapfile is non-existing # I'm sorry for my english :) # +# Checking the swapfile is non-existing # I'm sorry for my english. Again :) # ############################################################################## if [[ -e $swapfile ]]; then echo "$swapfile exists!" @@ -64,7 +64,7 @@ else fi ############################################################################## # # # -# # Always show "swapon --show" # +# # Always show "swapon --show" #(•_ㅅ_•) # # # # ############################################################################## swapon --show From a586516a5f3c01dfac08945e594496caf601e2da Mon Sep 17 00:00:00 2001 From: photovolter Date: Thu, 24 Feb 2022 00:28:10 +0100 Subject: [PATCH 11/15] =?UTF-8?q?Dodanie=20komentarzy.=20Du=C5=BCe=20zmian?= =?UTF-8?q?y=20kodu.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh index 70ad80dd..e6f552bb 100755 --- a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh +++ b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh @@ -33,6 +33,11 @@ if [[ -e $swapfile ]]; then ## queue) # ## TODO: function check_free_disk_size() to determine free size on disk and # # stop creating swapfile (or modify swapfile filesize) # +# # +# use something like: # +# df --output=avail / # +# # +# # ############################################################################## elif [[ $do_the_job == $arg1 ]]; then echo "Tworzę swapfile w pliku $swapfile" From 711122dbfd36d45f46b5a335e526968cd83879a9 Mon Sep 17 00:00:00 2001 From: photovolter Date: Sat, 5 Mar 2022 15:22:49 +0100 Subject: [PATCH 12/15] =?UTF-8?q?Poprawiono=20liter=C3=B3wki=20i=20interpu?= =?UTF-8?q?nkcj=C4=99.=20Ujednoznaczniono=20czego=20dotyczy=20plik=20'conf?= =?UTF-8?q?ig'=20-=20jest=20to=20plik=20konfiguracyjny=20ssh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 0b6b3d89..05068dd4 100644 --- a/README.md +++ b/README.md @@ -10,15 +10,15 @@ To przygoda otwierająca zajęcia programowania xD Czas trwania: ok 120-180 minut, chociaz można tu spędzić wiele czasu i często wracać, ciągle ucząc się nowych rzeczy i poznając świetnych ludzi. Jak masz już trochę doświadczenia i wiesz co robisz, to uda Ci się powiesić flagę w ok. 30 minut. ### Cel -Przygotuj wszystko czego trzeba aby rozpocząć naukę programowania na Zajęciach Programowania xD. -Zdoądź serwer, postaw stronę www i powieś flagę. Pomóż innym. +Przygotuj wszystko czego trzeba, aby rozpocząć naukę programowania na Zajęciach Programowania xD. +Zdobądź serwer, postaw stronę www i powieś flagę. Pomóż innym. Poznaj niesamowitych ludzi i zobacz jak u nas jest :) ### Wygrana: Daje dodstęp do aktywnego uczestnictwa w rocznych darmowych Zajęć Programowania xD Rozpocznij szturm, zdobądź serwer, postaw stronę www i zawieś flagę. -Albo wróć do szturmu tam gdzie skończyłeś: +Albo wróć do szturmu tam, gdzie skończyłeś: - [Etap 1 - Wprowadzenie i przygotowania - Instrukcje](http://bityl.pl/4TWc5) - [Etap 2 - Anonimowość - Instrukcje](http://bityl.pl/irUcO) @@ -39,23 +39,23 @@ Albo wróć do szturmu tam gdzie skończyłeś: #### Ważne linki: - [Szturm na AWS - Discord (Tu jesteśmy na żywo)](https://discord.gg/46JVvHgzqz) -- [Szturm na AWS - Film krok po kroku](https://www.youtube.com/playlist?list=PLaPjE0og8b6Lof4yYXJmdRv5coaVePmI5) -- [Szturm na AWS - Formularz aby dołączyć do Zajęć Programowania xD](https://zajecia-programowania-xd.pl/szturm_na_aws/caly_formularz) +- [Szturm na AWS - Film „krok po kroku”](https://www.youtube.com/playlist?list=PLaPjE0og8b6Lof4yYXJmdRv5coaVePmI5) +- [Szturm na AWS - Formularz – wypełnij go, aby dołączyć do Zajęć Programowania xD](https://zajecia-programowania-xd.pl/szturm_na_aws/caly_formularz) # Droga ASAP (dołącz w 5 minut): -## Jeżeli masz już -- serwer na zajęcia i przypisaną do niego domenę na zajęcia -- Githuba na zajęcia, VSCode i Jupytera +## Jeżeli masz już: +- serwer na zajęcia i przypisaną do niego domenę na zajęcia; +- Githuba na zajęcia, VSCode i Jupytera; -To możesz skorzystać z drogi ASAP +to możesz skorzystać z drogi ASAP -Ale i tak wróć tutaj i przejdź wszystkie etapy pokolei, poczytaj o funkcjach które wywołujesz, poprzeglądaj kod. Poznaj się z ludźmi, pomóż komuś. To świetna zabawa i poczujesz klimat. +Ale i tak wróć tutaj i przejdź wszystkie etapy po kolei, poczytaj o funkcjach, które wywołujesz, poprzeglądaj kod. Poznaj się z ludźmi, pomóż komuś. To świetna zabawa i poczujesz klimat. Po zalogowaniu na serwer: -#### 1. wejdź na root (utwórz go jeżeli jeszcze nie robiłeś). +#### 1. wejdź na root (utwórz go, jeżeli jeszcze tego nie zrobiłeś). ``` echo $USER ``` @@ -71,13 +71,13 @@ I sprawdź znów pisząc "echo $USER", aż będzie pokazywać root. Jak masz bł wget -q 'https://raw.githubusercontent.com/ZPXD/flaga/main/pomocnicze_skrypty/unite_the_clans.sh' && chmod +x unite_the_clans.sh && ./unite_the_clans.sh; ``` Teraz masz: -- użytkownika -- klucz RSA -- Twoja strona www stoi w internecie +- użytkownika, +- klucz RSA, +- Twoja strona www stoi w internecie. #### 3. Pobierz klucz RSA i edytuj plik ~/.ssh/config aby łączyć się ze swoim serwerem, jako użytkownik. -Jak masz serwer w AWS: +Jak masz serwer w AWS („Amazon Web Services”): ``` scp -i NAZWA_KLUCZA_PEM.pem ubuntu@NUMER_IP:/home/ubuntu/NAZWA_KLUCZA NAZWA_KLUCZA ``` @@ -94,16 +94,16 @@ Host moj_serwerek IdentityFile /home/rafi/.ssh/potezny_klucz_rafiego ``` -I sprawdź połączenie z serwerem przez VSC korzystając ze skrótu dla Twojego użytkownika (to co jest obok słowa Host w pliku config np. xd lub moj_serwerek). +I sprawdź połączenie z serwerem przez VSC korzystając ze skrótu dla Twojego użytkownika (to co jest obok słowa Host w konfiguracji ssh, czyli w pliku config np. xd lub moj_serwerek). -#### 4. Modyfikuj flagę aby było na niej coś poza "xD". To konieczne aby dołączyć do zajęć. +#### 4. Modyfikuj flagę, aby było na niej coś poza "xD". To konieczne, aby dołączyć do zajęć. Pobaw się flagą, zmień coś (zobacz etap 8 w tym pliku) lub idź dalej. #### 5. Ruszaj dalej. Jesteś już blisko: - [Etap 9 - Leć komuś pomóc - Instrukcje](http://bityl.pl/QKsi4) - [Etap 10 - Leć do nas na zamek - Instrukcje](http://bityl.pl/g7LrS) -- [I wypełnij formularz aby dołączyć do Zajęć Programowania xD](https://zajecia-programowania-xd.pl/szturm_na_aws/caly_formularz) +- [I wypełnij formularz, aby dołączyć do Zajęć Programowania xD](https://zajecia-programowania-xd.pl/szturm_na_aws/caly_formularz) #### Gotowe? From 6fd937436f1c51e60fde162544615294fcb198b3 Mon Sep 17 00:00:00 2001 From: photovolter Date: Sat, 5 Mar 2022 16:03:16 +0100 Subject: [PATCH 13/15] =?UTF-8?q?Klaryfikacja=20na=20czym=20polega=20weryf?= =?UTF-8?q?ikacja=20podstrony=20'xd'=20nazywanej=20flag=C4=85.=20Poprawien?= =?UTF-8?q?ie=20fragmentu,=20kt=C3=B3ry=20mylnie=20sugerowa=C5=82=20zak?= =?UTF-8?q?=C5=82adanie=20has=C5=82a=20dla=20root=20poleceniem=20-=20'sudo?= =?UTF-8?q?=20su'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 05068dd4..c9158720 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ W tym repozytorium znajduje się tutaj cały kod do zainstalowania na serwerze a ## Szturm na AWS: -To przygoda otwierająca zajęcia programowania xD +To przygoda otwierająca zajęcia programowania xD. Czas trwania: ok 120-180 minut, chociaz można tu spędzić wiele czasu i często wracać, ciągle ucząc się nowych rzeczy i poznając świetnych ludzi. Jak masz już trochę doświadczenia i wiesz co robisz, to uda Ci się powiesić flagę w ok. 30 minut. @@ -15,7 +15,7 @@ Zdobądź serwer, postaw stronę www i powieś flagę. Pomóż innym. Poznaj niesamowitych ludzi i zobacz jak u nas jest :) ### Wygrana: -Daje dodstęp do aktywnego uczestnictwa w rocznych darmowych Zajęć Programowania xD +Daje dodstęp do aktywnego uczestnictwa w rocznych darmowych Zajęć Programowania xD. Rozpocznij szturm, zdobądź serwer, postaw stronę www i zawieś flagę. Albo wróć do szturmu tam, gdzie skończyłeś: @@ -49,7 +49,7 @@ Albo wróć do szturmu tam, gdzie skończyłeś: - serwer na zajęcia i przypisaną do niego domenę na zajęcia; - Githuba na zajęcia, VSCode i Jupytera; -to możesz skorzystać z drogi ASAP +to możesz skorzystać z drogi ASAP. Ale i tak wróć tutaj i przejdź wszystkie etapy po kolei, poczytaj o funkcjach, które wywołujesz, poprzeglądaj kod. Poznaj się z ludźmi, pomóż komuś. To świetna zabawa i poczujesz klimat. @@ -59,11 +59,11 @@ Po zalogowaniu na serwer: ``` echo $USER ``` -Jak pokazuje root to idź do kroku 2. Jeżeli nie, utwórz hasło dla root wpisując: +Jeżeli wyświetlił się „root”, to idź do kroku 2. Jeżeli nie, przejdź na konto root wpisując: ``` sudo su ``` -I sprawdź znów pisząc "echo $USER", aż będzie pokazywać root. Jak masz błąd, spytaj na grupie o pomoc. +I sprawdź znów pisząc "echo $USER", aż będzie pokazywać root. Jeżeli masz błąd, to spytaj na grupie o pomoc. #### 2. Uruchom skrypt unite_the_clans.sh stawiający wszystko za Ciebie: @@ -96,7 +96,9 @@ Host moj_serwerek I sprawdź połączenie z serwerem przez VSC korzystając ze skrótu dla Twojego użytkownika (to co jest obok słowa Host w konfiguracji ssh, czyli w pliku config np. xd lub moj_serwerek). -#### 4. Modyfikuj flagę, aby było na niej coś poza "xD". To konieczne, aby dołączyć do zajęć. +#### 4. Zmodyfikuj flagę, aby było na niej coś poza "xD". To konieczne, aby dołączyć do zajęć. + +Jako „flagę” rozumiemy podstronę "xd" Twojej strony WWW. Przykładowy adres Twojej flagi, to http(s)://TWOJA_NAZWA_SERWERA/xd - zawartość podstrony o podobnym adresie jest weryfikowana, czy zawiera ciąg tekstu „xD” oraz jakiś dopisek od Ciebie. Pobaw się flagą, zmień coś (zobacz etap 8 w tym pliku) lub idź dalej. From ceda9abe94ef5dd9cd515bafafe5c3e929a53dbf Mon Sep 17 00:00:00 2001 From: photovolter Date: Sat, 12 Mar 2022 01:23:57 +0100 Subject: [PATCH 14/15] =?UTF-8?q?dodano=20komentarz=20o=20alternatywnej=20?= =?UTF-8?q?komendzie,=20gdy=20nie=20ma=20fallocate;=20uzupe=C5=82niono=20k?= =?UTF-8?q?omentarz=20do=20TODO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh index e6f552bb..9d7ed012 100755 --- a/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh +++ b/pomocnicze_skrypty/create_swapfile_on_aws_ec2_server.sh @@ -35,14 +35,15 @@ if [[ -e $swapfile ]]; then # stop creating swapfile (or modify swapfile filesize) # # # # use something like: # -# df --output=avail / # +# df --output=avail / | tail -n 1 # # # # # ############################################################################## elif [[ $do_the_job == $arg1 ]]; then echo "Tworzę swapfile w pliku $swapfile" if [[ -z $(swapon --show=NAME) ]]; then - fallocate -l $size /swapfile && + fallocate -l $size /swapfile && # when fallocate is not installed, + # use: sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576 chmod 600 $swapfile && mkswap $swapfile swapon $swapfile From ac4b65de849911308af23a8bf45bb8a856c18852 Mon Sep 17 00:00:00 2001 From: photovolter Date: Sun, 13 Mar 2022 03:43:38 +0100 Subject: [PATCH 15/15] =?UTF-8?q?poprawiono=20liter=C3=B3wki,=20pisowni?= =?UTF-8?q?=C4=99,=20stylistyk=C4=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../etap_7_Klasyczna_strona_www_i_flaga.md | 93 ++++++++++--------- 1 file changed, 49 insertions(+), 44 deletions(-) diff --git a/instrukcje/etap_7_Klasyczna_strona_www_i_flaga.md b/instrukcje/etap_7_Klasyczna_strona_www_i_flaga.md index bc246b3c..80fdbf25 100644 --- a/instrukcje/etap_7_Klasyczna_strona_www_i_flaga.md +++ b/instrukcje/etap_7_Klasyczna_strona_www_i_flaga.md @@ -14,9 +14,9 @@ **3. Uruchomisz "usługę" aplikacji strony www** -tak aby była wystawiona w internecie i zobaczysz swoją stronę www sieci pod linkiem domeny. +tak aby była wystawiona w internecie i zobaczysz swoją stronę www w sieci pod linkiem domeny. -[Obejrzyj film jaks przygotować serwer, postawić stronę i powiesić flagę w wersji ASAP (w 5 minut)]() +[Obejrzyj film jak przygotować serwer, postawić stronę i powiesić flagę w wersji ASAP (w 5 minut)]() @@ -40,7 +40,7 @@ Jeżeli masz z tym problem, wróć do [Etap 4.3 - połączenie z serwerem](https ### 2. Pssst! -Od teraz, gdyby coś poszło nie tak, zawsze możesz zrestartować serwer i zacząć od nowa: [Resetowanie Serwera](http://bityl.pl/Bmvwu). To potrwa ok 5-10 minut i będziesz mógł zacząć od nowa. Raczej tego nie rób jak nie trzeba - stracisz wszystko co jest na serwerze. +Od teraz, gdyby coś poszło nie tak, zawsze możesz zrestartować serwer i zacząć od nowa: [Resetowanie Serwera](http://bityl.pl/Bmvwu). To potrwa ok 5-10 minut i będziesz mógł zacząć od nowa. Raczej tego nie rób jak nie trzeba - bo stracisz wszystko, co jest na serwerze. ### 3. Root. @@ -75,7 +75,7 @@ echo $NEW_USER #### Tworzymy użytkownika. -Czas stworzyć użytkownika o takiej nazwie jak chcesz. +Czas stworzyć użytkownika o takiej nazwie, jak chcesz. Będziesz pytany o numer telefonu, pokoju i inne rzeczy - wszystko pomijaj naciskając enter. @@ -140,7 +140,7 @@ Dzięki sudo możesz robić takie rzeczy jak instalacje. Zwłąszcza takie któr #### Upewnij się gdzie jesteś: -Napisz pwd a poznasz ścieżkę katalogu w którym jesteś. +Napisz pwd, a poznasz ścieżkę katalogu, w którym jesteś. ``` pwd ``` @@ -167,7 +167,7 @@ Nadaj mu wymagane uprawnienia i wejdź do środka: chmod 700 /home/$USER/.ssh cd /home/$USER/.ssh ``` -Nazwij swoje klucze rsa. Bez spacji, znaków specjalnych. Najlepiej tak abyś kojarzył to z Twoim użytkownikiem i serwerem, projektem, np. klucz=xd_moj_uzytkownik: +Nazwij swoje klucze rsa. Bez spacji, znaków specjalnych. Najlepiej tak, abyś kojarzył to z Twoim użytkownikiem i serwerem, projektem, np. klucz=xd_moj_uzytkownik: ``` klucz=NAZWA_KLUCZA ``` @@ -203,7 +203,7 @@ Jeżeli masz z tym problem, wróć do [Etap 4.3 - połączenie z serwerem](https ![foto](foty_do_instrukcji/dk_2.png) -##### 3. Wpisz tam /home/X/.ssh <--- zamiast X - podaj nazwę swojego użytkownika, tę samą którą podawałeś na początku etapu 7. +##### 3. Wpisz tam /home/X/.ssh <--- zamiast X - podaj nazwę swojego użytkownika – tę samą, którą podawałeś na początku etapu 7. ![foto](foty_do_instrukcji/dk_3.png) @@ -212,7 +212,7 @@ Jeżeli masz z tym problem, wróć do [Etap 4.3 - połączenie z serwerem](https #### 4. Kliknij ok. Pokaże Ci się folder .ssh z kluczami. -#### 5. Wybierz nowoutworzony klucz bez rozszeżenia .pub i pobierz go do siebie na komputer do swojego folderu .ssh. +#### 5. Wybierz nowoutworzony klucz *bez* rozszerzenia .pub i pobierz go do siebie na komputer do swojego folderu .ssh. ![foto](foty_do_instrukcji/dk_6.png) @@ -223,23 +223,23 @@ Jeżeli masz z tym problem, wróć do [Etap 4.3 - połączenie z serwerem](https #### 7. Wejdź do folderu .ssh i tutaj zapisz plik z kluczem. -Ewentualnie zapisz go gdzie chcesz i skopiuj go do folderu .ssh potem tak jak uznasz. +Ewentualnie zapisz go, gdzie chcesz i skopiuj go do folderu .ssh potem – tak jak uznasz. ![foto](foty_do_instrukcji/dk_9.png) -#### 8. Włącz znów VSC. Kliknij w "SSH-Targets" w zembatkę (drugi przycisk po prawej od "SSH-TARGETS") +#### 8. Włącz znów VSC. Kliknij w "SSH-Targets" w zębatkę (drugi przycisk po prawej od "SSH-TARGETS") ![foto](foty_do_instrukcji/dk_10.png) -#### 9. Spyta Cię który plik edytować. Wybierz config z folderu .ssh (ten plik najwyżej na liście). I otwórz go. +#### 9. Spyta Cię, który plik edytować. Wybierz *'config'* z folderu .ssh (ten plik najwyżej na liście). I otwórz go. -Jeżeli jesteś w Home i wkleiłeś to o co prosiłem wcześniej, to zobaczysz coś w tym stylu (tylko inne adresy IP). +Jeżeli jesteś w Home i wkleiłeś to, o co prosiłem wcześniej, to zobaczysz coś w tym stylu (ale z innymi adresami IP). ![foto](foty_do_instrukcji/dk_11.png) -#### 10. Kliknij aby przejść dalej w terminalu instalacji ASAP. +#### 10. Kliknij, aby przejść dalej w terminalu instalacji ASAP. Będzie tam fragment pliku Host do wklejenia. Będzie wyglądał podobnie do: @@ -286,7 +286,7 @@ scp -i klucz_xd.pem ubuntu@$TU_WSTAW_IP_SERWERA:/home/ubuntu/.ssh/$klucz $klucz I spróbuj połączyć się przez VSCode znowu (cofnij się do instrukcji wyżej, jeżeli nie pamiętasz jak to zrobić). Jeżeli masz problem, napisz na discordzie. -## Kontynuuj dalej już Twój użytkownik. +## Kontynuuj dalej już jako Twój użytkownik. Postaw stronę www tak, abyśmy widzieli ją w sieci. @@ -304,14 +304,14 @@ Postaw stronę www tak, abyśmy widzieli ją w sieci. ### 1. Miejsce na stronę: Folder /var/www -Poza tym na AWS trzeba stworzyć folder, gdzie będziemy trzymać Twoją stronę z flagą: mkdir i nazwa folderu: /var/www. Dodaj 2>1 aby nie wyświetlało błędu, jeżeli folder już istnieje. I wejdź do /var. +Poza tym na AWS trzeba stworzyć folder, gdzie będziemy trzymać Twoją stronę z flagą: mkdir i nazwa folderu: /var/www. Dodaj 2>&1, aby nie wyświetlało błędu, jeżeli folder już istnieje. I wejdź do /var. ``` -mkdir /var/www +mkdir /var/www 2>&1 cd /var ``` Jeżeli ten katalog już istnieje (będzie błąd) - jest ok - idź dalej. -W środku znajduje się katalog www. Tam będziemy trzymać strony. Nadaj mu uprawnienia które pozwolą potem na dostęp do plików danych. I wejdź do środka. +W środku znajduje się katalog www. Tam będziemy trzymać strony. Nadaj mu uprawnienia, które pozwolą potem na dostęp do plików danych. I wejdź do środka. ``` sudo chown -R www-data:www-data /var/www sudo chmod -R 775 /var/www @@ -320,7 +320,7 @@ cd /var/www ### 2. Git. -Instalujemy git'a. To narzędzie do pobierania repozytoriów czyli powiedźmy projektów, aplikacji. My pobieramy repozytorium flagi, które zawiera wszystko czego potrzeba abyś postawił stronę www i zawiesił flagę. Zainstaluj go używając apt, co zrobisz jako użytkownik tylko, jak pamiętasz, używając sudo. +Instalujemy git'a. To narzędzie do pobierania repozytoriów czyli – powiedzmy – projektów, aplikacji. My pobieramy repozytorium flagi, które zawiera wszystko czego potrzeba, abyś postawił stronę www i zawiesił flagę. Zainstaluj go używając apt, co zrobisz jako zwykły użytkownik ale, jak pamiętasz, używając sudo. ``` sudo apt install git ``` @@ -333,9 +333,9 @@ I wejdź do flagi. ``` cd flaga ``` -Wszystkie polecenia od teraz do końca skryptu wykonywane są wykonywane w folderze /var/www/flaga . +Wszystkie polecenia od teraz do końca skryptu wykonywane są w folderze /var/www/flaga . -PS: Zawsze możesz sprawdzić w którym folderze jesteś, pisząc: +PS: Zawsze możesz sprawdzić, w którym folderze jesteś, pisząc: ``` pwd ``` @@ -348,13 +348,13 @@ domena=TUTAJ_WPISZ.pl echo 'Moja domena to:' $domena ``` -Domena się nie zgadza? Popraw powyższe. Zgadza? Chodźmy dalej. +Domena się nie zgadza? Popraw powyższe. Zgadza się? Chodźmy dalej. -Chcesz dowiedzieć się trochę co się dzieje pod maską, samemu to poczuć i przeklikać? Świetny wybór, czegoś się nauczysz albo chociaż nabierzesz obycia i doświadczenia. Do dzieła. +Chcesz dowiedzieć się trochę, co się dzieje pod maską, samemu to poczuć i przeklikać? Świetny wybór – czegoś się nauczysz albo chociaż nabierzesz obycia i doświadczenia. Do dzieła. #### Instalacja paczek systemowych wymaganych do postawienia strony. -Uruchom skrypt pythona który zawiera serię komend dla linuxa, które zrealizuje automatycznie. Jeżeli jesteś ciekaw co to za komendy możesz podejrzeć plik pisząc cat + nazwa_pliku (**cat /var/www/flaga/pomocnicze_skrypty/xD.py** ). +Uruchom skrypt pythona, który zawiera serię komend dla linuxa, które zrealizuje automatycznie. Jeżeli jesteś ciekaw, co to za komendy możesz podejrzeć plik pisząc cat + nazwa_pliku (**cat /var/www/flaga/pomocnicze_skrypty/xD.py** ). PS: chodzi o xD.py z dużej litery xD.py a nie xd.py z małej litery. ``` sudo python3 /var/www/flaga/pomocnicze_skrypty/xD.py @@ -368,31 +368,36 @@ ls # sdfgsdfgsdgsgjpodgksg Wszystkie polecenia wykonywane w tym kroku są wykonywane w folderze /var/www/flaga . -Upewnij się w jakim folderze jesteś, napisz: +Upewnij się w jakim folderze jesteś. Napisz: ``` pwd ``` -Jeżeli to nie /var/www/flaga to napisz w terminalu: +Jeżeli to nie /var/www/flaga, to napisz w terminalu: ``` cd /var/www/flaga ``` Stwórz środowisko: ``` -python3 -m venv flagaenv # Stwórz środowisko flagenv używając venv. +python3 -m venv flagaenv # Stwórz środowisko flagaenv używając venv. source flagaenv/bin/activate # Aktywuj środowisko flagaenv export FLASK_APP=app.py # I zapisz zmienną FLASK_APP równą app.py (nazwie programu strony www) ``` +W przyszłości, czyli gdy już zakończysz pracę, będziesz mógł wyjść ze środowiska venv wpisując: +``` +deactivate +``` +ale na razie jeszcze tego nie rób. #### Instalacja wymaganych bibliotek. -Użyjemy do tego **pip3** - to narzędzie którym pobieramy w pythonie potrzebne biblioteki. We fladze używamy dodatkowo pliku **requirements.txt**, który jest niczym innym jak listą nazw i wersji bibliotek które będą. +Użyjemy do tego **pip3** - to narzędzie, którym pobieramy w pythonie potrzebne biblioteki. We fladze używamy dodatkowo pliku **requirements.txt**, który jest niczym innym jak listą nazw i wersji bibliotek, które będą wymagane dla poprawnego działania Twojego projektu. ``` pip3 install -r requirements.txt ``` #### 6. Dodanie domeny. -Zefiniuj zmienną w bashu np: +Zefiniuj zmienną w bashu, np.: ``` domena=nazwa_domeny.pl echo $domena @@ -406,18 +411,18 @@ sudo python3 pomocnicze_skrypty/xd.py $domena #### Restart nginxa i serwisów. To zadziało się automatycznie. Nie musisz tego robić. -To przyda Ci się za każdym razem, gdy po modyfikacji plików html lub programu app.py będziesz chciał zobaczyć zmiany na stronie. +To przyda Ci się za każdym razem, gdy – po modyfikacji plików html lub programu app.py – będziesz chciał zobaczyć zmiany na stronie. ``` sudo systemctl daemon-reload sudo systemctl restart nginx sudo systemctl restart flaga.service ``` -lub, jeżeli chcesz, napisałem skrypt który to robi za Ciebie. +lub, jeżeli chcesz, napisałem skrypt, który to robi za Ciebie. ``` sudo python3 pomocnicze_skrypty/reload.py ``` #### Gdyby coś poszło nie tak w kroku 6 i 7 -Użyj tej komendy a cofniesz się do początku kroku 6. +Użyj tej komendy, a cofniesz się do początku kroku 6. Jeżeli modyfikowałeś zmienną domena, wpisz: ``` @@ -436,20 +441,20 @@ Działa? Wyślij komuś, pochwal się komuś. ## 9: Flaga. -- Edytuj plik tekstowy którego treść widać na Twojej stronie. +- Edytuj plik tekstowy, którego treść widać na Twojej stronie. - Zobaczy czy na stronie jest nowa treść! - Stwórz nową zakładkę wymaganą do przejścia szturmu! - Zobacz czy zakładka działa :) -#### Edytuj plik tekstowy którego treść widać na Twojej stronie. +#### Edytuj plik tekstowy, którego treść widać na Twojej stronie. Urządź się tu :) Będąc dalej na serwerze, w folderze /var/www/flaga edytuj zawartość pliku xd.txt. Dodaj tam coś od siebie. Modyfikuj plik: ``` /var/www/flaga/dane/xd.txt ``` -#### Zobaczy czy na stronie jest nowa treść! +#### Zobacz, czy na stronie jest nowa treść! Zobacz na stronie www czy działa :) @@ -457,14 +462,14 @@ Zobacz na stronie www czy działa :) #### Stwórz nową zakładkę wymaganą do przejścia szturmu! -Ostatnie co zostało, to edycja zakładki /xd flagi. Twoja flaga aby przejść dalej musi spełniać 3 kryteria. -- być widoczna w sieci, czyli działać - to mamy -- w zakładce xd jest na niej "xD" - to też już mamy +Ostatnie co zostało, to edycja zakładki /xd flagi. Aby mógł/mogła przejść dalej, Twoja flaga musi spełniać 3 kryteria. +- być widoczna w sieci, czyli działać - to mamy; +- w zakładce xd jest na niej "xD" - to też już mamy; - w zakladce xd jest na niej coś napisane poza "xDDD" - to mamy do zrobienia. -Wejdź w przeglądarce na adres swojej strony www i dopisz **/xd** - to Twoja zakładka /xd. +Wejdź w przeglądarce na adres swojej strony www i dopisz **/xd** – to Twoja zakładka /xd. -Bedąc dalej w folderze /var/www/flaga edytuj plik templates/xd.html. Zobacz, jest tam w 12 linii "xDDD". Zostaw xD (z dowolną ilością "D") i: dodaj coś od siebie. Dzięki temu będzie można sprawdzić czy ukończyłeś ten etap. Otwórz: +Bedąc dalej w folderze /var/www/flaga edytuj plik templates/xd.html. Zobacz, jest tam w 12 linii "xDDD". Zostaw xD (z dowolną ilością "D") i dodaj coś od siebie. Dzięki temu będzie można sprawdzić, czy ukończyłeś ten etap. Otwórz: ``` /var/www/flaga/templates/xd.html ``` @@ -477,19 +482,19 @@ Przeładuj: sudo python3 pomocnicze_skrypty/reload.py ``` -#### Zobacz czy zakładka działa :) +#### Zobacz, czy zakładka działa :) -Zobacz na stronie www czy działa :) - dodaj do swojego adresu "/xd" czyli jak masz domenę "kubus-puchatek.pl" to wpisz "kubus-puchatek.pl/xd". +Zobacz na stronie www czy działa :) - dodaj do swojego adresu "/xd" czyli jak masz domenę "kubus-puchatek.pl", to wpisz "kubus-puchatek.pl/xd". #### Gotowe? -Możesz opuścić Terminal pisząć: +Możesz opuścić Terminal pisząc: -Najpierw aby się wylogować: +Najpierw, aby się wylogować: ``` exit ``` -Potem aby opuścić terminal: +Potem, aby opuścić terminal: ``` exit ```