Debian configure
Встановлення системи
Ця інструкція написана для Debian 12.10
Не буду розписувати як встановлювати Debian, скажу тільки те, що я використовую розмітку диска під LVM, все в одному розділі.
При встановленні пакетів відзначаємо тільки:
- SSH Server
- Standart system utilities
після перезавантаження вже у встановлену OS, даємо права рута своєму користувачеві
apt install sudo /sbin/usermod -aG sudo ваш користувач
якщо не хочемо повторно вводити свій пароль при виконанні sudo
змінимо налаштування для групи 'sudo':
sudo sed -i 's/^%sudo\s\+ALL=(ALL:ALL)\s\+ALL/%sudo\tALL=(ALL:ALL) NOPASSWD:ALL/' /etc/sudoers
Hystory key search
Покращимо навігацію та зберігання історії введених команд
cat <<EOT >> ~/.bashrc eval "$(dircolors -b)" # Підтримка кольорів у терміналі export LS_OPTIONS='--color=auto' alias ls='ls $LS_OPTIONS' alias ll='ls $LS_OPTIONS -l' alias l='ls $LS_OPTIONS -lA' alias df='df -h -x tmpfs' alias du='du -sh' # ===== [ІСТОРІЯ КОМАНД] ===== # Увімкнути розширення історії лише в інтерактивному режимі if [[ $- == *i* ]]; then # shopt -s histappend 2>/dev/null # Додає до історії, а не перезаписує # shopt -s cmdhist 2>/dev/null # Команди в одному рядку записуються повністю shopt -s lithist 2>/dev/null # Зберігає багаторядкові команди з перенесенням fi export PROMPT_COMMAND="history -a; history -n" # Зберігає історію в реальному часі (після кожної команди) export HISTSIZE=10000 # Кількість команд у сесії export HISTFILESIZE=20000 # Кількість команд у файлі export HISTCONTROL=ignoreboth:erasedups # Ігнорує дублікати та команди з пробілом; знищує дублікати з історії export HISTIGNORE='ls:ps:history*:cd ..:clear:EOT:EOL:EOF' # Не зберігати певні команди в історії # ===== [АВТОДОПОВНЕННЯ] ===== if [ -f /etc/bash_completion ]; then . /etc/bash_completion elif [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion fi EOT source ~/.bashrc
Навігація в істрії команд стрілками
Створюємо файл ~/.inputrc:
cat <<EOT >> ~/.inputrc # Respect default shortcuts. \$include /etc/inputrc ## arrow up "\e[A":history-search-backward ## arrow down "\e[B":history-search-forward EOT bind '"\e[A": history-search-backward' bind '"\e[B": history-search-forward'
Встановлення необхідних програм
Після встановлення системи та налаштування мережі, підключаємось по SSH
Налаштування будемо проводити під користувачем root
sudo -s вводимо пароль, якщо потрібно
оновимо репозиторій
apt -yq update -yq && apt -yq upgrade && apt full-upgrade && sync
Потім я встановлюю стандартний набір софту
apt -yq install linux-headers-$(uname -r) gcc make gnupg net-tools wget curl mc htop nano apt -yq install libperl-dev cpanminus subversion git apt -yq autoremove
Можемо зразу змінити текстовий редактор за замовчуванням командою
select-editor
вона покаже такий вивід:
Select an editor. To change later, run 'select-editor'. 1. /bin/nano <---- easiest 2. /usr/bin/mcedit 3. /usr/bin/vim.tiny Choose 1-3 [1]:
Я обираю nano
Якщо система на віртуалці під KVM\QEMU, то установимо QEMU-агент для зв'язку з гіпервізором
apt install qemu-guest-agent systemctl enable qemu-guest-agent systemctl start qemu-guest-agent systemctl status qemu-guest-agent
Очищення локальної пошти
cat <<EOT > /etc/cron.daily/cleanup-clientmqueue #!/bin/sh find /var/spool/clientmqueue/ -type f -delete EOT chmod +x /etc/cron.daily/cleanup-clientmqueue
Renew ssh certs & machine-id
За потреби, особливо після клонування віртуалок, на новій вм бажано оновити сертифікати і ідентифікатор машини
rm -v /etc/ssh/ssh_host_* dpkg-reconfigure openssh-server cat /var/lib/dbus/machine-id /etc/machine-id rm /etc/machine-id /var/lib/dbus/machine-id && dbus-uuidgen --ensure && systemd-machine-id-setup cat /var/lib/dbus/machine-id /etc/machine-id
Change hostname
hostnamectl set-hostname nod2.examle.org nano /etc/hosts
Disabling the IPv6
В разі не використання IPv6 їх краще вимкнути
cat <<EOT > /etc/sysctl.d/no_ipv6.conf # Disabling the IPv6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 EOT sysctl -f update-initramfs -u
Перевіримо
sysctl net.ipv6.conf.all.disable_ipv6
swapfile
/swapfile https://linuxize.com/post/how-to-add-swap-space-on-debian-10/
11 sudo swapoff -a 13 sudo su lvdisplay 14 lvremove /dev/mapper/debian-vg-swap_1 15 sudo fallocate -l 8G /swapfile 16 sudo chmod 600/swapfile 17 sudo mkswap /swapfile 18 sudo swapon /swapfile 19 sudo nano /etc/fstab 20 /swapfile swap swap defaults 0 0 21 echo 'RESUME=none' > /etc/initramfs-tools/conf.d/resume 22 lvresize -l +100%FREE /dev/mapper/debian--vg-root 22 resize2fs /dev/mapper/debian-vg-root 23 update-initramfs -u 24 update-grub 25 reboot 26 sudo su
if completly remove swap - comment line in /etc/fstab.conf
in /etc/initramfs-tools/conf.d/resume set
# RESUME=UUID=<whatever UUID> RESUME=none
sudo update-initramfs -uk all