{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Alt Linux - Мои заметки: заметки с тегом Sync",
    "_rss_description": "Здесь собраны собственные и чужие находки полезные при работы с ALT Linux. Чтобы всегда были под рукой и не потерялись в приложении заметки.",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/alt.webman.agency\/tags\/sync\/",
    "feed_url": "https:\/\/alt.webman.agency\/tags\/sync\/json\/",
    "icon": false,
    "authors": [
        {
            "name": "Дмитрий",
            "url": "https:\/\/alt.webman.agency\/",
            "avatar": false
        }
    ],
    "items": [
        {
            "id": "8",
            "url": "https:\/\/alt.webman.agency\/all\/ctavim-i-nastraivaem-resilio-sync-v-alt-linux-gnome\/",
            "title": "Cтавим и настраиваем Resilio Sync в ALT Linux GNOME",
            "content_html": "<p>Безопасная установка и настройка с автозапуском и точечным доступом к вашим папкам<\/p>\n<p><h2>1. Установка<\/h2><\/p>\n<pre><pre class=\"e2-text-code\"><code class=\"\"># 1.1. скачиваем официальный RPM\ncd ~\/Загрузки\nwget https:\/\/download-cdn.resilio.com\/stable\/linux-x64\/resilio-sync-x64.rpm\n\n# 1.2. ставим\nepm install .\/resilio-sync-x64.rpm<\/code><\/pre><\/pre>\n<p><h2>2. Создаём системного пользователя и нужные каталоги<\/h2><\/p>\n<pre><pre class=\"e2-text-code\"><code class=\"\"># 2.1. пользователь и группа\nsudo groupadd -r rslsync 2&gt;\/dev\/null\nsudo useradd -r -g rslsync -d \/var\/lib\/resilio-sync -s \/sbin\/nologin rslsync 2&gt;\/dev\/null\n\n# 2.2. рабочие директории\nsudo mkdir -p \/var\/lib\/resilio-sync \/etc\/resilio-sync\nsudo chown rslsync:rslsync \/var\/lib\/resilio-sync \/etc\/resilio-sync<\/code><\/pre><\/pre>\n<p><h2>3. Включаем автозапуск и проверяем статус<\/h2><\/p>\n<pre><pre class=\"e2-text-code\"><code class=\"\">sudo systemctl enable --now resilio-sync\nsystemctl is-enabled resilio-sync   # должен выдать enabled\nsystemctl status resilio-sync       # active (running)<\/code><\/pre><\/pre>\n<p><h2>4. Настраиваем права: только нужные папки и ничего лишнего<\/h2><\/p>\n<p>Замените <pre class=\"e2-text-code\"><code class=\"\">YOUR_USER<\/code><\/pre> на ваше имя пользователя (например, <pre class=\"e2-text-code\"><code class=\"\">ivan<\/code><\/pre>).<\/p>\n<pre><pre class=\"e2-text-code\"><code class=\"\"># 4.1. чистим старые ACL (!!! если нужно сбросить права в каталоге)\nsudo setfacl -b \/home\/YOUR_USER\n\n# 4.2. запрет на весь домашний каталог (только traverse)\nsudo setfacl -m u:rslsync:--x \/home\/YOUR_USER\n\n# 4.3. полный доступ к выбранным папкам + наследование\nfor d in iCloud &quot;Рабочий стол&quot; Документы Загрузки Видео Музыка Изображения; do\n  sudo setfacl -R -m u:rslsync:rwx &quot;\/home\/YOUR_USER\/$d&quot;\n  sudo setfacl -d -m u:rslsync:rwx &quot;\/home\/YOUR_USER\/$d&quot;\ndone\n\n# 4.4. то же для себя (чтобы вы могли удалять\/изменять новые файлы)\nfor d in iCloud &quot;Рабочий стол&quot; Документы Загрузки Видео Музыка Изображения; do\n  sudo setfacl -R -m u:$(id -un):rwx &quot;\/home\/YOUR_USER\/$d&quot;\n  sudo setfacl -d -m u:$(id -un):rwx &quot;\/home\/YOUR_USER\/$d&quot;\ndone<\/code><\/pre><\/pre>\n<p><h2>5. Перезапускаем службу<\/h2><\/p>\n<pre><pre class=\"e2-text-code\"><code class=\"\">sudo systemctl restart resilio-sync<\/code><\/pre><\/pre>\n<p><h2>6. Первый вход в веб-интерфейс<\/h2><\/p>\n<p>Откройте браузер по адресу <a href=\"http:\/\/127.0.0.1:8888\/gui\"><a href=\"http:\/\/127.0.0.1:8888\/gui\">http:\/\/127.0.0.1:8888\/gui<\/a><\/a> и задайте имя устройства и новый пароль администратора.<\/p>\n<p><h2>7. Проверяем автозапуск и права<\/h2><\/p>\n<pre><pre class=\"e2-text-code\"><code class=\"\"># автозапуск\nsystemctl is-enabled resilio-sync   # enabled\n\n# права: rslsync НЕ видит \/home\/YOUR_USER, но видит нужные папки\nsudo -u rslsync ls \/home\/YOUR_USER          # Permission denied\nsudo -u rslsync ls \/home\/YOUR_USER\/Загрузки # OK<\/code><\/pre><\/pre>\n<p>Готово: Resilio Sync стартует сам при загрузке ALT Linux, имеет доступ только к выбранным папкам и ничего лишнего; вы и сервис можете читать, писать и удалять новые файлы без sudo.<\/p>\n<p>Поправить права можно скриптом ИИ-шный на свой страх и риск<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">#!\/bin\/bash\n# Скрипт для глобальной настройки прав доступа в Resilio Sync\n# Запускать с sudo: sudo .\/setup-resilio-permissions.sh\n\nset -e\n\necho &quot;=== Настройка прав доступа Resilio Sync ===&quot;\necho &quot;&quot;\n\n# Определяем текущего пользователя (который запустил sudo)\nif [ -z &quot;$SUDO_USER&quot; ]; then\n    echo &quot;Ошибка: скрипт должен быть запущен с sudo&quot;\n    exit 1\nfi\n\nSYNC_USER=&quot;$SUDO_USER&quot;\nSYNC_GROUP=&quot;$SUDO_USER&quot;\n\necho &quot;Пользователь для синхронизации: $SYNC_USER&quot;\necho &quot;Группа для синхронизации: $SYNC_GROUP&quot;\necho &quot;&quot;\n\n# 1. Добавляем пользователя в группу rslsync (если она существует)\nif getent group rslsync &gt; \/dev\/null 2&gt;&amp;1; then\n    echo &quot;1. Добавление пользователя $SYNC_USER в группу rslsync...&quot;\n    usermod -a -G rslsync &quot;$SYNC_USER&quot; || echo &quot;   Предупреждение: не удалось добавить в группу (возможно, уже добавлен)&quot;\n    echo &quot;   ✓ Готово&quot;\nelse\n    echo &quot;1. Группа rslsync не найдена, пропускаем...&quot;\nfi\n\n# 2. Создаём резервную копию конфигурации\nCONFIG_FILE=&quot;\/etc\/resilio-sync\/config.json&quot;\nif [ -f &quot;$CONFIG_FILE&quot; ]; then\n    echo &quot;&quot;\n    echo &quot;2. Создание резервной копии конфигурации...&quot;\n    cp &quot;$CONFIG_FILE&quot; &quot;${CONFIG_FILE}.backup.$(date +%Y%m%d_%H%M%S)&quot;\n    echo &quot;   ✓ Резервная копия создана&quot;\nfi\n\n# 3. Обновляем конфигурацию Resilio Sync (если нужно)\necho &quot;&quot;\necho &quot;3. Проверка конфигурации Resilio Sync...&quot;\n# Примечание: Resilio Sync не поддерживает прямую настройку прав доступа через config.json\n# Используем групповые права и setgid вместо этого\necho &quot;   ℹ Используем групповые права вместо параметров конфигурации&quot;\n\n# 4. Настраиваем системный сервис (опционально - можно изменить пользователя)\necho &quot;&quot;\necho &quot;4. Настройка системного сервиса...&quot;\nSERVICE_FILE=&quot;\/etc\/systemd\/system\/multi-user.target.wants\/resilio-sync.service&quot;\nif [ -f &quot;$SERVICE_FILE&quot; ]; then\n    # Создаём резервную копию\n    cp &quot;$SERVICE_FILE&quot; &quot;${SERVICE_FILE}.backup.$(date +%Y%m%d_%H%M%S)&quot;\n    \n    # Обновляем UMask в сервисе для более открытых прав\n    sed -i &#039;s\/UMask=0002\/UMask=0002\/&#039; &quot;$SERVICE_FILE&quot; || true\n    echo &quot;   ✓ Сервис настроен&quot;\nelse\n    echo &quot;   ⚠ Файл сервиса не найден: $SERVICE_FILE&quot;\nfi\n\n# 5. Находим все синхронизируемые директории\necho &quot;&quot;\necho &quot;5. Поиск всех синхронизируемых директорий...&quot;\n\n# Определяем группу для использования\nif getent group rslsync &gt; \/dev\/null 2&gt;&amp;1; then\n    USE_GROUP=&quot;rslsync&quot;\nelse\n    USE_GROUP=&quot;$SYNC_GROUP&quot;\nfi\n\necho &quot;   Используем группу: $USE_GROUP&quot;\necho &quot;&quot;\n\n# Функция для настройки прав на директорию\nsetup_directory_permissions() {\n    local SYNC_DIR=&quot;$1&quot;\n    \n    if [ ! -d &quot;$SYNC_DIR&quot; ]; then\n        echo &quot;   ⚠ Директория не найдена: $SYNC_DIR&quot;\n        return 1\n    fi\n    \n    echo &quot;   Обработка: $SYNC_DIR&quot;\n    \n    # Исправляем владельца и группу существующих файлов и директорий\n    # Владелец: пользователь, группа: rslsync (или группа пользователя, если rslsync нет)\n    echo &quot;      Исправление владельца и группы существующих файлов...&quot;\n    chown -R &quot;$SYNC_USER:$USE_GROUP&quot; &quot;$SYNC_DIR&quot; 2&gt;\/dev\/null || echo &quot;         ⚠ Не удалось изменить владельца\/группу (может потребоваться больше прав)&quot;\n    \n    # Устанавливаем setgid бит на директории (2775 = rwxrwxr-x + setgid)\n    # Это гарантирует, что новые файлы будут создаваться с группой директории\n    echo &quot;      Установка setgid бита на директории...&quot;\n    find &quot;$SYNC_DIR&quot; -type d -exec chmod 2775 {} \\; 2&gt;\/dev\/null || echo &quot;         ⚠ Не удалось установить setgid бит&quot;\n    \n    # Устанавливаем права на файлы (0664 = rw-rw-r--)\n    # Это даёт чтение\/запись владельцу и группе\n    echo &quot;      Установка прав на файлы...&quot;\n    find &quot;$SYNC_DIR&quot; -type f -exec chmod 0664 {} \\; 2&gt;\/dev\/null || echo &quot;         ⚠ Не удалось изменить права на файлы&quot;\n    \n    # Настраиваем ACL для дополнительной защиты\n    echo &quot;      Настройка ACL...&quot;\n    setfacl -R -m d:g:&quot;$USE_GROUP&quot;:rwx &quot;$SYNC_DIR&quot; 2&gt;\/dev\/null || true\n    setfacl -R -m g:&quot;$USE_GROUP&quot;:rwx &quot;$SYNC_DIR&quot; 2&gt;\/dev\/null || true\n    \n    echo &quot;      ✓ Права настроены (владелец: $SYNC_USER, группа: $USE_GROUP)&quot;\n}\n\n# Ищем все директории с .sync (исключаем служебные директории Resilio Sync)\nSYNC_DIRS=$(find \/home\/&quot;$SYNC_USER&quot; -name &quot;.sync&quot; -type d 2&gt;\/dev\/null | \\\n    grep -v &quot;\/\\.config\/resilio-sync&quot; | \\\n    grep -v &quot;\/\\.SyncUser&quot; | \\\n    grep -v &quot;\/License\/&quot; | \\\n    xargs -I {} dirname {} | \\\n    sort -u)\n\n# Также проверяем системные директории (если есть доступ)\nif [ -d &quot;\/var\/lib\/resilio-sync&quot; ]; then\n    # Можно добавить логику для поиска системных директорий, если нужно\n    # Пока пропускаем, так как они обычно требуют специальной настройки\n    true\nfi\n\n# Подсчитываем количество найденных директорий\nSYNC_COUNT=0\nif [ -n &quot;$SYNC_DIRS&quot; ]; then\n    SYNC_COUNT=$(echo &quot;$SYNC_DIRS&quot; | grep -v &#039;^$&#039; | wc -l)\nfi\n\nif [ &quot;$SYNC_COUNT&quot; -eq 0 ]; then\n    echo &quot;   ⚠ Не найдено синхронизируемых директорий&quot;\n    echo &quot;   Проверьте, что Resilio Sync запущен и синхронизирует папки&quot;\nelse\n    echo &quot;   Найдено директорий: $SYNC_COUNT&quot;\n    echo &quot;&quot;\n    \n    # Обрабатываем каждую директорию\n    COUNTER=1\n    while IFS= read -r SYNC_DIR; do\n        if [ -n &quot;$SYNC_DIR&quot; ] &amp;&amp; [ -d &quot;$SYNC_DIR&quot; ]; then\n            echo &quot;   [$COUNTER\/$SYNC_COUNT] $SYNC_DIR&quot;\n            setup_directory_permissions &quot;$SYNC_DIR&quot;\n            echo &quot;&quot;\n            COUNTER=$((COUNTER + 1))\n        fi\n    done &lt;&lt;&lt; &quot;$SYNC_DIRS&quot;\nfi\n\n# 6. Создаём .syncignore файлы в директориях с .git\necho &quot;&quot;\necho &quot;6. Создание .syncignore файлов в директориях с .git...&quot;\n\nSYNCIGNORE_COUNT=0\nif [ -n &quot;$SYNC_DIRS&quot; ] &amp;&amp; [ &quot;$SYNC_COUNT&quot; -gt 0 ]; then\n    while IFS= read -r SYNC_DIR; do\n        if [ -n &quot;$SYNC_DIR&quot; ] &amp;&amp; [ -d &quot;$SYNC_DIR&quot; ] &amp;&amp; [ -d &quot;$SYNC_DIR\/.git&quot; ]; then\n            SYNCIGNORE_FILE=&quot;$SYNC_DIR\/.syncignore&quot;\n            \n            # Создаём или обновляем .syncignore\n            if [ ! -f &quot;$SYNCIGNORE_FILE&quot; ] || ! grep -q &quot;\\.git\/&quot; &quot;$SYNCIGNORE_FILE&quot; 2&gt;\/dev\/null; then\n                {\n                    echo &quot;# Исключить .git из синхронизации Resilio Sync&quot;\n                    echo &quot;# Git репозиторий должен синхронизироваться через git, а не через файловую синхронизацию&quot;\n                    echo &quot;.git\/&quot;\n                    echo &quot;.gitignore&quot;\n                    echo &quot;*.git&quot;\n                } &gt;&gt; &quot;$SYNCIGNORE_FILE&quot;\n                \n                chown &quot;$SYNC_USER:$USE_GROUP&quot; &quot;$SYNCIGNORE_FILE&quot; 2&gt;\/dev\/null || true\n                chmod 644 &quot;$SYNCIGNORE_FILE&quot;\n                \n                echo &quot;   ✓ Создан\/обновлён: $SYNCIGNORE_FILE&quot;\n                SYNCIGNORE_COUNT=$((SYNCIGNORE_COUNT + 1))\n            else\n                echo &quot;   ℹ Уже существует: $SYNCIGNORE_FILE&quot;\n            fi\n        fi\n    done &lt;&lt;&lt; &quot;$SYNC_DIRS&quot;\n    \n    if [ &quot;$SYNCIGNORE_COUNT&quot; -eq 0 ]; then\n        echo &quot;   ℹ Не найдено директорий с .git для создания .syncignore&quot;\n    fi\nelse\n    echo &quot;   ℹ Нет синхронизируемых директорий для проверки&quot;\nfi\n\necho &quot;&quot;\necho &quot;=== Настройка завершена ===&quot;\necho &quot;&quot;\necho &quot;Обработано директорий: $SYNC_COUNT&quot;\nif [ &quot;$SYNCIGNORE_COUNT&quot; -gt 0 ]; then\n    echo &quot;Создано\/обновлено .syncignore файлов: $SYNCIGNORE_COUNT&quot;\nfi\necho &quot;&quot;\necho &quot;Следующие шаги:&quot;\necho &quot;1. Перезапустите Resilio Sync:&quot;\necho &quot;   sudo systemctl restart resilio-sync&quot;\necho &quot;   # Или для пользовательского экземпляра:&quot;\necho &quot;   systemctl --user restart resilio-sync&quot;\necho &quot;&quot;\necho &quot;2. Выйдите и войдите в систему заново, чтобы изменения группы вступили в силу&quot;\necho &quot;&quot;\necho &quot;3. Проверьте права доступа в одной из директорий:&quot;\nif [ -n &quot;$SYNC_DIRS&quot; ] &amp;&amp; [ &quot;$SYNC_COUNT&quot; -gt 0 ]; then\n    FIRST_DIR=$(echo &quot;$SYNC_DIRS&quot; | head -1)\n    if [ -n &quot;$FIRST_DIR&quot; ] &amp;&amp; [ -d &quot;$FIRST_DIR&quot; ]; then\n        echo &quot;   ls -la \\&quot;$FIRST_DIR\\&quot; | head -5&quot;\n        if [ -d &quot;$FIRST_DIR\/.git&quot; ]; then\n            echo &quot;   ls -la \\&quot;$FIRST_DIR\/.git\/\\&quot; | head -5&quot;\n        fi\n    fi\nfi\necho &quot;&quot;\necho &quot;4. Если проблемы остались, исправьте права вручную для конкретной директории:&quot;\necho &quot;   sudo chown -R $SYNC_USER:$USE_GROUP &lt;путь_к_директории&gt;&quot;\necho &quot;&quot;\nif [ -n &quot;$SYNC_DIRS&quot; ] &amp;&amp; [ &quot;$SYNC_COUNT&quot; -gt 0 ]; then\n    echo &quot;5. Список всех обработанных директорий:&quot;\n    while IFS= read -r SYNC_DIR; do\n        if [ -n &quot;$SYNC_DIR&quot; ] &amp;&amp; [ -d &quot;$SYNC_DIR&quot; ]; then\n            echo &quot;   - $SYNC_DIR&quot;\n        fi\n    done &lt;&lt;&lt; &quot;$SYNC_DIRS&quot;\nfi<\/code><\/pre>",
            "date_published": "2025-09-24T11:00:19+03:00",
            "date_modified": "2026-01-12T15:31:33+03:00",
            "tags": [
                "Resilio",
                "Sync"
            ],
            "_date_published_rfc2822": "Wed, 24 Sep 2025 11:00:19 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "8",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        }
    ],
    "_e2_version": 4134,
    "_e2_ua_string": "Aegea 11.3 (v4134)"
}