ОБНОВИТЬ
Пожалуйста, исправьте меня, если я ошибаюсь : для работы на моем компьютере с дистрибутивом GNU / Linux с именем Debian я знаю два способа ввода команды, запуска приложения, открытия файла и т. Д .:
- интерфейс командной строки , где вводить текст
- графический интерфейс пользователя [ака GUI ]: интерфейс , который обеспечивает «окно», символы и т.д.
Есть что-то, что называется «Диспетчер окон». Поскольку я использую GNU / Linux, я работаю в системе X-Window [насколько я знаю].
Исходное сообщение
Ситуация : я отключил автомонтирование /etc/fstab
для USB-флешек [например /dev/sdb1
]. Для монтирования требуется root
или, по крайней мере, sudo
запись в командной строке, но не в диспетчере окон (!) . Я не имею в виду automount
, я имею в виду «нажатие на символ» в диспетчере окон открывает устройство в графическом интерфейсе без каких-либо вопросов, где в CLI должен быть root.
Вопрос : Как монтируется в графическом интерфейсе "под капотом"? Есть ли config
файл для оконных менеджеров вообще или нужно устанавливать это индивидуально?
Я понимаю и использую mount
команды, я думаю, чтобы понять, как читать и настраивать, /etc/fstab
и знаю, где искать записи и что они /etc/mtab
значат.
источник
Ответы:
Это мое понимание ситуации, но я не эксперт, поэтому он менее техничен, чем другие ответы. Это то, что я понимаю после использования этих систем в течение многих лет, я не изучал их в деталях.
Здесь есть три основных игрока, и между ними они управляют скакунами:
ПРЕДОХРАНИТЕЛЬ: Это в центре всего, как описано на его странице википедии :
Так что, в основном, это то, что позволяет непривилегированным пользователям монтировать файловые системы.
gvfs
: В семействе настольных сред Gnome (включая Gnome, Mate, Cinnamon) это (среди прочего) демон, который автоматически монтирует новые подключенные диски. Это делается через FUSE. Я считаю (но вполне может ошибаться) эквивалент для семейства KDE называется KIOОсновные процессы
gvfs
(взяты изman gvfs
):udev
Это система, которая обнаруживает новые устройства и позволяет запускать сценарии / команды при их подключении. Например, онudev
обнаруживает новый экран и может зеркально отображать на нем ваш рабочий стол:В частности,
gvfs
похоже, работает черезgvfs-udisks2-volume-monitor
который на основе udisks монитор громкости.udisks
Сам, однако, опираетсяudev
(см.man 7 udisks
).Итак, в основном (читай «ужасное упрощение») происходит следующее: когда вы подключаете диск,
udev
обнаруживает его и предупреждаетgvfs
демона, который затем монтирует его как устройство FUSE.FUSE и
udev
будет одинаковым для всех настольных сред, за исключением того, что демон DE контролируетudev
и монтирует диск как файловую систему FUSE.источник
Это зависит от вашей оконной среды (GNOME / KDE / и т.д.), но в GNOME, например, вы увидите, что демоны работают с именем
gvfs-*-volume-monitor
. Эти демоны отвечают за монтирование устройств при запуске среды рабочего стола, они не имеют ничего общего/etc/fstab
и работают совершенно независимо.Насколько конфигурационный файл, есть некоторые файлы, связанные с этим , которые живут в домашнем каталоге пользователя, который работает на DE,
$HOME/.local/share/gvfs-metadata
.Это U & L Q & A под названием: Что такое gvfs и почему я должен хотеть его в моей системе? Попытки объяснить, что такое GVFS. Это хорошо справляется с объяснением. Но я думаю, что то, о чем вы на самом деле спрашиваете, в большей степени решается с помощью вопросов и ответов U & L под названием: Автоматическая установка USB-дисков (как это работает) .
источник
HAL
... Я нашел несколько решений дляthunar
[которые я использую] и т. Д. В статье указывалось направление - спасибо за это! - но я все еще ищу общий знаменатель ...Ответ прост: они обманывают. Они не используют
fstab
. Обычно они используютudev
ловушку для перехвата событий вставки, монтирования диска вручнуюroot
, который может быть переданdbus
для уведомления вашего файлового менеджера о том, что у вас новый диск, или они могут использоватьsuid
утилиты вместоdbus
размонтирования. К сожалению, для этого нет стандартных параметров конфигурации, и поскольку движение настольных компьютеров верит в сокрытие сложности, они не документируют это в пользовательской документации, только в документации разработчика, и они предполагают однопользовательскую систему, поэтому USB-диски работают только для первый пользователь для входа на X-сервер.источник
PolicyKit (или Polkit) - это набор инструментов уровня приложения для определения и обработки политики, который позволяет непривилегированным процессам взаимодействовать с привилегированными процессами .
Это основа для централизации процесса принятия решений относительно предоставления доступа к привилегированным операциям (таким как вызов метода Mount ()) для непривилегированных (настольных) приложений.
Агент аутентификации используется, чтобы заставить пользователя сеанса доказать, что пользователь сеанса действительно является пользователем (путем аутентификации в качестве пользователя) или административным пользователем (посредством аутентификации в качестве администратора).
GVFS - это виртуальная файловая система, которая позволяет монтировать локальные и удаленные файловые системы как пользователь вместе с поддержкой корзины. Также имеется поддержка FUSE, которая позволяет приложениям, не использующим GIO, получать доступ к файловым системам GVFS, но большинство DE выполняют аутентификацию через Policykit и для других целей, таких как спящий режим и выключение компьютера, а также для NetworkManager, поэтому им не нужно использовать FUSE.
Он состоит из двух частей:
Необходимо установить пакет gvfs вместе с polkit-gnome для правил polkit. Убедитесь, что графический агент аутентификации установлен и запущен автоматически.
Файлы конфигурации для управления привилегиями должны быть разными для каждого дистрибутива. Arch Wiki говорит вам создать файл в
/usr/share/polkit-1/rules.d/
. В Debian они расположены в/etc/polkit-1/
.Источники: Policykit на Debian || Polkit на Arch Wiki || GVFS на Arch Wiki || GVFS в GNOME Wiki!
источник
Один общий элемент , который вы ищете FUSE , GVFS гнома, например, использует , что под капотом. 1 Это интерфейс с ядром, и я считаю, что он является общим для всех непривилегированных (автоматических) систем монтирования в Linux [но см. Комментарии]. Отдельные DE не будут создавать свою собственную версию этого, так как это потребует исправления ядра.
Эта ссылка на домашнюю страницу на самом деле устарела, потому что, как отмечалось здесь , FUSE стал частью официального ядра несколько лет назад, но он описывает происхождение и цели проекта (это не только для непривилегированного монтажа).
Причина, по которой разные системы могут отличаться по стилю от этого, является той же самой причиной, по которой у вас разные среды рабочего стола: они представляют разные взгляды на то, каким / каким должен быть графический интерфейс. Они заботятся о форме и функциях пользовательского интерфейса, но FUSE выполняет фактическое монтирование и работу на уровне ядра. Обратите внимание , что FUSE на самом деле не делать «авто» части, это больше о «непривилегированных» частях, но авто часть довольно проста: все , что вам нужно сделать , это опрос, например,
/dev
. Я написал монтируемое приложение, которое работает таким образом; он просто следит за появлением новых узлов. 2 Эта часть может быть сто строк или около того C ++. Easy-peasy - нет реальной необходимости в общем API на этом уровне.+1 Или может, если он делает действительно непривилегированное монтирование. Ответ Терезы может охватывать более новые подходы к разрешению доступа к обычным креплениям.
2 Как заметил Хилдред, обратные вызовы udev были бы лучшим, менее взломанным методом.
источник