Ключ: igate-traverse к staging (/var/lib/bj) — чинит ложное «нет local.pse»

Пересборку справочника crestor запускает igate, а /var/lib/bj был 0750 bj:bj —
igate не мог пройти в staging и выдавал ложное «нет local.pse». bj-server при
старте даёт /var/lib/bj traverse (0751) — доезжает обновлением. Воркер
bj-keymedia-install тоже даёт права и показывает реальную ошибку crestor вместо
спама «dropped older CRL» (для новых ISO). Убрана ошибочная подсказка про ГСЧ.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
fontvielle
2026-10-21 10:00:24 +03:00
parent 17b134dab3
commit 42ae5ed12b
2 changed files with 7 additions and 2 deletions
+2 -1
View File
@@ -264,8 +264,9 @@ sleep 2
# ---- ПЕРЕСОБРАТЬ совместимый справочник на флешке (архивный gdbm malformed) ----
REBUILD_RES="skip"
if [ -n "$SPRNAME" ] && [ -x "$REBUILD" ] && [ -f "$FLASH_SPR/local.pse" ]; then
chmod o+x /var/lib/bj 2>/dev/null; chmod -R a+rX "$FLASH_SPR" 2>/dev/null # igate (crestor) должен читать staging под /var/lib/bj
RB=$("$REBUILD" "$FLASH_SPR" 2>&1)
if echo "$RB" | grep -q '"ok":true'; then REBUILD_RES="ok"; else REBUILD_RES="fail: $(echo "$RB"|tr -d '\n"'|head -c160)"; fi
if echo "$RB" | grep -q '"ok":true'; then REBUILD_RES="ok"; else e=$(echo "$RB" | grep -o '"error":"[^"]*"' | head -1 | sed 's/^"error":"//;s/"$//'); [ -n "$e" ] || e=$(echo "$RB"|tr -d '\n"'|head -c160); REBUILD_RES="fail: $e"; fi
sync
fi
+5 -1
View File
@@ -255,6 +255,10 @@ func (h *setupHandlers) registerKeyWizard(mux *http.ServeMux) {
h.keyWiz = newKeyWizardState()
}
mux.HandleFunc("/admin/setup/keywizard", h.renderKeyWizard)
// igate (пересборка справочника воркером bj-keymedia-install) должен проходить в staging
// под /var/lib/bj: даём каталогу traverse (bj — владелец). Без этого пересборка падала
// ложным «нет local.pse». Доезжает обновлением bj-server.
_ = os.Chmod(filepath.Dir(keymediaReqDir), 0o751)
mux.HandleFunc("/admin/setup/keywizard/upload", h.keyWizardUpload)
mux.HandleFunc("/admin/setup/keywizard/install", h.keyWizardInstall)
mux.HandleFunc("/admin/setup/keywizard/reset", h.keyWizardReset)
@@ -659,7 +663,7 @@ func keyInstallProblem(res map[string]any) string {
check, _ := res["keycheck"].(string)
switch {
case rebuild != "ok" && rebuild != "as-is":
return "справочник сертификатов не собран — " + rebuildRu(rebuild) + " Если не инициализирован датчик случайных чисел Валидаты (блок «Датчик случайных чисел» выше) — пересборка не подпишется: поводите мышью в поле до заполнения полосы и повторите."
return "справочник сертификатов не собран — " + rebuildRu(rebuild)
case igate != "connected" && igate != "pending-channel":
return "профиль ИШ не сформирован — " + strings.TrimSuffix(igateRu(igate), ":")
case strings.HasPrefix(check, "fail"):