Linux
Zarządzanie użytkownikami
Przełączanie na innego użytkownika
sudo su - jenkins
Aby zobaczyć listę użytkowników w systemie
cat /etc/passwd
Lista użytkowników z ich grupami w jednym miejscu
getent passwd | cut -d: -f1 | xargs -n1 groups
Zakładanie użytkownika
sudo adduser kaczordonald
sudo usermod -aG sudo kaczordonald
Sprawdzenie uprawnień
groups kaczordonald -> kaczordonald : kaczordonald sudo
Wykonywanie poleceń za pomocą su bez podawania hasła
sudo visudo
Następnie
rumburak ALL=(ALL) NOPASSWD:ALL
Alternatywa: tylko jedno polecenie bez hasła
rumburak ALL=(ALL) NOPASSWD:/bin/systemctl restart apache2
Zarządzanie oprogramowaniem
Aktualizacja informacji o pakietach (bez ich pobierania i instalowania)
sudo apt update
Instalowanie dostępnych aktualizacji
-y - bez każdorazowego potwierdzania
sudo apt upgrade -y
Aktualizacja snap-store
Z reguły jak GUI Snap Store nie może zainstalować samej siebie.
killall snap-store
sudo snap refresh
Sprawy sieciowe
Sprawdzanie parametrów interfejsów sieciowych
ip addr show
Statyczny adres IP
Edytuj plik:
sudo nano /etc/netplan/00-installer-config.yaml
Przykładowa konfiguracja:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: true
enp0s8:
dhcp4: false
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 1.1.1.1
Zastosuj zmiany:
sudo netplan apply
Sprawdzanie statusu serwisu
sudo /etc/init.d/ssh status
Wyszukiwanie adresu IP po MAC w sieci
sudo nmap -sPn 172.26.204.0/25 | grep -B2 B4:C2:6A:D0:2C:AF
Wyszukiwanie
Wyszukiwanie po nazwie pliku / katalogu
find /home/user/ -type f -name "plik.txt"
find /var/log/ -type f -name "*.log"
find /home -type f -size +100M
find /home -type f -mtime -7 // zmodyfikowane w ostatnich 7 dniach
find /home/user/ -type d -name "mojkatalog"
find /etc -type d //Znajdź wszystkie katalogi w /etc
find / -type d -name "*config*" //Znajdź katalogi, których nazwa zawiera „config”
find /home -type d -mtime -7 //Znajdź katalogi zmodyfikowane w ciągu ostatnich 7 dni
Wyszukiwanie w plikach
grep -r "error" /var/log/
find /home -type f -name "*.txt" -exec grep -l "hasło" {} \; //Znajdź pliki .txt zawierające frazę „hasło”
Znalezienie ścieżki do programu
which python
Znalezienie lokalizacji pliku binarnego, źródłowego i manuala
whereis ls
Kopiowanie plików między maszynami
Kopiowanie folderu z lokalnego komputera na zdalny serwer
scp -r ~/projekty/moj_folder user@192.168.1.100:/home/user/kopie
scp -r -P 2222 user@192.168.1.100:/home/user/kopie ~/projekty/ //niestandardowy port
scp -r -C user@192.168.1.100:/home/user/kopie ~/projekty/ //-C włącza kompresję
SSH - serwer
Instalacja
sudo apt update && sudo apt install openssh-server -y
Uruchomienie
sudo systemctl start ssh
Ustaw automatyczne uruchamianie przy starcie systemu
sudo systemctl enable ssh
Sprawdź status serwera SSH
sudo systemctl status ssh
Logowanie SSH za pomocą kluczy (certyfikatów)
Na komputerze (klient), który będzie łączyć się z drugą maszyną (serwer):
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
-t rsa – typ klucza (RSA)
-b 4096 – długość klucza (4096 bitów)
f ~/.ssh/id_rsa – ścieżka do plików klucza (prywatny: id_rsa, publiczny: id_rsa.pub)
Skopiowanie klucza publicznego na serwer
Użyj komendy ssh-copy-id, aby dodać klucz do ~/.ssh/authorized_keys na serwerze:
ssh-copy-id user@serwer
ssh-copy-id -i /ścieżka/do/klucza.pub user@host
Jeśli ssh-copy-id nie jest dostępne, możesz zrobić to ręcznie:
scp ~/.ssh/id_rsa.pub user@serwer:~/
ssh user@serwer "mkdir -p ~/.ssh && cat ~/id_rsa.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
rm ~/id_rsa.pub # Usunięcie przesłanego pliku klucza (opcjonalnie)
(Opcjonalnie) Wyłączenie logowania hasłowego na serwerze
sudo nano /etc/ssh/sshd_config
Zmodyfikuj lub dodaj linie:
PasswordAuthentication no
PubkeyAuthentication yes
Następnie zrestartuj usługę SSH:
sudo systemctl restart ssh
Dodawanie istniejącego certyfikatu do drugiego hosta (klienta)
Kopiujemy na hosta id_rsa, sprawdzamy/zmieniamy uprawniania
chmod 600 ~/.ssh/id_rsa
Sprawdzamy czy agent ssh działa
eval "$(ssh-agent -s)"
Dodajemy certyfikat
ssh-add ~/.ssh/id_rsa
Sprawdzamy poprawność konfiguracji
ssh-add -l
Konfiguracja klienta SSH (opcjonalnie)
~/.ssh/config
Host myserver
HostName example.com
User myuser
IdentityFile ~/.ssh/id_rsa
CertificateFile ~/.ssh/id_rsa-cert.pub
Teraz możesz połączyć się bez podawania klucza za każdym razem:
ssh myserver
Usuwanie dodanego hosta do know_hosts
ssh-keygen -R NAZWA_LUB_IP
Wymuszanie podania hasła przy połączeniu ssh
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no user@host
-o PreferredAuthentications=password – ustawia preferowaną metodę uwierzytelniania na hasło.
-o PubkeyAuthentication=no – wyłącza uwierzytelnianie kluczami publicznymi.
Zamknięcie pokrywy wyświetlacza w Ubuntu
Aby skonfigurować Ubuntu 20.04 tak, aby laptop nie wyłączał się ani nie przechodził w tryb uśpienia po zamknięciu pokrywy, wykonaj następujące kroki:
sudo nano /etc/systemd/logind.conf
HandleLidSwitch=ignore
HandleLidSwitchDocked=ignore // brak hibernacji
Zrestartuj usługę logind
sudo systemctl restart systemd-logind
Lub zrestartuj komputer
sudo reboot
Usuwanie GNOME Badge Counter
GNOME 46/47 potrafi pokazywać badge z liczbą nieprzeczytanych powiadomień dla aplikacji.
Możesz je wyzerować:
Ustawienia → Powiadomienia → Pliki → Wyłącz „Pokazuj liczbę powiadomień”
lub przez dconf:
gsettings set org.gnome.desktop.notifications show-banners false
Instalacja Ubuntu
Pendrive Ubuntu
# 1. Znajdź nazwę pendrive'a
lsblk
# 2. Odmontuj pendrive (np. /dev/sdb)
sudo umount /dev/sdb*
# 3. Nagraj obraz ISO
sudo dd bs=4M if=/ścieżka/do/ubuntu.iso of=/dev/sdb conv=fdatasync status=progress
Uwaga: Zamień /dev/sdb na właściwą nazwę swojego pendrive'a (sprawdź dokładnie w lsblk!) — błędna nazwa może nadpisać dysk systemowy.