Полное руководство по автоматизации Tails: настройка кастомных биндов и автозагрузки

sedoj-enot

Moderator
Команда форума
ACTIVE NODE
Каждый оператор даркнет-площадок сталкивается с главной проблемой Tails. Система создана для анонимности и по умолчанию не сохраняет настройки между сессиями. Каждый раз при загрузке ты получаешь чистую систему без твоих скриптов и горячих клавиш. Приходится настраивать все заново, а это потеря времени и денег.

Я решил эту проблему. Создал систему автоматической настройки биндов при запуске. Скрипты хранятся в постоянном хранилище и активируются автоматически. В этой статье покажу, как это сделать на основе твоего примера.

Создание структуры директорий​

Создай папки для скриптов и логов:


Код:
mkdir -p /home/amnesia/Persistent/scripts
mkdir -p /home/amnesia/Persistent/logs
Все скрипты будут лежать в /home/amnesia/Persistent/scripts/

Создание основных скриптов для работы с заказами​

Создай три основных скрипта, которые будут выполняться по нажатию горячих клавиш.

Файл /home/amnesia/Persistent/scripts/started:


Код:
#!/bin/bash
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
LOG_FILE="/home/amnesia/Persistent/logs/orders.log"
echo "[$TIMESTAMP] ЗАКАЗ В РАБОТЕ" >> $LOG_FILE
notify-send "Заказ в работе" "Статус обновлен" -i emblem-default
exit 0
Файл /home/amnesia/Persistent/scripts/sucsess:


Код:
#!/bin/bash
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
LOG_FILE="/home/amnesia/Persistent/logs/orders.log"
echo "[$TIMESTAMP] ЗАКАЗ ВЫПОЛНЕН" >> $LOG_FILE
notify-send "Заказ выполнен" "Статус обновлен" -i emblem-default
exit 0
Файл /home/amnesia/Persistent/scripts/replacement:


Код:
#!/bin/bash
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
LOG_FILE="/home/amnesia/Persistent/logs/orders.log"
echo "[$TIMESTAMP] ЗАМЕНА ЗАКАЗА" >> $LOG_FILE
notify-send "Замена выполнена" "Статус обновлен" -i emblem-default
exit 0

Создание главного скрипта инициализации биндов​

Этот скрипт берется из твоего примера. Он настраивает горячие клавиши через gsettings.

Файл /home/amnesia/Persistent/scripts/setup-binds.sh:


Код:
#!/bin/bash

BASE="org.gnome.settings-daemon.plugins.media-keys"
PATHBASE="/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings"

# Устанавливаем список кастомных биндов
gsettings set $BASE custom-keybindings \
"[
'$PATHBASE/custom0/',
'$PATHBASE/custom1/',
'$PATHBASE/custom2/',
'$PATHBASE/custom3/',
'$PATHBASE/custom4/'
]"

# custom0 - Резерв
gsettings set $BASE.custom-keybinding:$PATHBASE/custom0/ \
name "Резерв"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom0/ \
binding "<Shift><Alt>KP_Home"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom0/ \
command "/home/amnesia/Persistent/scripts/backup_script"

# custom1 - Свободный слот
gsettings set $BASE.custom-keybinding:$PATHBASE/custom1/ \
name "Свободный"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom1/ \
binding "<Shift><Alt>KP_Up"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom1/ \
command "/home/amnesia/Persistent/scripts/future_script"

# custom2 - Заказ в работе
gsettings set $BASE.custom-keybinding:$PATHBASE/custom2/ \
name "Заказ в работе"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom2/ \
binding "<Shift><Alt>KP_End"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom2/ \
command "/home/amnesia/Persistent/scripts/started"

# custom3 - Заказ выполнен
gsettings set $BASE.custom-keybinding:$PATHBASE/custom3/ \
name "Заказ выполнен"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom3/ \
binding "<Shift><Alt>KP_Down"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom3/ \
command "/home/amnesia/Persistent/scripts/sucsess"

# custom4 - Замена
gsettings set $BASE.custom-keybinding:$PATHBASE/custom4/ \
name "Замена"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom4/ \
binding "<Shift><Alt>KP_Insert"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom4/ \
command "/home/amnesia/Persistent/scripts/replacement"

notify-send "Бинды активированы" "Все бинды настроены" -i dialog-information

exit 0

Создание дополнительных скриптов-заглушек​

Для custom0 и custom1 создай простые заглушки.

Файл /home/amnesia/Persistent/scripts/backup_script:


Код:
#!/bin/bash
notify-send "Резервный слот" "Заглушка" -i dialog-information
exit 0
Файл /home/amnesia/Persistent/scripts/future_script:


Код:
#!/bin/bash
notify-send "Свободный слот" "Заглушка" -i dialog-information
exit 0

Назначение прав на исполнение​

Все скрипты должны иметь права на исполнение. Выполни команды:


Код:
chmod +x /home/amnesia/Persistent/scripts/started
chmod +x /home/amnesia/Persistent/scripts/sucsess
chmod +x /home/amnesia/Persistent/scripts/replacement
chmod +x /home/amnesia/Persistent/scripts/setup-binds.sh
chmod +x /home/amnesia/Persistent/scripts/backup_script
chmod +x /home/amnesia/Persistent/scripts/future_script

Настройка автозапуска​

Чтобы скрипт setup-binds.sh запускался автоматически при загрузке, создай .desktop файл.

Файл /home/amnesia/.config/autostart/setup-binds.desktop:


Код:
[Desktop Entry]
Type=Application
Name=Setup Custom Binds
Comment=Автоматическая настройка биндов
Exec=/home/amnesia/Persistent/scripts/setup-binds.sh
Icon=preferences-system-session
Terminal=false
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
X-GNOME-Autostart-Delay=3
Если папки autostart нет, создай ее:


Код:
mkdir -p /home/amnesia/.config/autostart

Предотвращение повторного запуска​

Добавь в начало setup-binds.sh проверку флага, чтобы скрипт не запускался дважды:


Код:
FLAG_FILE="/tmp/setup_binds_done"
if [ -f "$FLAG_FILE" ]; then
    exit 0
fi
touch "$FLAG_FILE"
Полный файл setup-binds.sh с проверкой:


Код:
#!/bin/bash

FLAG_FILE="/tmp/setup_binds_done"
if [ -f "$FLAG_FILE" ]; then
    exit 0
fi
touch "$FLAG_FILE"

BASE="org.gnome.settings-daemon.plugins.media-keys"
PATHBASE="/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings"

gsettings set $BASE custom-keybindings \
"[
'$PATHBASE/custom0/',
'$PATHBASE/custom1/',
'$PATHBASE/custom2/',
'$PATHBASE/custom3/',
'$PATHBASE/custom4/'
]"

gsettings set $BASE.custom-keybinding:$PATHBASE/custom0/ name "Резерв"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom0/ binding "<Shift><Alt>KP_Home"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom0/ command "/home/amnesia/Persistent/scripts/backup_script"

gsettings set $BASE.custom-keybinding:$PATHBASE/custom1/ name "Свободный"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom1/ binding "<Shift><Alt>KP_Up"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom1/ command "/home/amnesia/Persistent/scripts/future_script"

gsettings set $BASE.custom-keybinding:$PATHBASE/custom2/ name "Заказ в работе"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom2/ binding "<Shift><Alt>KP_End"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom2/ command "/home/amnesia/Persistent/scripts/started"

gsettings set $BASE.custom-keybinding:$PATHBASE/custom3/ name "Заказ выполнен"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom3/ binding "<Shift><Alt>KP_Down"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom3/ command "/home/amnesia/Persistent/scripts/sucsess"

gsettings set $BASE.custom-keybinding:$PATHBASE/custom4/ name "Замена"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom4/ binding "<Shift><Alt>KP_Insert"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom4/ command "/home/amnesia/Persistent/scripts/replacement"

notify-send "Бинды активированы" "Все бинды настроены" -i dialog-information

exit 0

Добавление новых биндов​

Чтобы добавить новый бинд, расширь список в setup-binds.sh. Например, добавляем custom5 для нового заказа.

Сначала создай скрипт /home/amnesia/Persistent/scripts/new-order:


Код:
#!/bin/bash
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
echo "[$TIMESTAMP] НОВЫЙ ЗАКАЗ" >> /home/amnesia/Persistent/logs/orders.log
notify-send "Новый заказ" "Создан" -i emblem-default
exit 0
Назначь права:
Код:
Назначь права: chmod +x /home/amnesia/Persistent/scripts/new-order

Теперь добавь его в setup-binds.sh. Измени список custom-keybindings:


Код:
gsettings set $BASE custom-keybindings \
"[
'$PATHBASE/custom0/',
'$PATHBASE/custom1/',
'$PATHBASE/custom2/',
'$PATHBASE/custom3/',
'$PATHBASE/custom4/',
'$PATHBASE/custom5/'
]"
И добавь настройку custom5:


Код:
gsettings set $BASE.custom-keybinding:$PATHBASE/custom5/ name "Новый заказ"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom5/ binding "<Shift><Alt>KP_Page_Up"
gsettings set $BASE.custom-keybinding:$PATHBASE/custom5/ command "/home/amnesia/Persistent/scripts/new-order"

Теперь у тебя есть полностью автоматизированная система. При каждой загрузке Tails скрипт setup-binds.sh запускается автоматически и настраивает все горячие клавиши. Ты нажимаешь Shift+Alt+KP_End и скрипт started выполняется. Shift+Alt+KP_Down запускает sucsess. Shift+Alt+KP_Insert запускает replacement.

Все работает на основе твоего примера. Скрипты простые, но ты можешь расширять их под свои задачи. Добавляй отправку уведомлений в Telegram, интеграцию с API площадки, любые другие действия.

Главное, что настройка происходит один раз и больше не требует твоего внимания. Трать время на работу, а не на настройку инструментов.
 
Верх