No description
Find a file
2026-01-20 21:27:44 +03:00
cmd fix: retry logic 2026-01-20 21:27:44 +03:00
configs feat: first working version 2026-01-14 12:55:21 +03:00
internal feat: first working version 2026-01-14 12:55:21 +03:00
scripts feat: debian scripts 2026-01-14 13:23:24 +03:00
go.mod fix: downgraded go to 1.23.0 2026-01-20 20:48:36 +03:00
go.sum fix: downgraded go to 1.23.0 2026-01-20 20:48:36 +03:00
README.md docs: updated README 2026-01-14 13:23:43 +03:00

Linux Auth — Приложение аутентификации на Linux

Linux Auth — консольное приложение для аутентификации пользователей на Linux (Debian 12) с использованием локальной SQLite базы данных.
Поддерживает:

  • Ввод логина и пароля с маской
  • Ограничение числа попыток входа
  • Сброс формы
  • Настраиваемые параметры через TOML
  • CLI утилиты для инициализации и добавления пользователей

Настройка окружения

  1. Установить Go, gcc и SQLite dev на Debian 12:
bash scripts/config.sh
  • Обновляет репозитории

  • Устанавливает Go, GCC, SQLite

  • Подготавливает зависимости Go проекта

Сборка проекта

Скрипт build.sh собирает все бинарники:

  • Основное приложение: authapp

  • Инициализация пользователей: init_users

  • CLI утилита для добавления пользователей: add_user

bash scripts/build.sh
  • CGO включён для работы с go-sqlite3

  • Создаёт release и debug версии (build/release/, build/debug/)

Инициализация пользователей

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

./build/release/init_users
  • Создаёт пользователей из скрипта (admin, user1)

  • Пароли автоматически хешируются через SHA-256

Добавление новых пользователей

Используйте утилиту add_user для добавления пользователя без изменения кода:

./build/release/add_user -username USER -password PASS

Пример:

./build/release/add_user -username test -password 1234

Запуск основного приложения

bash scripts/run.sh
  • Запускает authapp с конфигурацией configs/config.toml

  • Поддерживает ввод логина и пароля с маской

  • Предусмотрена логика ограничения попыток и блокировки пользователя

  • Позволяет сбросить форму и повторить попытку

Пример работы:

=== AuthApp ===
Логин: admin
Пароль: ******
Доступ разрешён. Добро пожаловать, admin!

Конфигурация (configs/config.toml)

Пример:

[app]
name = "AuthApp"
max_login_attempts = 3
lock_timeout_sec = 300

[database]
type = "sqlite"
path = "./data/users.db"

[security]
password_hash = "sha256"

[ui]
show_welcome = true
  • max_login_attempts — количество попыток перед блокировкой

  • lock_timeout_sec — время блокировки пользователя (сек)

  • password_hash — алгоритм хеширования пароля

  • show_welcome — вывод приветствия при старте

Особенности и назначение утилит

authapp: Основное приложение для аутентификации пользователей init_users:Создаёт начальных пользователей в базе SQLite (admin, user1) add_user: CLI утилита для добавления новых пользователей без перекомпиляции

Проверка работы

Собрать проект:

bash scripts/build.sh

Инициализировать пользователей:

./build/release/init_users

Запустить приложение:

bash scripts/run.sh

Протестировать успешный и неуспешный вход

Добавить нового пользователя:

./build/release/add_user -username test -password 1234