Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы
Редакторы
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
Команда
Команда
Мобильные редакторы
Мобильные редакторы
Облачный офис
Облачный офис
Почта
Почта
Органайзер
Органайзер
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Устранение проблемы вызывающей запуск Р7 Команда Десктоп для Linux при открытии *.html файлов.

Обновлено: 15.12.25

Введение

Эта инструкция предназначена для системных администраторов и пользователей, столкнувшихся с проблемой, когда HTML-файлы (включая файлы справки различных программ, например, LibreOffice) по умолчанию открываются в приложении «Р7 Команда» вместо веб-браузера.

Описание проблемы

После установки или обновления приложения «Р7 Команда» система могла некорректно назначить его программой по умолчанию для открытия файлов формата text/html. В результате этого, при попытке открыть локальный HTML-документ, он запускается в интерфейсе «Р7 Команды».

Проблема была исправлена в версии 1.11.0 и выше для новых установок. Однако у пользователей, которые установили более раннюю версию, настройки системы могли не вернуться к исходным значениям автоматически после обновления.

Проверка текущих настроек

Чтобы проверить, какое приложение в вашей системе Linux назначено по умолчанию для открытия HTML-файлов, выполните в терминале следующую команду:

xdg-mime query default text/html

Если в результате выполнения команды вы видите ответ R7-Team.desktop, это подтверждает наличие проблемы на вашем компьютере. Корректным значением должно быть .desktop-файл вашего предпочитаемого браузера (например, google-chrome.desktop или firefox.desktop).

Решение

Для устранения проблемы необходимо вручную изменить приложение по умолчанию для text/html файлов. Это можно сделать централизованно с помощью средств автоматизации или индивидуально на каждой машине.

  1. Определите .desktop-файл нужного браузера.
    Чаще всего используются следующие имена:

    • Google Chrome: google-chrome.desktop
    • Mozilla Firefox: firefox.desktop
    • Chromium: chromium-browser.desktop
    • Яндекс.Браузер: yandex-browser.desktop
  2. Выполните команду в терминале, подставив .desktop-файл вашего браузера. Например, для установки Google Chrome в качестве браузера по умолчанию команда будет выглядеть так:
    xdg-mime default google-chrome.desktop text/html
  3. Проверьте, что изменения применились, выполнив команду для проверки еще раз:
    xdg-mime query default text/html

    Теперь в выводе должно отображаться имя.desktop-файла, которое вы указали (например,google-chrome.desktop).

Важно

Для централизованного управления конфигурациями на множестве машин вы можете использовать следующий Ansible-плейбук. Он проверяет текущее приложение по умолчанию для HTML-файлов и, если это «Р7 Команда», меняет его на указанный вами браузер.

Создайте файл, например, fix_html_handler.yml:

Важное примечание

Данный Ansible-плейбук предоставляется в качестве примера и должен использоваться с осторожностью. Авторы инструкции не несут ответственности за любые потенциальные сбои или некорректные изменения в конфигурации вашей системы, возникшие в результате его использования.

Перед массовым применением плейбука настоятельно рекомендуется протестировать его работу на ограниченной группе тестовых автоматизированных рабочих мест (АРМ). Убедитесь, что он корректно отрабатывает в вашей инфраструктуре, не нарушает пользовательские настройки и соответствует внутренним политикам безопасности вашей организации.

---
- name: Исправление обработчика HTML по умолчанию на рабочих станциях для всех пользователей
  hosts: mynout # Укажите здесь вашу группу хостов
  become: yes
 
  vars:
    # Укажите .desktop-файл браузера, который должен быть назначен по умолчанию
    default_browser_desktop_file: "google-chrome.desktop"
 
  tasks:
    - name: Получение списка всех пользователей системы
      ansible.builtin.getent:
        database: passwd
      register: all_users
 
    - name: Шаг 1. Проверка текущего обработчика для text/html для ВСЕХ пользователей
      command: xdg-mime query default text/html
      register: current_html_handlers
      changed_when: false
      failed_when: false
      become: yes
      become_user: "{{ item.key }}"
      loop: "{{ all_users.ansible_facts.getent_passwd | dict2items }}"
      loop_control:
        label: "{{ item.key }}"
      when:
        # Проверяем, что домашняя директория (5-й элемент, индекс 4) существует и находится в /home/
        - item.value | length > 4
        - item.value[4] is defined
        - item.value[4].startswith('/home/')
 
    - name: Шаг 2. Установка браузера по умолчанию только там, где это необходимо
      command: "xdg-mime default {{ default_browser_desktop_file }} text/html"
      become: yes
      become_user: "{{ item.item.key }}"
      loop: "{{ current_html_handlers.results }}"
      loop_control:
        label: "{{ item.item.key }}"
      when:
        - not item.skipped | default(false)
        - item.rc == 0
        - item.stdout == "R7-Team.desktop"

Как использовать этот плейбук:

  1. Сохраните код в файл fix_html_handler.yml.
  2. Отредактируйте переменную default_browser_desktop_file, указав нужный .desktop-файл браузера (например, firefox.desktop).
  3. Укажите целевые хосты в поле hosts.
  4. Запустите плейбук с помощью команды:
    ansible-playbook -i inventory.ini fix_html_handler.yml

Плейбук выполнит задачу только на тех машинах, где R7-Team.desktop действительно установлен как обработчик по умолчанию, и не затронет системы, где пользователи уже настроили другой браузер вручную.

Результаты выполнения исправления.

root@debian12:/home/user/ansible/r7commands# ansible-playbook -i inventory.ini fix_html_handler.yml
PLAY [Исправление обработчика HTML по умолчанию на рабочих станциях для всех пользователей] *********************************************************
TASK [Gathering Facts] ******************************************************************************************************************************
ok: [192.168.1.248]
TASK [Получение списка всех пользователей системы] **************************************************************************************************
ok: [192.168.1.248]
TASK [Шаг 1. Проверка текущего обработчика для text/html для ВСЕХ пользователей] ********************************************************************
skipping: [192.168.1.248] => (item=root)
skipping: [192.168.1.248] => (item=daemon)
.
.
skipping: [192.168.1.248] => (item=nm-openvpn)
skipping: [192.168.1.248] => (item=gnome-remote-desktop)
ok: [192.168.1.248] => (item=user)
skipping: [192.168.1.248] => (item=nvidia-persistenced)
skipping: [192.168.1.248] => (item=sshd)
skipping: [192.168.1.248] => (item=xrdp)
ok: [192.168.1.248] => (item=user1)
TASK [Шаг 2. Установка браузера по умолчанию только там, где это необходимо] ************************************************************************
skipping: [192.168.1.248] => (item=root)
skipping: [192.168.1.248] => (item=daemon)
.
.
skipping: [192.168.1.248] => (item=gnome-remote-desktop)
skipping: [192.168.1.248] => (item=user)
skipping: [192.168.1.248] => (item=nvidia-persistenced)
skipping: [192.168.1.248] => (item=sshd)
skipping: [192.168.1.248] => (item=xrdp)
changed: [192.168.1.248] => (item=user1)
 
PLAY RECAP ******************************************************************************************************************************************
192.168.1.248              :ok=4changed=1 unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Результаты выполнения если уже было применено исправление.

root@debian12:/home/user/ansible/r7commands# ansible-playbook -i inventory.ini fix_html_handler.yml
PLAY [Исправление обработчика HTML по умолчанию на рабочих станциях для всех пользователей] *********************************************************
TASK [Gathering Facts] ******************************************************************************************************************************
ok: [192.168.1.248]
TASK [Получение списка всех пользователей системы] **************************************************************************************************
ok: [192.168.1.248]
TASK [Шаг 1. Проверка текущего обработчика для text/html для ВСЕХ пользователей] ********************************************************************
skipping: [192.168.1.248] => (item=root)
skipping: [192.168.1.248] => (item=daemon)
.
.
skipping: [192.168.1.248] => (item=nm-openvpn)
skipping: [192.168.1.248] => (item=gnome-remote-desktop)
ok: [192.168.1.248] => (item=user)
skipping: [192.168.1.248] => (item=nvidia-persistenced)
skipping: [192.168.1.248] => (item=sshd)
skipping: [192.168.1.248] => (item=xrdp)
ok: [192.168.1.248] => (item=user1)
 
TASK [Шаг 2. Установка браузера по умолчанию только там, где это необходимо] ************************************************************************
skipping: [192.168.1.248] => (item=root)
skipping: [192.168.1.248] => (item=daemon)
.
.
skipping: [192.168.1.248] => (item=nm-openvpn)
skipping: [192.168.1.248] => (item=gnome-remote-desktop)
skipping: [192.168.1.248] => (item=user)
skipping: [192.168.1.248] => (item=nvidia-persistenced)
skipping: [192.168.1.248] => (item=sshd)
skipping: [192.168.1.248] => (item=xrdp)
skipping: [192.168.1.248] => (item=user1)
skipping: [192.168.1.248]
 
PLAY RECAP ******************************************************************************************************************************************
192.168.1.248              :ok=3 changed=0    unreachable=0    failed=0skipped=1 rescued=0    ignored=0

Работа вышеуказанного плейбука проверялась с версиями ОС и Ansible

Версия ОС хостов
 
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.3 LTS
Release: 24.04
Codename: noble
 
Версия ansible
 
root@debian12:/home/user/ansible/r7commands# ansible --version
[WARNING]: Ansible is being run in a world writable directory (/home/user/ansible/r7commands), ignoring it as an ansible.cfg source. For more
information see https://docs.ansible.com/ansible/devel/reference_appendices/config.html#cfg-in-world-writable-dir
ansible [core 2.14.18]
config file = None
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3/dist-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible
python version = 3.11.2 (main, Apr 28 2025, 14:11:48) [GCC 12.2.0] (/usr/bin/python3)
jinja version = 3.1.2
libyaml = True
root@debian12:/home/user/ansible/r7commands#