Przejdź do głównej zawartości

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.