# Дополнительное ПО

**Установка различного ПО**

#### Изменение прав пользователя

```ruby
# Добавление в администраторы
sudo adduser service
sudo usermod -aG wheel service

# Удаление из администраторов
sudo gpasswd -d user wheel
```


#### Блокировка входа под root

```ruby
sudo usermod -s /sbin/nologin root
```


#### Установка XRDP клиента

```ruby
sudo dnf install xrdp xrdp-selinux tigervnc-server
touch ~/.xsession
echo startplasma-x11 >> ~/.xsession
sudo systemctl enable xrdp
sudo systemctl restart xrdp
```

#### Создание общей папки в ОС  


```ruby
sudo mkdir /srv/shared
sudo groupadd SharedUsers
sudo chgrp -R SharedUsers /srv/shared
sudo chmod -R 775 /srv/shared
sudo usermod -a -G SharedUsers user
sudo usermod -a -G SharedUsers service
getent group SharedUsers
sudo reboot
```

#### Понижение Ядра RedOS

```ruby
sudo dnf download v4l2loopback_6.6.6-1.red80.x86_64.x86_64
sudo dnf install v4l2loopback_6.6.6-1.red80.x86_64-0.12.7-112.red80.x86_64.rpm
wget https://mirror.yandex.ru/redos/8.0/x86_64/os/kernel-lt-6.6.6-1.red80.x86_64.rpm
sudo dnf install kernel-lt-6.6.6-1.red80.x86_64.rpm
sudo ls -l /boot
sudo grubby --set-default /boot/vmlinuz-6.6.6-1.red80.x86_64
sudo reboot
```

#### Исправление проблемы с LAN

**Realtek RTL8125** \[Моноблок RDW\]

```ruby
echo -e "[Unit]\nDescription=Load r8169 driver\nBefore=network.target\n\n[Service]\nType=oneshot\nExecStart=/sbin/modprobe r8169\nRemainAfterExit=yes\n\n[Install]\nWantedBy=multi-user.target" | sudo tee /etc/systemd/system/load-r8169.service

sudo systemctl enable load-r8169.service
```

#### Исправление проблемы с Audio

**Фиксация версии пакета wireplumber**

```ruby
# Откатываем версию пакета
sudo -E dnf dg wireplumber wireplumber-libs

# Исключаем пакет из обновлений
sudo sh -c 'echo "exclude=wireplumber wireplumber-libs" >> /etc/dnf/dnf.conf'
```


#### Пред-Настройка Lenovo Notebook

**Входим в BIOS** \[F2\]

<table border="1" id="bkmrk-time-%D0%BD%D0%B0-3-%D1%87%D0%B0%D1%81%D0%B0-%D1%80%D0%B0%D0%BD%D1%8C%D1%88" style="border-collapse: collapse; width: 32.8571%; height: 89.3907px;"><colgroup><col style="width: 50.1529%;"></col><col style="width: 50.1529%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Time</td><td style="height: 29.7969px;">на 3 часа раньше реального</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Hotkey Mode</td><td style="height: 29.7969px;">Disable</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Flip to Start</td><td style="height: 29.7969px;">Disable</td></tr></tbody></table>

#### Установка OnlyOffice

```ruby
sudo dnf remove libreoffice*
sudo dnf autoremove
sudo dnf upgrade --refresh
sudo dnf install flatpak -y
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak install flathub org.onlyoffice.desktopeditors
```

#### Установка Шрифтов Gost-A в Linux

[https://fonts-online.ru/fonts/gost-type-a](https://fonts-online.ru/fonts/gost-type-a)  
**Скачиваем TTF файлы** в папку $HOME

```ruby
sudo mkdir /usr/share/fonts/gost
sudo cp *.ttf /usr/share/fonts/gost
```

#### Включение Alt+Shift в Ubuntu  


```ruby
sudo apt update
sudo apt install gnome-tweaks -y
gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Alt>Shift_L', '<Alt>Shift_R', '<Shift>Alt_L', '<Shift>Alt_R']"
```

#### Установка Winbox

```ruby
sudo dnf install snapd -y
sudo ln -s /var/lib/snapd/snap /snap
sudo systemctl enable --now snapd.socket
sudo systemctl start snapd
sudo snap install winbox
```

#### Установка KeePassXC

```ruby
sudo dnf install keepassxc -y
```

#### Установка NTP серверов времени

```ruby
sudo dnf install chrony
```

<details id="bkmrk-sudo-vim-%2Fetc%2Fchrony-1"><summary>sudo vim /etc/chrony/chrony.conf</summary>

```ruby
# Российские серверы времени
server ntp1.stratum1.ru iburst minpoll 4 maxpoll 10
server ntp2.stratum1.ru iburst minpoll 4 maxpoll 10
server ntp3.stratum1.ru iburst minpoll 4 maxpoll 10
server ntp1.vniiftri.ru iburst minpoll 4 maxpoll 10
server ntp2.vniiftri.ru iburst minpoll 4 maxpoll 10
# Резервные международные серверы
server 0.pool.ntp.org iburst minpoll 4 maxpoll 10
server 1.pool.ntp.org iburst minpoll 4 maxpoll 10
server 2.pool.ntp.org iburst minpoll 4 maxpoll 10
server 3.pool.ntp.org iburst minpoll 4 maxpoll 10

# Директория для хранения файлов
driftfile /var/lib/chrony/chrony.drift
# Файл для логов
logdir /var/log/chrony
# Включить ведение логов
log measurements statistics tracking
# Обновление файла drift при выходе
dumponexit
# Максимальная коррекция времени
maxupdateskew 100.0
# Коррекция времени при большой разнице
makestep 1.0 3
# Минимальное количество источников
minsources 2
# Включить kernel discipline
rtcsync
# Временная зона
leapsectz right/UTC
```

</details>```ruby
sudo chronyd -Q -f /etc/chrony/chrony.conf
sudo systemctl start chronyd
```

#### Установка AnyDesk

```ruby
wget https://download.anydesk.com/linux/anydesk-latest-amd64.tar.gz
sudo dnf install anydesk-latest-amd64.tar.gz
```

#### Монтирование FS OS в LiveCD

Загружаемся под LiveCD

```ruby
df -lh
Filesystem Size   Used Available Use% Mounted on
*          *      *    *         *    *
/dev/sda4  69G    17G  49G       26%  /run/media/liveuser/917bf822-3dcf-4c3b-8d20-52ae500cdf35
```

```ruby
# Proxmox Host
mkdir -p /mnt/vm130
guestmount -a /dev/pve/vm-130-disk-0 -i /mnt/vm130
cd /mnt/vm130
mount --bind /dev /mnt/vm130/dev
mount --bind /proc /mnt/vm130/proc
mount --bind /sys /mnt/vm130/sys
chroot /mnt/vm130 /bin/bash

# Размонтирование
cd
umount /mnt/vm130/
rm -rf /mnt/vm130
```

```ruby
# LiveCD Linux
sudo mkdir /mnt/rootfs
sudo mount -o rw /dev/sda4 /mnt/rootfs
sudo chroot /mnt/rootfs/
```

#### LVM Разделы при загрузке с LiveCD

```ruby
sudo vgchange -ay
```

#### Расширение раздела текущего диска

```ruby
sudo dnf install cloud-utils-growpart -y
sudo growpart /dev/vda 4
```

#### SCP Копирование по сети

```ruby
sudo scp -r /home/user1/folder1 user2@10.12.19.22:/home/user2/
```

#### Настройка IP утилитой Netplan

**Static**

```ruby
sudo nmcli connection modify netplan-enp3s0 ipv4.method manual \
ipv4.addresses "10.12.19.22/24" ipv4.gateway "10.12.19.1" ipv4.dns "10.12.19.1"

# Перезапуск соединения
sudo nmcli connection down netplan-enp3s0 && sudo nmcli connection up netplan-enp3s0
```

**DHCP**

```ruby
# Очистка статических настроек
sudo nmcli connection modify netplan-enp3s0 ipv4.addresses ""
sudo nmcli connection modify netplan-enp3s0 ipv4.gateway ""
sudo nmcli connection modify netplan-enp3s0 ipv4.dns ""

# Включение автоматического метода (DHCP) - это главная команда!
sudo nmcli connection modify netplan-enp3s0 ipv4.method auto

# Перезапуск соединения
sudo nmcli connection down netplan-enp3s0 && sudo nmcli connection up netplan-enp3s0
```

#### Установка Ventoy

```ruby
curl -s https://api.github.com/repos/ventoy/Ventoy/releases/latest | grep -o "https://.*linux\.tar\.gz" | head -1 | wget -i -
tar -xvf ventoy-1.1.12-linux.tar.gz
sudo rm -rf ventoy-1.1.12-linux.tar.gz
sudo mv ventoy-1.1.12 /opt
cd /opt/ventoy-1.1.12

sudo ./VentoyWeb.sh
```

**Перейти по ссылке**  
[http://127.0.0.1:24680](http://127.0.0.1:24680)

#### Выключение Emergency Mode (Silo)

```ruby
sudo systemctl isolate multi-user.target
```


#### Исправление эффекта Мерцания \[MSI\]  


**1. Диагностика оборудования**

```ruby
# Определим производителя и модель видеокарты
sudo lspci -k | grep -EA3 'VGA|3D|Display'

# Узнаем, какой драйвер используется
sudo dmesg | grep -i "drm" | grep -i "driver"

# Должен использоваться драйвер Intel i915
```

 **2. Настройка параметров ядра для Intel GPU**

```ruby
# 1.Создаем бэкап оригинального файла grub (на всякий случай)
sudo cp /etc/default/grub /etc/default/grub.backup

# 2.Редактируем конфигурацию GRUB с принудительным режимом
sudo sed -i 's/GRUB_CMDLINE_LINUX="[^"]*/& i915.force_probe=7d45 drm.vblankoffdelay=1 video=eDP-1:1920x1080@60D/' /etc/default/grub

# 3.Проверяем что изменения применились правильно
sudo grep GRUB_CMDLINE_LINUX /etc/default/grub

# 4.Обновляем конфигурацию GRUB
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

# 5.Если предыдущая команда не сработала, пробуем для UEFI системы
sudo grub2-mkconfig -o /boot/efi/EFI/redos/grub.cfg 2>/dev/null || echo "UEFI путь не найден, использован стандартный"
```

**3. Настройка X11 (GDM/SDDM)**

<details id="bkmrk-sudo-vim-%2Fetc%2Fx11%2Fxo"><summary>sudo vim /etc/X11/xorg.conf.d/10-monitor.conf</summary>

```ruby
Section "Monitor"
    Identifier  "eDP-1"
    # Генерируем точную модельню для 1920x1080 @ 60 Гц.
    # Эту строку можно сгенерировать командой: cvt 1920 1080 60
    Modeline    "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
    Option      "PreferredMode" "1920x1080_60.00"
EndSection

Section "Device"
    Identifier  "Intel Graphics"
    Driver      "intel"
    # Опция ниже может помочь с некоторыми проблемами совместимости
    # Option      "TearFree" "true"
EndSection

Section "Screen"
    Identifier  "Screen0"
    Device      "Intel Graphics"
    Monitor     "eDP-1"
    DefaultDepth 24
    SubSection "Display"
        Depth 24
        Modes "1920x1080_60.00"
    EndSubSection
EndSection
```

</details>**4. Перезагрузка и проверка**

```ruby
sudo reboot
```

```ruby
# Посмотреть текущее разрешение
sudo xrandr

# Проверить, что драйвер i915 загружен
sudo lsmod | grep i915
```

#### Смена default route интернета на Wi-Fi

```ruby
# Узнаем Имена Интерфейсов и Метрики (eno1)
route

# Меняем метрику LAN интерфейса ниже Wi-Fi интерфейса
sudo ip route del default dev eno1
sudo ip route add default via 192.168.1.1 dev eno1 metric 700

# Восстанавливаем метрики по умолчанию
sudo nmcli connection down eno1 && sudo nmcli connection up eno1

# Проверяем маршрут по умолчанию (через Wi-Fi)
route
```

#### Размещение Docker на другом диске ОС  


```ruby
sudo mkfs.xfs /dev/vdb
sudo mkdir -p /var/lib/docker_data
sudo blkid /dev/vdb
UUID=f1d77065-c5b2-4ad3-a188-71169be9c25e
  
sudo bash -c 'cat << EOF >> /etc/fstab
UUID=f1d77065-c5b2-4ad3-a188-71169be9c25e /var/lib/docker_data    xfs     defaults        0 0
EOF'

sudo systemctl daemon-reload
sudo mount -a
df -h /var/lib/docker_data
sudo systemctl stop docker

cat << EOF | sudo tee /etc/docker/daemon.json
{
  "log-driver": "journald",
  "live-restore": true,
  "icc": false,
  "disable-validation": true,
  "data-root": "/var/lib/docker_data"
}
EOF

sudo systemctl start docker
docker info | grep "Docker Root Dir"
sudo ls -l /var/lib/docker_data
sudo reboot
```

#### Одностраничник Docker (deb) тест HTTP

**Установка Docker (deb)**

```ruby
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker.io docker-ce docker-ce-cli containerd.io
```

```ruby
sudo usermod -aG docker $USER
exit
```

**Создание Dockerfile**

```ruby
touch index.html && chmod 644 index.html
docker run -d --name my-site -p 80:80 -v $(pwd)/index.html:/usr/share/nginx/html/index.html:ro,Z docker.io/nginx:alpine
```

#### Одностраничник Docker (rpm) тест HTTP

```ruby
sudo gpasswd -d $USER docker
sudo dnf install -y podman podman-docker podman-compose buildah slirp4netns fuse-overlayfs

echo 'net.ipv4.ip_unprivileged_port_start=80' | sudo tee /etc/sysctl.d/99-podman.conf
sudo sysctl -p /etc/sysctl.d/99-podman.conf
```

```ruby

<html>
<head>
    <title>Test Page</title>
</head>
<body>
    Hello World
</body>
</html>
```

**Создание Dockerfile**

```ruby
touch index.html && chmod 644 index.html
docker run -d --name my-site -p 80:80 -v $(pwd)/index.html:/usr/share/nginx/html/index.html:ro,Z docker.io/nginx:alpine
```

#### Экспорт DNS из списка IP

<details id="bkmrk-shell-script-%23%21%2Fbin%2F"><summary>shell script</summary>

```ruby
#!/bin/bash

# Файлы
input_file="ips.txt"
output_file="dns_names.txt"

# Проверка наличия входного файла
if [ ! -f "$input_file" ]; then
    echo "Ошибка: файл $input_file не найден."
    exit 1
fi

while IFS= read -r ip || [ -n "$ip" ]; do
    [ -z "$ip" ] && continue
    ip_clean=$(echo "$ip" | tr -d '\r' | xargs)

    names=$(python3 -c "
import subprocess, sys
ip = sys.argv[1]
try:
    result = subprocess.run(['dig', '+short', '-x', ip],
                            capture_output=True, text=True, timeout=5)
    if result.returncode == 0:
        lines = result.stdout.strip().splitlines()
        ptrs = [line.strip('.') for line in lines if line and not line.startswith(';')]
        print(', '.join(ptrs) if ptrs else '(none)')
    else:
        print('(none)')
except Exception:
    print('(none)')
" "$ip_clean")

    echo "$ip_clean -> $names"
done < "$input_file" > "$output_file"

# Вывод результата
echo -e "\n\033[1;32m✨ Готово! Список DNS-имен успешно сформирован: \033[0m"
echo -e "\033[1;34m--------------------------------------------------\033[0m"
cat "$output_file"
echo -e "\033[1;34m--------------------------------------------------\033[0m"
echo -e "Результаты также сохранены в файл: \033[1m$output_file\033[0m\n"
```

</details>#### Добавление / Изменение IP,DNS,GW

```ruby
# Добавление нового интерфейса
sudo nmcli connection add type ethernet \
con-name eccm-iface \
ifname ens15 \
ipv4.method manual \
ipv4.addresses 10.12.126.105/28 \
ipv4.gateway 10.12.126.110 \
ipv4.dns 10.10.51.1
sudo nmcli device reapply eccm-iface
```

```ruby
# Изменение DHCP на Static IP
sudo nmcli connection modify enp18s0 \
ipv4.method manual \
ipv4.addresses 10.12.126.105/28 \
ipv4.gateway 10.12.126.110 \
ipv4.dns 10.10.51.1
sudo nmcli device reapply enp18s0
```

#### Полезные ссылки

**Настройка Ubuntu Intel GPU Drivers**  
[https://www.linuxfordevices.com/tutorials/ubuntu/install-intel-graphic-drivers  
https://www.maketecheasier.com/install-intel-graphics-drivers-linux  
https://redos.red-soft.ru/base/redos-7\_3/7\_3-problem/7\_3-error-drivers/7\_3-intel-i915](https://www.linuxfordevices.com/tutorials/ubuntu/install-intel-graphic-drivers)

**Смена пароля root (grub)**  
[https://www.maketecheasier.com/reset-root-password-linux](https://www.maketecheasier.com/reset-root-password-linux)

**IPsec VPN Tunnel + Bastion Server**  
[https://github.com/chriscatuk/vpn-bastion  
https://curiousdevops.com/2022/01/26/diy-ssh-bastion-hosts-34b2-dee9874d](https://github.com/chriscatuk/vpn-bastion)

**Настрйока ProFTPd**  
[https://www.dmosk.ru/miniinstruktions.php?mini=proftpd-ubuntu](https://www.dmosk.ru/miniinstruktions.php?mini=proftpd-ubuntu)

**MeshCentral Сервер RDС**  
[https://ylianst.github.io/MeshCentral/install/install2/#ubuntu-1804](https://ylianst.github.io/MeshCentral/install/install2/#ubuntu-1804)

**Установка Proxmox виртуализации**  
[https://serveradmin.ru/ustanovka-i-nastroyka-proxmox](https://serveradmin.ru/ustanovka-i-nastroyka-proxmox)

**Установка Kaspersky Security Center** \[Wiki.js\]  
[https://wiki.ublinux.ru/ru/Software/Programs\_and\_utilities/All/ksc](https://wiki.ublinux.ru/ru/Software/Programs_and_utilities/All/ksc)


</body></html>