fix(deploy): конфиг в /opt/security-alert-center/config (sac:sac)
Убирает ошибку Permission denied при каталоге /etc root:root.
This commit is contained in:
@@ -118,17 +118,26 @@ sudo -u sac .venv/bin/pip install -r requirements.txt
|
||||
|
||||
---
|
||||
|
||||
## 6. Конфигурация `/etc/security-alert-center`
|
||||
## 6. Конфигурация
|
||||
|
||||
Файл лежит **в каталоге приложения** (владелец `sac`) — так проще, чем права на `/etc/...`.
|
||||
|
||||
```bash
|
||||
sudo mkdir -p /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 должна иметь доступ (иначе 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
|
||||
sudo mkdir -p /opt/security-alert-center/config
|
||||
sudo cp /opt/security-alert-center/deploy/env.native.example \
|
||||
/opt/security-alert-center/config/sac-api.env
|
||||
sudo nano /opt/security-alert-center/config/sac-api.env
|
||||
sudo chown sac:sac /opt/security-alert-center/config/sac-api.env
|
||||
sudo chmod 600 /opt/security-alert-center/config/sac-api.env
|
||||
```
|
||||
|
||||
Если уже создавали `/etc/security-alert-center/sac-api.env` — перенесите:
|
||||
|
||||
```bash
|
||||
sudo mkdir -p /opt/security-alert-center/config
|
||||
sudo cp /etc/security-alert-center/sac-api.env /opt/security-alert-center/config/sac-api.env
|
||||
sudo chown sac:sac /opt/security-alert-center/config/sac-api.env
|
||||
sudo chmod 600 /opt/security-alert-center/config/sac-api.env
|
||||
```
|
||||
|
||||
Обязательно задать:
|
||||
@@ -146,29 +155,16 @@ sudo chmod 640 /etc/security-alert-center/sac-api.env
|
||||
Проверка, что `sac` читает конфиг (должно быть без `Permission denied`):
|
||||
|
||||
```bash
|
||||
sudo -u sac test -r /etc/security-alert-center/sac-api.env && echo OK
|
||||
ls -la /opt/security-alert-center/config/sac-api.env
|
||||
# должно быть: -rw------- sac sac
|
||||
sudo -u sac test -r /opt/security-alert-center/config/sac-api.env && echo OK
|
||||
```
|
||||
|
||||
Миграции:
|
||||
|
||||
```bash
|
||||
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` — проверьте **каталог** (не только файл):
|
||||
|
||||
```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'
|
||||
sudo -u sac bash -c 'set -a; source /opt/security-alert-center/config/sac-api.env; set +a; .venv/bin/alembic upgrade head'
|
||||
```
|
||||
|
||||
---
|
||||
@@ -268,7 +264,7 @@ EOF
|
||||
cd /opt/security-alert-center
|
||||
sudo -u sac git pull
|
||||
sudo -u sac backend/.venv/bin/pip install -r backend/requirements.txt
|
||||
sudo -u sac bash -c 'set -a; source /etc/security-alert-center/sac-api.env; set +a; cd backend && .venv/bin/alembic upgrade head'
|
||||
sudo -u sac bash -c 'set -a; source /opt/security-alert-center/config/sac-api.env; set +a; cd backend && .venv/bin/alembic upgrade head'
|
||||
sudo systemctl restart sac-api
|
||||
```
|
||||
|
||||
@@ -280,7 +276,7 @@ sudo systemctl restart sac-api
|
||||
- [ ] ufw: 22, 80, 443
|
||||
- [ ] PostgreSQL: БД `sac`, пользователь `sac`
|
||||
- [ ] venv, зависимости установлены
|
||||
- [ ] `/etc/security-alert-center/sac-api.env`, chmod 600
|
||||
- [ ] `/opt/security-alert-center/config/sac-api.env`, владелец `sac:sac`, chmod 600
|
||||
- [ ] `alembic upgrade head` без ошибок
|
||||
- [ ] `sac-api` active (systemd)
|
||||
- [ ] nginx + TLS
|
||||
@@ -293,7 +289,7 @@ sudo systemctl restart sac-api
|
||||
|
||||
| Симптом | Действие |
|
||||
|---------|----------|
|
||||
| `sac-api.env: Permission denied` | `chown root:sac` и `chmod 750` на **каталог** `/etc/security-alert-center`, `chmod 640` на файл |
|
||||
| `sac-api.env: Permission denied` | Конфиг в `/opt/security-alert-center/config/`, `chown sac:sac`, `chmod 600`. Не используйте `/etc/...` с каталогом `root:root` |
|
||||
| `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` |
|
||||
|
||||
Reference in New Issue
Block a user