Как установка на GUI работает «под капотом»,

ОБНОВИТЬ

Пожалуйста, исправьте меня, если я ошибаюсь : для работы на моем компьютере с дистрибутивом GNU / Linux с именем Debian я знаю два способа ввода команды, запуск приложения, открытие файла и т. Д .:

  • интерфейс командной строки, в который я ввожу текст
  • графический интерфейс пользователя [aka GUI ]: интерфейс, который предоставляет «окна», символы и т. д.

Что-то происходит под названием «Window Manager». Поскольку я использую GNU / Linux, я действительно работаю над X-Window System [насколько я знаю].

введите описание изображения здесь


Оригинальная проводка


Ситуация : я отключил automount в /etc/fstab для USB Sticks [eg /dev/sdb1 ]. Для монтирования требуется root или, по крайней мере, запись sudo в командной строке, но не в диспетчере окон (!) . Я не имею в виду automount , я имею в виду, что «нажатие на символ» в диспетчере окон открывает устройство в графическом интерфейсе без каких-либо вопросов, где в CLI должен быть root.

Вопрос : Как работает монтаж в GUI «под капотом»? Есть ли файл config для оконных менеджеров вообще или нужно установить это отдельно?

Я понимаю и использую команду mount , я думаю, чтобы понять, как читать и настраивать /etc/fstab и знать, где искать, что там есть, и в /etc/mtab .

5 Solutions collect form web for “Как установка на GUI работает «под капотом»,”

Это мое понимание ситуации, но я не эксперт, поэтому он менее технический, чем другие ответы. Это то, что я понимаю после использования этих систем в течение многих лет, я не изучал их подробно.

Здесь есть три основных игрока, и между ними они управляют горами:

  • ПРЕДОХРАНИТЕЛЬ: Это находится в центре всего, как описано на его странице в Википедии :

    Файловая система в пользовательском пространстве (FUSE) – это механизм операционной системы для Unix-подобных компьютерных операционных систем, который позволяет не-привилегированным пользователям создавать свои собственные файловые системы без редактирования кода ядра. Это достигается путем запуска кода файловой системы в пространстве пользователя, в то время как модуль FUSE предоставляет только «мост» для реальных интерфейсов ядра.

    Таким образом, в основном это позволяет непривилегированным пользователям монтировать файловые системы.

  • gvfs : В семействе настольных компьютеров Gnome (в том числе Gnome, Mate, Cinnamon) это (помимо всего прочего) демон, который будет автоматически монтировать вновь подключенные диски. Он делает это через FUSE. Я считаю (но, возможно, ошибаюсь) эквивалент для семейства KDE называется KIO

    Основные процессы gvfs (взяты из man gvfs ):

    • gvfsd – главный демон gvfs
    • gvfs-fuse-daemon – монтирует gvfs как файловую систему с плавким предохранителем
    • gvfsd-metadata – записывает метаданные gvfs
  • udev : Это система, которая обнаруживает новые устройства и позволяет запускать скрипты / команды, когда они подключены. Например, это udev который обнаруживает новый экран и может отображать на нем ваш рабочий стол:

    udev – менеджер устройств для ядра Linux. Прежде всего, он управляет узлами устройства в / dev. Это преемник devfs и hotplug, что означает, что он обрабатывает каталог / dev и все действия пользовательского пространства при добавлении / удалении устройств, включая загрузку прошивки.

    В частности, gvfs похоже, работает через gvfs-udisks2-volume-monitor который является gvfs-udisks2-volume-monitor на основе gvfs-udisks2-volume-monitor . udisks сам, однако, полагается на udev (см. man 7 udisks ).

Итак, в основном (читай «ужасное упрощение»), что происходит, когда вы подключаете свой диск, udev обнаруживает его и предупреждает демона gvfs , который затем будет монтировать его как устройство FUSE.

FUSE и udev будут одинаковыми для всех настольных систем, какие изменения – демон DE, который контролирует udev и монтирует диск в качестве файловой системы FUSE.

Это зависит от вашей среды окон (GNOME / KDE / etc.), Но в GNOME, например, вы увидите демонов, работающих под управлением gvfs-*-volume-monitor . Эти демоны отвечают за установку устройств при работе с рабочей средой, они не имеют ничего общего с /etc/fstab и работают полностью независимо.

Что касается файла конфигурации, есть некоторые файлы, связанные с этим, которые живут в домашнем каталоге пользователя, на котором запущены файлы DE, $HOME/.local/share/gvfs-metadata .

Это U & L Q & A под названием: Что такое gvfs и почему я должен его использовать в своей системе? , пытается объяснить, что такое GVFS. Он выполняет ОК, чтобы объяснить это. Но я думаю, что то, о чем вы действительно спрашиваете, больше обращается к этому U & L Q & A под названием: Автоматическое создание USB-дисков (как это работает) .

Простой ответ – они обманывают. Они не используют fstab . Обычно они используют udev крюк для улавливания событий вставки, монтируют диск вручную как root , который может быть передан в dbus чтобы уведомить ваш файловый менеджер о том, что у вас есть новый диск, или же они могут использовать служебные утилиты suid вместо dbus для размонтирования. К сожалению, для этого нет стандартных параметров конфигурации, и поскольку движение рабочего стола верит в сложность скрытия, они не документируют это в документации пользователя, только в документации разработчика, и они предполагают одну пользовательскую систему, поэтому USB-накопители работают только для первый пользователь для входа на X-сервер.

PolicyKit (или Polkit) – это набор инструментов на уровне приложений для определения и обработки политики, которая позволяет непривилегированным процессам говорить с привилегированными процессами .

Это основа для централизации процесса принятия решений в отношении предоставления доступа к привилегированным операциям (например, вызов метода Mount ()) для непривилегированных (настольных) приложений.

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

GVFS – это виртуальная файловая система, которая позволяет монтировать локальные и удаленные файловые системы как пользователь вместе с поддержкой корзины. Существует также поддержка FUSE, которая позволяет приложениям, не использующим GIO, обращаться к файловой системе GVFS, но большинство DE выполняют аутентификацию с помощью Policykit для других целей, например, для спячки и выключения компьютера и для NetworkManager, поэтому им не нужно используйте FUSE.

Он состоит из двух частей:

  1. Общая библиотека, которая загружается приложениями, поддерживающими GIO;
  2. Сам GVFS, содержащий набор демонов, которые обмениваются данными друг с другом и модулем GIO через D-Bus.

Необходимо установить пакет gvfs вместе с polkit-gnome для правил polkit. Убедитесь, что установлен графический агент аутентификации и автозапуск.

Файлы конфигурации для управления привилегиями должны быть разными для каждого дистрибутива. Arch Wiki сообщает вам создать файл в /usr/share/polkit-1/rules.d/ . В Debian они находятся в /etc/polkit-1/ .

Источники: Policykit на Debian || Полкит на Arch Wiki || GVFS в Arch Wiki || GVFS в GNOME Wiki!

Один общий элемент, который вы ищете, – это FUSE , gvfs GNOME, например, использует это под капотом. 1 Это интерфейс с ядром, и я считаю, что он распространен для всех непривилегированных (автоматических) систем монтажа на Linux [но см. Комментарии]. Отдельные DE не будут создавать свою собственную версию, так как это потребует исправления ядра.

Эта ссылка на главную страницу на самом деле устарела, потому что, как отмечено здесь , FUSE стал частью официального ядра несколько лет назад, но он описывает истоки и цели проекта (это касается не только непривилегированного монтажа).

Причина, по которой различные системы могут отклоняться в стиле, помимо этого, является той же причиной, по которой у вас есть различные среды рабочего стола: они представляют собой различные представления о том, как / что должен быть GUI. Они заботятся о форме и функциях пользовательского интерфейса, но FUSE выполняет фактический монтаж и уровень ядра. Обратите внимание, что FUSE на самом деле не делает «авто» часть, это больше о «непривилегированной» части, но авто-часть довольно проста: все, что вам нужно сделать, это опрос, например, /dev . Я написал приложение, которое работает таким образом; он просто наблюдает за появлением новых узлов. 2 Эта часть может быть сотней строк C ++. Easy-peasy – нет реальной потребности в распространенном API на этом уровне.

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

2 Как показали hildred, обратные вызовы udev были бы лучшим, менее взломанным методом.

Interesting Posts

Установка haskell-платформы без привлечения X-сервера

Ошибка Wget TLS 1.2

Необходимо постоянно добавлять виртуальный интерфейс в версию Suse Enterprise Server

Может ли процесс суперпользователя изменить реальный идентификатор пользователя и идентификатор группы процесса, не совпадая с данными в файле паролей?

Как вызвать фрагментацию памяти на встроенном устройстве на базе Linux?

Лучший способ продолжить остановку перемещения (mv) путем слияния каталогов?

Что же такое пв-варпп

Удаление vaio grub после установки по умолчанию Windows

Установка беспроводного драйвера rtl8812au на Centos 7

cp'd файл по другому файлу с тем же именем

Как обеспечивается атомарность yum?

Как отремонтировать btrfs после сломанного кабеля sata?

Установить TZ в соответствии с / etc / localtime

Установка RHEL для многократной загрузки с Windows и двумя другими дистрибутивами Linux

Как переустановить Монетный двор Linux? Не заботьтесь о сохранении файлов

Linux и Unix - лучшая ОС в мире.