Общее cbonsai Установка из исходников git clone https://gitlab.com/jallbrit/cbonsai cd cbonsai sudo make install PREFIX=/usr/ocal cd .. rm -rf cbonsai Cockpit SSL Залить на сервер сертификат (certificate.crt) и ключ (certificate.key) sudo cat certificate.crt > /etc/cockpit/ws-certs.d/ssl.cert sudo cat certificate.key >> /etc/cockpit/ws-certs.d/ssl.cert sudo systemctl restart cockpit Gnome - увеличение громкости более 100% gsettings set org.gnome.desktop.sound allow-volume-above-100-percent 'true' IPIP туннель 192.168.2.1 - внутренний адрес узла туннеля 255.255.255.0 - подсеть внутреннего туннеля Временный туннель sudo apt install ipip sudo modprobe ipip sudo modprobe tun sudo ip tunnel add tun0 mode ipip remote local sudo ip link set tun0 up sudo ip addr add 192.168.2.1/24 dev tun0 Постоянный туннель sudo apt install ipip sudo modprobe ipip sudo modprobe tun sudo nano /etc/network/interfaces auto tun0 iface tun0 inet static address 192.168.2.1 netmask 255.255.255.0 network 192.168.2.0 broadcast 192.168.2.255 pre-up /sbin/ip tunnel add tun0 mode ipip remote local post-down /sbin/ip tunnel del tun0 sudo ifup tun0 LVM Расширение раздела Подключаем диск В данном примере, группа lvm vgmain, подключенный диск sdb, а увеличиваемый раздел - корневой. Смотрим текущий список групп: vgdisplay Добавляем диск в группу: vgextend vgmain /dev/sdb Смотрим текущий список разделов: lvdisplay Увеличиваем раздел на размер добавленного диска: lvextend -r -l +100%FREE /dev/vgmain/root Меняем разметку файловой системы: xfs_growfs / -d Nextcloud Включение HTTPS sudo nano /var/www/html/config/config.php 'overwrite.cli.url' => 'https://my.nextcloud.com', 'overwritehost' => 'my.nextcloud.com', 'overwriteprotocol' => 'https', 'htaccess.RewriteBase' => '/', sudo -u www-data php /var/www/html/occ maintenance:update:htaccess Очистка приложений sudo -u www-data php /var/www/html/occ files:scan-app-data Переиндексация файлов sudo -u www-data php /var/www/html/occ files:scan --all Исправление кодировки sudo convmv -f utf-8 -t utf-8 -r --notest --nfc sudo -u www-data php /var/www/html/occ files:scan --all Отключение индексирования sudo touch /.noindex Отключение сканирования фото sudo touch /.noimage Отключение сканирования медиа sudo touch /.nomedia Превью sudo -u www-data php /var/www/html/occ config:app:set --value="32 64 1024" previewgenerator squareSizes sudo -u www-data php /var/www/html/occ config:app:set --value="64 128 1024" previewgenerator widthSizes sudo -u www-data php /var/www/html/occ config:app:set --value="64 256 1024" previewgenerator heightSizes sudo -u www-data php /var/www/html/occ config:app:set preview jpeg_quality --value="60" sudo -u www-data php /var/www/html/occ config:system:set preview_max_x --value 2048 sudo -u www-data php /var/www/html/occ config:system:set preview_max_y --value 2048 sudo -u www-data php /var/www/html/occ config:system:set jpeg_quality --value 60 sudo systemctl restart apache2 sudo -u www-data php /var/www/html/occ preview:delete_old sudo -u www-data php /var/www/html/occ preview:generate-all -vvv sudo -u www-data php /var/www/html/occ preview:pre-generate sudo crontab -u www-data -e */10 * * * * php -f /var/www/html/occ preview:pre-generate sudo nano /var/www/html/config/config.php 'preview_libreoffice_path' => '/usr/bin/libreoffice', 'enable_previews' => true, 'enabledPreviewProviders' => array ( 0 => 'OC\\Preview\\Image', 1 => 'OC\\Preview\\Movie', ), Миграция в PostgreSQL sudo apt install php-pgsql sudo -u postgres psql CREATE USER nextcloud WITH PASSWORD 'p@$$w0rd'; CREATE DATABASE nextcloud TEMPLATE template0 ENCODING 'UNICODE'; ALTER DATABASE nextcloud OWNER TO nextcloud; GRANT ALL PRIVILEGES ON DATABASE nextclouddb TO nextcloud; \q sudo -u www-data php /var/www/html/nextcloud/occ db:convert-type --all-apps --password "p@$$w0rd" pgsql nextcloud localhost nextcloud Сказать клиентам, что данные на сервере поменялись sudo -u www-data php /var/www/html/occ maintenance:data-fingerprint Исправление ошибок Redis sudo redis-cli -s /var/run/redis/redis-server.sock flushall Исправление ошибок с датой sudo find /data/folder -mtime +18000 -exec echo {} ";" sudo touch /data/folder/wrong/file sudo -u www-data php /var/www/html/occ files:scan --all Автозапуск скрипта для Gnome Если есть необходимость запускатьскрипт при каждом запуске Gnome окружения, необходимо создать desktop файл автозапуска: nano ~/.config/autostart/scriptname.desktop Где scriptname - название файла, которое может быть любым, но логичнее всего сделать его аналогичным названию файла скрипта. Вставить в него содержимое: [Desktop Entry] Name=my-script GenericName=my-script Comment=My Script Exec='/home/user/.config/autostart/scriptname.sh' Terminal=false Type=Application X-GNOME-Autostart-enabled=true Где: my-script - название скрипта в графическом окружении My Script - описание скрипта /home/user/.config/autostart/scriptname.sh - пусть до скрипта, который необходимо запускать После перезапуска графического окружения, скрипт автоматически будет запущен в фоне. Автоматическое обновление Flatpak пакетов Установка службы обновления для пользователей sudo nano /etc/systemd/user/update-user-flatpaks.service [Unit] Description=Update user Flatpaks [Service] Type=oneshot ExecStart=/usr/bin/flatpak update --assumeyes --noninteractive --user [Install] WantedBy=default.target Установка службы обновления для системы sudo nano /etc/systemd/system/update-system-flatpaks.service [Unit] Description=Update system Flatpaks After=network-online.target Wants=network-online.target [Service] Type=oneshot ExecStart=/usr/bin/flatpak update --assumeyes --noninteractive --system [Install] WantedBy=multi-user.target Установка таймера для пользователей sudo nano /etc/systemd/user/update-user-flatpaks.timer [Unit] Description=Update user Flatpaks daily [Timer] OnCalendar=daily Persistent=true [Install] WantedBy=timers.target Установка таймера для системы sudo nano /etc/systemd/system/update-system-flatpaks.timer [Unit] Description=Update system Flatpaks daily [Timer] OnCalendar=daily Persistent=true [Install] WantedBy=timers.target Включение и запуск служб systemctl --user enable --now update-user-flatpaks.timer sudo systemctl --system enable --now update-system-flatpaks.timer   Включение поддержки Wayland для NoMachine Вариант 1 sudo nano /usr/NX/etc/node.cfg WaylandModes "compositor,drm" sudo systemctl restart display-manager sudo /etc/NX/nxserver --restart Вариант 2 sudo /etc/NX/nxserver --egl-capture yes sudo nano /usr/NX/etc/node.cfg WaylandModes "egl,compositor,drm" sudo systemctl restart display-manager sudo /etc/NX/nxserver --restart Включение подсветки синтаксиса в nano Если файл конфига есть, то: nano ~/.config/nano/nanorc Если файла конфига нет, то: mkdir -p ~/.config/nano; cd !$; nano nanorc include "/usr/share/nano/*.nanorc" Включение ускорения Firefox В about:config изменить Включение аппаратного ускорения: layers.acceleration.force-enabled = true webgl.force-enabled = true gfx.webrender.enabled = true gfx.webrender.all = true dom.webgpu.enabled = true Включение аппаратного декодирования: widget.wayland-dmabuf-vaapi.enabled = true media.ffmpeg.vaapi.enabled = true media.ffmpeg.low-latency.enabled = true media.navigator.mediadatadecoder_vpx_enabled = true media.ffvpx.enabled = false media.rdd-ffvpx.enabled = false media.rdd-vpx.enabled = false Перезапустить браузер Генерация dbparam.pem sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096 Генерация QR кодов Установить qrencode, после чего выполнить необходимую команду по генерации. Генерация ссылки qrencode -m 0 -l H -s 6 -o qrcode.png "https://www.tiukov.com" Генерация геопозиции qrencode -m 0 -l H -s 6 -o "grcode.png" "geo:12.459444,99.978611" Генерация номера телефона qrencode -m 0 -l H -s 6 -o "grcode.png" "tel: +79876543210" Генерация Wi-Fi подключения qrencode -m 0 -l H -s 6 -o "grcode.png" "WIFI:T:WPA2;S:SSID_WIFI_NAME;P:P@$$W0RD;;" Генерация создания письма qrencode -m 0 -l H -s 6 -o "grcode.png" "mailto:mail@example.com?subject=Test&body=Test mail message" Генерация SMS qrencode -m 0 -l H -s 6 -o "grcode.png" "smsto:+79876543210,Test message" Добавить текст в начало или в конец каждой строки С помощью sed (3 варианта): sed 's/^/ТЕКСТ ДО/' file.txt sed -e 's/^\(.*\)$/ТЕКСТ ДО\1/' file.txt sed 's/.*/ТЕКСТ ДО&/' file.txt sed 's/$/ТЕКСТ ПОСЛЕ/' file.txt sed -e 's/^\(.*\)$/\1ТЕКСТ ПОСЛЕ/' file.txt sed 's/.*/&ТЕКСТ ПОСЛЕ/' file.txt sed 's/^/ТЕКСТ ДО/; s/$/ТЕКСТ ПОСЛЕ/' file.txt sed -e 's/^\(.*\)$/ТЕКСТ ДО\1ТЕКСТ ПОСЛЕ/' file.txt sed 's/.*/ТЕКСТ ДО&ТЕКСТ ПОСЛЕ/' file.txt С помощью awk: awk '{ print "ТЕКСТ ДО" $0 }' file.txt awk '{ print $0 "ТЕКСТ ПОСЛЕ" }' file.txt awk '{ print "ТЕКСТ ДО" $0 "ТЕКСТ ПОСЛЕ" }' file.txt С помощью perl (3 варианта): perl -lne 'print "ТЕКСТ ДО$_"' file.txt perl -pe 's/^/ТЕКСТ ДО/' file.txt perl -lpe '$_="ТЕКСТ ДО$_"' file.txt perl -lne 'print "$_ТЕКСТ ПОСЛЕ"' file.txt perl -pe 's/$/ТЕКСТ ПОСЛЕ/' file.txt perl -lpe '$_="$_ТЕКСТ ПОСЛЕ"' file.txt perl -lne 'print "ТЕКСТ ДО$_ТЕКСТ ПОСЛЕ"' file.txt perl -pe 's/^/ТЕКСТ ДО/; s/$/ТЕКСТ ПОСЛЕ/' file.txt perl -lpe '$_="ТЕКСТ ДО$_ТЕКСТ ПОСЛЕ"' file.txt Если нужно вывести не на экран, а в файл, то в конце команды добавить: > new_file.txt Конвертирование форматов изображений PNG->JPG for file in *.png; do convert $file "$file.jpg"; done JPG->PNG for file in *.jpg; do convert $file "$file.png"; done   Копирование диска по сети Получатель nc -l $PORT | pbzip2 -d | dd of=/hdd.img obs=1M Отправитель pv /dev/$DISK | pbzip2 -9 | nc $IP $PORT $DISK - Идентификатор диска или раздела (например sda ) $IP - IP адрес устройства, куда нужно отправить данные $PORT - Порт для подключения Вмнесто /hdd.img можно указать другое расположение или диск, для переноса данных 1к1. Для работы нужны: netcat , dd , pv и pbzip2 Некорректные цвета в Firefox В некоторых случаях цвета отдельных элементов сайта могут отображаться некорректно при использовании темной системной темы. Например, это наиболее часто проявляется на формах ввода. Исправляется сменой настроек браузера. Открыть расширенные настройки браузера через about:config Элементу browser.display.use_system_colors выставить значение False Элементу widget.content.allow-gtk-dark-theme выставить значение False Обновление модулей Python Проверить список устаревших модулей pip3 list --outdated Вариант 1 pip3 list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip3 install -U Вариант 2 pip3 list -o | cut -f1 -d' ' | tr " " "\n" | awk '{if(NR>=3)print)' | cut -d' ' -f1 | xargs -n1 pip3 install -U Отключение защиты от Meltdown и Spectre Для отключения защиты необходимо отредактировать строку загрузки, добавив необходимые параметры: sudo nano /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="... noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off mitigations=off" sudo update-grub sudo reboot Отключение защиты от уязвимостей Отредактировать параметр GRUB_CMDLINE_LINUX загрузчика sudo nano /etc/default/grub Если ядро старее 5.1.13 GRUB_CMDLINE_LINUX="noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off mitigations=off" Если ядро новее 5.1.13 GRUB_CMDLINE_LINUX="mitigations=off" Обновить загрузчик sudo update-grub Перезапустить систему sudo reboot Проверить актуальное состояние защиты sudo lscpu Отключение экрана консоли sudo nano /etc/default/grub GRUB_CMDLINE_LINUX="consoleblank=120" sudo update-grub Разрешение запуска графических приложений под sudo Из под обычного пользователя выполнить команды echo "xhost local:root" >> ~/.xinitrc xhost local:root Скрипт подключения к RDP Предварительно установить пакет freerdp sudo nano /opt/rdp.sh #!/bin/bash #GDK_BACKEND=x11 RDPCLIP="-clipboard" RDPCOMP="-compression" RDPSHARE="-home-drive" RDPSERVER=`zenity --entry --title="RDP" --text="Server address"` RDPLOGIN=`zenity --entry --title="RDP" --text="Server login"` RDPPASS=`zenity --entry --hide-text --title="RDP" --text="Server password"` RDPCHOICE=`zenity --list --title "RDP" --text "Connection options" --checklist --column "" --column "Select" 1 "Clipboard" 2 "Compression" 3 "Share home folder"` case "${RDPCHOICE}" in *"Clipboard"* ) RDPCLIP="+clipboard" ;; esac case "${RDPCHOICE}" in *"Compression"* ) RDPCOMP="+compression" ;; esac case "${RDPCHOICE}" in *"Share home folder"* ) RDPSHARE="+home-drive" ;; esac xfreerdp /u:$RDPLOGIN /p:$RDPPASS /v:$RDPSERVER /cert-ignore /network:auto /workarea /dynamic-resolution /disp /video /nsc /microphone /sound /smartcard /gfx /rfx +window-drag +offscreen-cache +menu-anims +gfx-progressive +gfx-small-cache +gfx-thin-client +glyph-cache +multitransport +gestures +bitmap-cache +aero +fonts $RDPSHARE $RDPCLIP $RDPCOMP &> /dev/null При использовании Wayland, раскомментировать строку GDK_BACKEND=x11 Скачать иконку для приложения и положить в домашнюю директорию sudo mv ~/rdp.png /opt/rdp.png nano ~/.local/share/applications/rdp.desktop [Desktop Entry] Exec=/opt/rdp.sh %u Name=RDP GenericName=RDP X-GNOME-FullName=RDP Icon=/opt/rdp.png Type=Application Terminal=False В списке приложений появится приложение с названием RDP Выбор опций при подключении влияет на следующее: Clipboard - включение общего буфера обмена между компьютером и удаленным сервером Compression - включение сжатия (включать  при работе через интернет или при медленной локальной сети) Share home folder - подключение домашней директории в виде сетевого диска на удаленном сервере Служба Tracker Отключение systemctl --user mask tracker-extract-3.service tracker-miner-fs-3.service tracker-miner-rss-3.service tracker-writeback-3.service tracker-xdg-portal-3.service tracker-miner-fs-control-3.service tracker3 reset -s -r Перезапустить компьютер Включение systemctl --user unmask tracker-extract-3.service tracker-miner-fs-3.service tracker-miner-rss-3.service tracker-writeback-3.service tracker-xdg-portal-3.service tracker-miner-fs-control-3.service Перезапустить компьютер Создание файла подкачки Создаем файл размером в 4GB: sudo fallocate -l 4G /swapfile Выставляем права: sudo chmod 600 /swapfile Превращаем его в swap раздел: sudo mkswap /swapfile Подключаем: sudo swapon /swapfile Добавляем авто подключение при старте системы: echo '/swapfile none swap sw 0 0' |sudo tee -a /etc/fstab Удаление агента Itarian nano uninstall_ccc.sh #!/bin/bash if find /etc/systemd/system/itsm.service -name itsm.service -print -quit; then systemctl stop itsm && systemctl disable itsm && rm -f /etc/systemd/system/itsm.service && rm -rf /opt/COMODO && rm -rf /run/comodo && rm -rf /etc/xdg/menus/applications-merged/comodo-comodo.menu && rm -rf ~/Desktop/comodo-ccs.desktop read -p "REBOOT IS NEEDED, PERFORM NOW? Y/N " n echo $n if [ $n = Y ] || [ $n = y ]; then /sbin/reboot fi elif find /etc/init/itsm.conf -name itsm.conf -print -quit; then stop itsm && rm /etc/init/itsm.conf && initctl reload-configuration && rm -rf /opt/COMODO && rm -rf /run/comodo && rm -rf /etc/xdg/menus/applications-merged/comodo-comodo.menu && rm -rf ~/Desktop/comodo-ccs.desktop echo "" echo "***COMODO CLIENT COMMUNICATION IS UNINSTALLED***" echo "" read -p "REBOOT IS NEEDED, PERFORM NOW? Y/N " n echo $n if [ $n = Y ] || [ $n = y ]; then /sbin/reboot fi else echo "" echo "***DEVICE IS NOT ENROLLED IN ITSM***" echo "" fi chmod +x uninstall_ccc.sh sudo sh uninstall_ccc.sh Удаление загрузочных записей BIOS/UEFI Посмотреть список записей efibootmgr -v Удалить конкретную запись sudo efibootmgr -b # -B Где # - номер записи без нулей (например для записи Boot0003 необходимо указывать просто 3). Установка unbound sudo apt install unbound wget https://www.internic.net/domain/named.root -qO- | sudo tee /var/lib/unbound/root.hints sudo nano /etc/unbound/unbound.conf.d/main.conf server: logfile: "/var/log/unbound/unbound.log" verbosity: 1 interface: 0.0.0.0 port: 53 do-ip4: yes do-udp: yes do-tcp: yes do-ip6: no prefer-ip6: no #root-hints: "/var/lib/unbound/root.hints" harden-glue: yes harden-dnssec-stripped: yes hide-identity: yes hide-version: yes use-caps-for-id: no edns-buffer-size: 1472 prefetch: yes num-threads: 1 so-rcvbuf: 1m private-address: 192.168.0.0/16 private-address: 169.254.0.0/16 private-address: 172.16.0.0/12 private-address: 10.0.0.0/8 private-address: fd00::/8 private-address: fe80::/10 access-control: 192.168.0.0/16 allow access-control: 169.254.0.0/16 allow access-control: 172.16.0.0/12 allow access-control: 10.0.0.0/8 allow access-control: 127.0.0.1/24 allow sudo mkdir -p /var/log/unbound sudo touch /var/log/unbound/unbound.log sudo chown unbound /var/log/unbound/unbound.log sudo systemctl disable systemd-resolved --now sudo systemctl restart unbound Установка пакетного менеджера NIX Установка curl -L https://nixos.org/nix/install | sh Добавление списка установленных приложений nix в общий список ln -s /home/$USER/.nix-profile/share/applications/* /home/$USER/.local/share/applications/