diff --git a/README.md b/README.md index adb4563..af7f593 100644 --- a/README.md +++ b/README.md @@ -1,146 +1 @@ -# Linux Auth — Приложение аутентификации на Linux - -Linux Auth — консольное приложение для аутентификации пользователей на Linux (Debian 12) с использованием локальной SQLite базы данных. -Поддерживает: - -- Ввод логина и пароля с маской -- Ограничение числа попыток входа -- Сброс формы -- Настраиваемые параметры через TOML -- CLI утилиты для инициализации и добавления пользователей - -## Настройка окружения - -1. Установить Go, gcc и SQLite dev на Debian 12: - -```bash -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 -``` \ No newline at end of file +# Linux Auth \ No newline at end of file diff --git a/scripts/build.sh b/scripts/build.sh deleted file mode 100644 index 958aea7..0000000 --- a/scripts/build.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -# -------------------------------------- -# Сборка AuthApp и утилит на Debian 12 -# -------------------------------------- - -# Включаем CGO для работы go-sqlite3 -export CGO_ENABLED=1 -export GOOS=linux -export GOARCH=amd64 - -# Создаём папки для сборки -mkdir -p build/release -mkdir -p build/debug - -# ---------- Сборка основного приложения ---------- -echo "Сборка release версии AuthApp..." -go build -o build/release/authapp ./cmd/authapp -echo "Release сборка AuthApp завершена: build/release/authapp" - -echo "Сборка debug версии AuthApp..." -go build -gcflags="all=-N -l" -o build/debug/authapp ./cmd/authapp -echo "Debug сборка AuthApp завершена: build/debug/authapp" - -# ---------- Сборка утилиты инициализации пользователей ---------- -echo "Сборка init_users..." -go build -o build/release/init_users ./cmd/init_users -echo "Сборка init_users завершена: build/release/init_users" - -# ---------- Сборка утилиты добавления пользователей ---------- -echo "Сборка add_user..." -go build -o build/release/add_user ./cmd/add_user -echo "Сборка add_user завершена: build/release/add_user" - -echo "Все бинарники успешно собраны." diff --git a/scripts/config.sh b/scripts/config.sh deleted file mode 100644 index fb5af12..0000000 --- a/scripts/config.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -# -------------------------------------- -# Настройка среды для AuthApp на Debian 12 -# -------------------------------------- - -echo "Обновление репозиториев..." -sudo apt update - -echo "Установка Go, GCC и SQLite..." -sudo apt install -y golang gcc sqlite3 libsqlite3-dev ca-certificates - -echo "Установка Go модулей..." -go mod tidy - -echo "Среда готова." \ No newline at end of file diff --git a/scripts/run.sh b/scripts/run.sh deleted file mode 100644 index 3dad5be..0000000 --- a/scripts/run.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -# -------------------------------------- -# Запуск AuthApp -# -------------------------------------- - -CONFIG_PATH="configs/config.toml" - -if [ ! -f "$CONFIG_PATH" ]; then - echo "Конфигурационный файл $CONFIG_PATH не найден!" - exit 1 -fi - -echo "Запуск AuthApp с конфигурацией $CONFIG_PATH..." -./build/release/authapp --config "$CONFIG_PATH" \ No newline at end of file