diff --git a/docs/install-ubuntu-24.04-native.md b/docs/install-ubuntu-24.04-native.md index bfcbec0..ae08c61 100644 --- a/docs/install-ubuntu-24.04-native.md +++ b/docs/install-ubuntu-24.04-native.md @@ -122,10 +122,11 @@ sudo -u sac .venv/bin/pip install -r requirements.txt ```bash sudo mkdir -p /etc/security-alert-center -sudo chmod 750 /etc/security-alert-center sudo cp /opt/security-alert-center/deploy/env.native.example /etc/security-alert-center/sac-api.env sudo nano /etc/security-alert-center/sac-api.env -# Права: читает пользователь sac (systemd и alembic), не «весь мир» +# Каталог и файл: группа sac должна иметь доступ (иначе Permission denied у пользователя sac) +sudo chown root:sac /etc/security-alert-center +sudo chmod 750 /etc/security-alert-center sudo chown root:sac /etc/security-alert-center/sac-api.env sudo chmod 640 /etc/security-alert-center/sac-api.env ``` @@ -155,7 +156,20 @@ cd /opt/security-alert-center/backend sudo -u sac bash -c 'set -a; source /etc/security-alert-center/sac-api.env; set +a; .venv/bin/alembic upgrade head' ``` -Если снова `Permission denied` — повторите права из §6: `chown root:sac`, `chmod 640` на `sac-api.env`. +Если снова `Permission denied` — проверьте **каталог** (не только файл): + +```bash +namei -l /etc/security-alert-center/sac-api.env +# у каталога security-alert-center должны быть root:sac и drwxr-x--- +sudo chown root:sac /etc/security-alert-center +sudo chmod 750 /etc/security-alert-center +``` + +Разовый обход для миграции (от root, если срочно): + +```bash +sudo bash -c 'set -a; source /etc/security-alert-center/sac-api.env; set +a; cd /opt/security-alert-center/backend && .venv/bin/alembic upgrade head' +``` --- @@ -279,8 +293,9 @@ sudo systemctl restart sac-api | Симптом | Действие | |---------|----------| -| `sac-api.env: Permission denied` | `sudo chown root:sac /etc/security-alert-center/sac-api.env && sudo chmod 640 ...` | -| `database: error` / SQLAlchemy connect | Переменные не подгрузились — см. выше; проверить `DATABASE_URL`, `psql` от пользователя `sac` не нужен — проверьте URL вручную; `systemctl status postgresql` | +| `sac-api.env: Permission denied` | `chown root:sac` и `chmod 750` на **каталог** `/etc/security-alert-center`, `chmod 640` на файл | +| `password authentication failed for user sac` | Пароль в `DATABASE_URL` ≠ пароль в PostgreSQL; или `.env` не прочитан (тогда берётся дефолт `sac:sac`). Исправить пароль: `sudo -u postgres psql -c "ALTER USER sac PASSWORD '...';"` и обновить `DATABASE_URL` | +| `database: error` / SQLAlchemy connect | `systemctl status postgresql`; проверить `DATABASE_URL` после успешного `source` | | 401 ingest | ключ в `Authorization: Bearer`; проверить `SAC_BOOTSTRAP_API_KEY` | | 502 от nginx | API не слушает: `ss -lntp \| grep 8000`, `systemctl restart sac-api` | | Schema errors 422 | путь `EVENT_SCHEMA_PATH`, наличие файла schema |