Update Russian translations for various resource packs, enhancing item names, GUI elements, and descriptions for improved localization; add warnings in install-service.sh regarding server directory placement in /home for better systemd compatibility.

This commit is contained in:
Leonid Pershin
2026-05-08 11:48:02 +03:00
parent a30ccbc9b7
commit a8a3e20ceb
8 changed files with 216 additions and 167 deletions
+50 -1
View File
@@ -84,6 +84,45 @@ fi
[[ -d "${SERVER_DIR}" ]] || err "каталог сервера не найден: ${SERVER_DIR}"
[[ -f "${SERVER_DIR}/start.sh" ]] || err "не найден ${SERVER_DIR}/start.sh"
# 3b. Предупреждение про /home — типичная причина status=200/CHDIR
# ProtectHome=read-only в unit-файле блокирует доступ к /home,
# плюс домашний каталог обычно имеет права 750 и пользователь
# сервиса не может в него войти. Рекомендуем /opt/<name>.
if [[ "${SERVER_DIR}" == /home/* ]]; then
PARENT_USER="$(stat -c '%U' "$(dirname "${SERVER_DIR}")" 2>/dev/null || echo "$USER")"
SUGGESTED_DIR="/opt/$(basename "$(dirname "${SERVER_DIR}")")/$(basename "${SERVER_DIR}")"
cat >&2 <<EOF
============================ ВНИМАНИЕ ============================
Каталог сервера находится в /home/:
${SERVER_DIR}
Это плохое место для systemd-сервиса:
- ProtectHome=read-only в unit-файле блокирует /home;
- дефолтные права на ~ (обычно 750) не дают зайти юзеру minecraft;
- типовая ошибка systemd: status=200/CHDIR.
Рекомендуется перенести сервер в /opt (или /srv) и работать оттуда.
Пример переноса (если вы уже клонировали репозиторий в /home):
sudo systemctl stop ${SERVICE_NAME} 2>/dev/null || true
sudo mkdir -p $(dirname "${SUGGESTED_DIR}")
sudo mv "$(dirname "${SERVER_DIR}")" "$(dirname "${SUGGESTED_DIR}")/"
cd "${SUGGESTED_DIR}"
sudo ./install-service.sh --admin-user ${PARENT_USER}
После этого git pull/push продолжит работать из нового пути,
а сервис уже не будет упираться в ProtectHome.
====================================================================
EOF
read -r -p "Продолжить установку с текущим путём в /home? [y/N] " ans
case "${ans,,}" in
y|yes) echo "Продолжаю..." ;;
*) err "установка отменена. Перенесите каталог в /opt и запустите скрипт снова." ;;
esac
fi
chmod +x "${SERVER_DIR}/start.sh" "${SERVER_DIR}/run.sh" 2>/dev/null || true
# 4. Создание пользователя при необходимости
@@ -142,6 +181,16 @@ EOF
fi
# 7. Генерация systemd unit-файла
# Если каталог в /home, ProtectHome нужно ослабить, иначе systemd
# не сможет даже сделать chdir в WorkingDirectory.
if [[ "${SERVER_DIR}" == /home/* ]]; then
PROTECT_HOME_LINE="ProtectHome=false # ослаблено, т.к. сервер в /home"
# Дополнительно открываем доступ юзеру minecraft на проход через ~
chmod o+x "$(dirname "${SERVER_DIR}")" 2>/dev/null || true
else
PROTECT_HOME_LINE="ProtectHome=read-only"
fi
echo ">> Создаю ${UNIT_FILE}..."
cat > "${UNIT_FILE}" <<EOF
[Unit]
@@ -168,7 +217,7 @@ StandardError=journal
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=full
ProtectHome=read-only
${PROTECT_HOME_LINE}
ReadWritePaths=${SERVER_DIR}
[Install]