Blog

Rozszerzenie partycji w wirtualnym systemie (cfdisk)

Używam KVM-a jako wirtualizatora. Przychodzi czas kiedy trzeba rozszerzyć partycję na jednym z systemów gościa. Laboratorium: Host: #lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu Hirsute Hippo (development branch) Release: 21.04 Codename: hirsute Hypervizor: KVM (libvirtd) libvirtd -V libvirtd (libvirt) 7.0.0 System Gość: Fedora 34 (beta) System posiada jeden dysk /dev/vda (24 GB) i partycje mają LVM-a. [...] Czytaj więcej

Bash - sprawdzenie czy proces jest aktywny z namniejszymi uprawnieniami

Bash - sprawdzenie czy proces jest aktywny z namniejszymi uprawnieniami

Musiałem zrobić skrypt gdzie odpytuję usługi i sprawdzam czy "żyją" i podaję kod wyjśćia dla nagiosa. Wymaganie było aby zrobić to przy jak najmniejszym nadawaniu uprawnień. Niby prosta komenda systemctl is-active *.service jest dobra ale zdalne wykonanie skryptu przez nrpe nie chciało zaskoczyć. Czały cas w logach były komunikaty o u słabych uprawnieniach Skrypt wykonałem w Bash-u zaprzęgając do tego poczciwą komendę ps. Reszta to już tylko [...] Czytaj więcej

Bash - generowanie hasła

Bash - generowanie hasła

Jest wiele sposobów na wygenerowanie hasła. Służą do tego wyspecjalizowane programy(pwgen, keepass itp). Link do tej strony pokazuje "ocean możliwości". Można również samemu sobie stworzyć automat w postacji skryptu bash. Bash się do tego nadaje idealnie. #!/usr/bin/env sh sumaZnakow='16' probkiHasel='6' #opcja z argumentami #sumaZnakow=$1 #probkiHasel=$2 echo "Generowanie $probkiHasel haseł. Hasło ma długość $sumaZnakow znaków" for ((n=0; [...] Czytaj więcej

KVM - zmiana na żywo rozmiaru "file" dysku - bez LVM-a

KVM - zmiana na żywo rozmiaru "file" dysku - bez LVM-a

Czasami staniemy przed sytuacją zapełnienia dysku w maszynie wirtualnej. Jeśli używamu KVM i za dysk służy nam plik (qcow2) możemy dokonać zmiany rozmiaru poprzez standardowe narzędzia. Najpierw identyfikujemy nasze maszyny wirtualne virsh list --all Id Name State ---------------------------- 1 centos8-2 running - centos8 shut off - debian10 shut off - win10 shut off Póżniej sprawdzamy jaki rodzaj pamięci masowej podpięty jest pod maszynę [...] Czytaj więcej

Kontrola sesji użytkowników w Linuksie

Kontrola sesji użytkowników w Linuksie

Często słyszy się, że w terminalu/konsoli ciężko zarządza się zalogowanymi użytkownikami. To prawda - jeśli myślimy w perspektywie zarządzania Windowsami. W Linuksie też znajdziemy narzędzia, które pozwalają nam sprawnie zarządzać użytkownikami. Jest kilka możliwości. Pierwsza to znajome narzędzie who Za man-em who - show who is logged on Jeśli chcemy zobaczyć kto jest zalogowany w systemie to wydajemy komendę: who root@raspberrypi:~# who pi [...] Czytaj więcej

Wirtualizacja KVM - udostępnianie katalogu pomiedzy hostem i gościem

Aby udostepnić katalog pomiędzy hostem (maszyna, która zarządza maszynami wirtualizacyjnymi), a gościem (maszyna wirtualna) wykonujemy: na hoscie zakładamy katalog mkdir /share nadajemy uprawnienia chmod 777 /share na hoście uruchamiamy virt-manager i otwieramy szczegóły maszyny wirtualnej (ikona żarówki) na samym dole klikamy przycisk "dodaj sprzet" i wybieramy "system plików" po prawej stronie w sterowniku wybieramy Default Tryb wybieram [...] Czytaj więcej

Bash - wyświetlenie plików w strukturze podobnych katalogów

Wyświetlenie plików (lub wpisanie ich do pliku) w pewnej usystematyzowanej strukturze katalogów. Katalogów jest bardzo dużo ja na potrzeby przykładu utworzyłem katalog-120 do katalog-130. Praca ręczna nigdy nie zostanie wzięta pod uwagę więc trzeba zrobić automat. Musimy wyświetlić pliki z pewnego przedziału np katalog-120 do katalog-129. Rozwiązań zapewne jest nieskończenie wiele. Pierwsze rozwiązanie wykorzystuje printf printf "$PWD/%s\n" [...] Czytaj więcej

Bash - pobieranie wartości z pliku xml

Czasami potrzebujemy przetworzyć plik xml. Najprawdopodobniej wszystkie liczące się języki programowania mają w swoich zasobach funkcje, które takie operacje realizują. Jeśli chodzi o bash-a to jest trochę inaczej ale jak na środowisko Linuksa przystało zrealizować to zadanie możemy różnymi innymi narzędziami. W systemie (u mnie OpenSuse 15.1) instalujemy potrzebne narzędzie: sudo zypper in xmlstarlet Za plik xml posłuży nam ogólnodostępny plik [...] Czytaj więcej

Serwer www Apache z autoryzacją w Active Directory

Serwer www Apache z autoryzacją w Active Directory

Laboratorium Windows Server 2016 - Active Directory (SATKAS.LOCAL) Linux SUSE Standard Enterprise 15 - usługa www oparta o httpd Operacje na Windows Server Na Windows Server mamy utworzoną domenę SATKAS.LOCAL. Tworzymy grupę apache i użytkowników wedle uznania. Dodajemy użytkowników do grupy apache. Utworzyłem w grupie apache jeszcze jednego użytkownika, który odpowiedzialny będzie za powiązanie nazwy DN podczas fazy wyszukiwania. Nazwałem [...] Czytaj więcej

Zapomniane hasło admina dla ipa server

Zapomniane hasło admina dla ipa server

Jeśli zapomnimy hasło dla super użytkownika admin w usłudze ipa server to zmiana hasła odbywa się wg poniższej procedury. W konsoli wpisujemy: # kadmin.local kadmin.local: cpw admin Enter password for principal "admin@SATKAS.LOCAL":<nowe hasło> Re-enter password for principal "admin@SATKAS.LOCAL":<nowe hasło> Password for "admin@SATKAS.LOCAL" changed.

Filtrowanie logów poczty

Filtrowanie logów poczty

Potrzebowałem na szybko wyciągnąć wszystkie adresy IP z pliku /var/log/mail.log, które wylądowały w specjalnym folderze z niechcianą pocztą. IP-ki będą wprowadzone na czarną listę adresów. Wchodzimy do określonego folderu z niechcianą pocztą i wykonujemy polecenie: grep -h -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' * |sort|uniq |grep -v ".0$" |grep -v "127.0.0.1" Wyjaśnienie: Narzędzie grep jest świetnym narzędziem w powłoce BASH na [...] Czytaj więcej

Szyfrowane połączenie klientem ftp w konsoli

Szyfrowane połączenie klientem ftp w konsoli

Musimy połączyć się do serwera ftp, który oferuje szyfrowanie. Wiadomo, domyślnie protokół ftp przesyła czystym tekstem wszystkie dane. W aplikacjach graficznych typu FileZilla przy konfiguracji konta możemy sobie ustawić jakie ma być połączenie (szyfrowane lub zwykłe). W konsoli narzędzie ftp nie ma zaimplementowanej opcji wyboru trybu szyfrowanego. W repozytoriach jest natomiast aplikacja ftp-ssl, która robi to samo co zwykły klient ftp [...] Czytaj więcej

Bash - wyodrębnianie danych IPTC XMP ze zdjęcia

Bash - wyodrębnianie danych IPTC XMP ze zdjęcia

Jeśli chcemy wydobyć jakąś pojedyńczą sekcję (fotografa, agencję lub opis) ze zdjęcia można użyć narzędzia exiv2. Wyodrębnienie całości metadanych ze zdjęcia do pliku: exiv2 -ea image.jpg Ta komenda utworzy plik o tej samej nazwie co zdjęcie z rozszerzeniem .exv Wstrzyknięcie tych samych danych z pliku .exv do zdjęcia: exiv2 -kia image.jpg Aby wyodrębnić konkretną sekcję np IPTC wydajemy komendę: exiv2 -PI image.jpg lub exiv2 -pi image.jpg Jeśli [...] Czytaj więcej

Bash - pojemność katalogu z filtrem na pliki

Bash - pojemność katalogu z filtrem na pliki

Zawartość skryptu. Skrypt posiada 2 zmienne. Zmienna $folder to obliczany folder. Zmienna $ext to rozszerzenie plików, które będą zliczane. Skrypt oblicza pojemność katalogu rekursywnie i ogranicza się tylko do plików jpg #!/bin/bash folder='/home/user/Obrazy' ext='.jpg' foldersize() { if [ -d $folder ]; then size=$(ls -alRF $folder/ | grep -i $ext | awk 'BEGIN {tot=0} { tot=tot+$5 } END { print tot }') countsize=${#size} echo "Znaków: [...] Czytaj więcej

Nowy plik w Ubuntu files (nautilus)

Jak otworzymy manager plików w Ubuntu (środowisko Gnome) i chcemy założyć nowy plik np. plik tekstowy to próbójąc w danym katalogu kliknąć prawym przyciskiem myszy (PPM) nie zobaczymy możliwości utworzenia pliku. Jest możliwość założenia katalogu ale nie wiem dlaczego developerzy Gnome nie dali możliwości użytkownikowi zakładać na starcie nowych plików. Aby móc zakadać swobodnie nowe pliki przechodzimy do katalogu domowego użytkownika i [...] Czytaj więcej

Wyłączenie protokołu ipv6 w Ubuntu/Mint

W konsoli sprawdzamy czy jest włączony ipv6 $ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000 [...] Czytaj więcej

Przekierowanie adresu url przy pomocy pliku .htaccess

Czasami potrzeba przekierować url naszej domeny na inny adres (np. gdy chcemy przekierowywać zaindeksowane przez google, nieaktywne pliki na poprawne) W głównym korzeniu aplikacji www (tam gdzie wskazuje zmienna DocumentRoot w VirtualHost konfiguracji domeny na serwerze Apache2) tworzymy plik .htaccess i wpisujemy do niego: Redirect 301 /katalog/plik.html https://domena.tld/katalog2/plik.html Wyjaśnienie: /katalog/plik.html (to część adresu url [...] Czytaj więcej

Przekierowanie adresu url w Apache VirtualHost

Przekierowanie adresu z protokołu niezaszyfrowanego na szyfrowany przy użyciu VirtualHost w Apache (Ubuntu 16.04). Edytujemy plik, który wskazuje na konfigurację niezaszyfrowaną (port 80) /etc/apache2/site-enabled/domena.tld.conf i pod koniec sekcji </VirtualHost> dodajemy RewriteEngine on RewriteCond %{SERVER_NAME} =domena.tld [OR] RewriteCond %{SERVER_NAME} =www.domena.tld RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [...] Czytaj więcej

Ile czasu działa program?

Jeśli chcemy sprawdzić jaki czas temu został uruchomiony program to można to zrobić na kilka sposobów. Pierwszy dotyczy kombinacji narzędzi pidof i ps, a drugi kombinacji narzędzi pidof i ls. Rozwiązanie 1 - kombinacja narzędzi pidof i ps W shellu wpisujemy pidof firefox. pidof firefox Wyświetla się lista wszystkich pid-ów procesów firefoxa. Wybieramy o najniższej wartości po czym używamy narzędzia ps ps -p TWÓJ_PID -o args,etime,lstart [...] Czytaj więcej

Przycięcie ścieżki dźwiękowej

Przycięcie ścieżki dźwiękowej

Czasami trzeba wyciąć pewien odcinek dźwięku z określonej ścieżki dźwiękowej. Zrobimy to narzędziem ffmpeg. fmpeg -ss 00:00:01 -t 00:01:00 -i wejsciowy-plik.mp3 wyjsciowy-plik.mp3 Wyjaśnienie opcji: -ss (początek wycięcia względem ścieżki dźwiękowej) -t (koniec wycięcia względem ścieżki dźwiękowej) Powstanie nowy plik z 1 - minutową ścieżką dźwiękową Strona projektu: https://ffmpeg.org

Wyodrębnienie ścieżki dźwiękowej z pliku wideo

Wyodrębnienie ścieżki dźwiękowej z pliku wideo

Instalujemy aplikację ffmpeg (w linux Ubuntu 16.04) sudo apt install ffmpeg ffmpeg -i wejsciowy_plik_wideo.mkv wyjsciowy_plik_dzwiekowy.mp3 Format pliku wideo może być inny niż *.mkv Strona projektu: https://ffmpeg.org

Skrypt sprawdzający kiedy wygaśnie domena

Skrypt sprawdzający kiedy wygaśnie domena

Dla Debiana/Ubuntu/Minta sprawdzamy czy mamy zainstalowany whois wydając w shellu polecenie: [ -f '/usr/bin/whois' ] && echo Zainstalowany || apt-get -y install whois #!/bin/bash dzis=$(date +%Y%m%d) whois='/usr/bin/whois' declare -a domeny='satkas.waw.pl jakasinnadomena1.tld jakasinnadomena2.tld' function sprawdz { local red=`tput setaf 1` local reset=`tput sgr0` local koncowka=${i##*.} if [ $koncowka == "com" ] then wynik=$( whois $i [...] Czytaj więcej

Przydatne polecenia w Zimbra

Przydatne polecenia w Zimbra

Jak chcemy cokolwiek zrobić w shellu w systemie Zimbra trzeba się przelogować na użytkownika zimbra su - zimbra Wyświetl wszystkich użytkowników domeny zmprov -l gaa domain.com Sprawdzenie jaki status ma użytkownik zmprov ga user@domain.com zimbraAccountStatus | grep zimbraAccountStatus | awk '{print $2}' Zablokowanie użytkownika zmprov ma user@domain.com zimbraAccountStatus lock Odblokowanie użytkownika zmprov ma user@domain.com [...] Czytaj więcej

Masowa konwersja zdjęć do mniejszych rozmiarów

Masowa konwersja zdjęć do mniejszych rozmiarów

Czasami potrzebujemy szybko zmniejszyć zdjęcia do określonej wielkości. Problem w tym, że nie wiemy z jakim zdjęciem mamy do czynienia (portret, panorama). Skrypt który ogarnia dwie rzeczy. Sprawdza czy zdjęcie jest portretem lub panoramą i zmniejsza po wielkości. Oczywiście z zachowaniem proporcji Otwieramy konsolę i wybieramy katalog w którym znajdują się zdjęcia. Po czym wykonujemy tzw jednolinijkowca: for i in `ls *.jpg`;do z=$(convert $i [...] Czytaj więcej

Generowanie hasła sha1

Generowanie hasła sha1

W konsoli linuksa wpisujemy: echo -n "satkas" | sha1sum | awk '{print $1}' Wynik: 5e6030bc66eab28e4b5eb6c9278cf41462c88cee

PHP w katalogu domowym użytkownika

PHP w katalogu domowym użytkownika

Domyślnym katalogiem składowania plików html i php jest (we współczesnych dystrybucjach) /var/www/html. W ramach testowania wolę korzystać z katalogu public_html w lokalizacji /home/*/public_html Serwer www Apache posiada moduł, który nam to umożliwi. Pomijam instalację serwera www Apache jak i modułu php dla tego serwera. Włączamy moduł userdir a2enmod userdir potem restartujemy serwer Apache service apache2 restart W ubuntu 16.04 edytujemy [...] Czytaj więcej

Aktualizacja samby jako domain controller

Aktualizacja samby jako domain controller

Używana wersja to 4.5.3 i była instalowana ze źródel. Pobieramy wersję 4.5.4 wget https://download.samba.org/pub/samba/stable/samba-4.5.4.tar.gz zabijamy wszystkie procesy samby działające w systemie pkill samba Robimy backup obecnej samby tar czvf samba-4.5.3.tar.gz /usr/local/samba Rozpakowujemy archiwum nowej samby tar xzvf samba-4.5.4.tar.gz wchodzimy do katalogu cd samba-4.5.4 i wykonujemy polecenie ./configure po skończeniu budujemy make i [...] Czytaj więcej

Darmowy certyfikat od Let's Encrypt

Darmowy certyfikat od  Let's Encrypt

Aby nie płacić za certyfikat ssl można skorzystać z darmowej alternatywy od Let's Encrypt. Instrukcja dotyczy systemu operacujnego Debian Wheezy i usługi serwera www (Server version: Apache/2.2.22 (Debian)) wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto ./certbot-auto --apache ./certbot-auto renew Pierwsza komenda pobiera skrypt Następnie ustawiamy na skrypcie mozliwość uruchamiania (bit wykonalności) Odpalamy skrypt z argumentem [...] Czytaj więcej

Usunięcie pustych folderów w bash-u

Usunięcie pustych folderów w bash-u

Czasami potrzeba usunąć puste foldery w określonej ścieżce. W bashu robi się to banalnie prosto. find . -type d -empty -delete wcześniej można sprawdzić jakie katalogi ów polecenie może nam usunąć. Zatem komenda find . -type d -empty -print pokaże nam wszystkie puste katalogi w określonej ścieżce Kropka (.) w komendzie określa aktualny katalog. Powyższa komenda działa rekursywnie

Podtrzymywanie "demona" przy życiu

Podtrzymywanie "demona" przy życiu

Aktualizuję firmowego Ubuntu Server z usługą ftp-a od wersji 8.04 poprzez systemową komendę do-release-upgrade. Aktualnie mam wersję 14.04. Podczas ostatniej aktualizacji do 14.04 usługa ftp zarządzana przez proftpd wywala mi się w nocy. Nie chciało mi się szukać po forach dlaczego co i po co. Mały skrypt zapuszczony w sesji screen daje pożądany efekt: while true; do sleep 45;pidof proftpd;if [ $? -eq 0 ];then echo "Demon nasluchuje"; else echo [...] Czytaj więcej

Wyszukać i usunąć pliki w Linuksie

Wyszukać i usunąć pliki w Linuksie

Jak równocześnie wyszukać i przeprowadzić na tych plikach pewne działania, np. usunięcie plików? find sciezka_do_katalogu -type f -name "*.jpg" -newermt 2015-01-01 ! -newermt 2016-12-05 -exec rm -f {} \; Co robi to polecenie? Szuka pliki jpg w przedziale czasowym od 2015-01-01 do 2016-12-05 i usuwa je z systemu.

Genrowanie plików w systemie Windows i Linux

Czasami zachodzi potrzeba wygenerowania sobie plików na potrzeby różnych testów. W Windows robię w ten sposób. Otwieram "Wiersz poleceń" i wpisuję: for /L %%a in (1,1,100) do fsutil file createnew plik-%%a.txt 0 W Linuksie otwieram konsolę i wpisuję: for i in `seq 1 100`;do touch plik-$i.txt;done I pod Windowsem i pod Linuksem skrypcik wygeneruje nam 100 plików o zerowym rozmiarze

Aktualizacja Roundcube

Aktualizacja Roundcube

Co jakiś czas należy zaktualizować roundcube. Programiści tej aplikacji zadbali aby proces ten był lekki, fajny i powabny :) Pobieramy najnowszą paczkę ze strony https://roundcube.net/download/ Rozpakowujemy archiwum: tar xvf roundcubemail-1.2.3-complete.tar.gz Wchodzimy do archiwum, następnie wchodzimy do katalogu bin W katalogu tym wydajemy polecenie: ./instalto.sh /var/www Skrypt potrzebuje ścieżki gdzie położona jest struktura katalogów z [...] Czytaj więcej

Samba4 - problem z połączeniem do kerberosa

Samba4 - problem z połączeniem do kerberosa

Po zainstalowaniu samba4 (ze źródeł) i próbując połączyć się w Ubuntu 16.04 z usługa kerberosa przez wydanie polecenia kinit administrator dostałem komunikat: root@rpi:/usr/local/samba/sbin# kinit administrator kinit: Cannot contact any KDC for realm 'SATKAS.LOCAL' while getting initial credentials Wszystkie inne usługi tj: dns, samba działają dobrze. Rozwiązanie: Edytujemy plik /etc/nsswitch.conf i zmieniamy linię: hosts: files mdns4_minimal [...] Czytaj więcej

Oglądaj, słuchaj, ćwicz - zdobywaj nowe umiejętności online

2011 - 2021 Satkas IT