Compare commits
No commits in common. "9f7884800127eb84d4166fe3787c0b5e3956b1a6" and "1029563cb11d574b33af34c82742a231bb6a35ec" have entirely different histories.
9f78848001
...
1029563cb1
4 changed files with 1 additions and 209 deletions
147
README.md
147
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
|
||||
```
|
||||
# Linux Auth
|
||||
|
|
@ -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 "Все бинарники успешно собраны."
|
||||
|
|
@ -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 "Среда готова."
|
||||
|
|
@ -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"
|
||||
Loading…
Add table
Add a link
Reference in a new issue