AKTUALIZACJA
Popraw mnie, jeśli się mylę : do pracy na moim komputerze, z dystrybucją GNU / Linux o nazwie Debian, znam dwa sposoby wprowadzania poleceń, uruchamiania aplikacji, otwierania pliku itp .:
- Interfejs wiersza poleceń , gdzie wprowadzić tekst
- Graphical User Interface [aka GUI ]: interfejs, który zapewnia "okienka", symbole itd.
Coś się dzieje pod nazwą „Menedżer okien”. Kiedy używam GNU / Linux, pracuję na systemie X-Window [o ile wiem].
Oryginalny post
Sytuacja : wyłączyłem automatyczne /etc/fstab
podłączanie pamięci USB [np /dev/sdb1
.]. Montowanie wymaga root
, a przynajmniej sudo
wpisu w wierszu poleceń, ale nie w menedżerze okien (!) . Nie mam na myśli automount
, mam na myśli „kliknięcie symbolu” w menedżerze okien otwiera urządzenie w GUI bez żadnych pytań, gdzie w CLI trzeba być rootem.
Pytanie : Jak działa montowanie w GUI „pod maską”? Czy istnieje config
plik dla menedżerów okien ogólnie, czy trzeba to ustawić indywidualnie?
Rozumiem i używam mount
polecenia, myślę, że rozumiem, jak czytać i konfigurować, /etc/fstab
i wiem, gdzie szukać, co /etc/mtab
oznaczają tam wpisy .
źródło
Odpowiedzi:
Takie jest moje rozumienie sytuacji, ale nie jestem ekspertem, więc jest mniej techniczne niż inne odpowiedzi. Rozumiem to po wielu latach używania tych systemów, nie badałem ich szczegółowo.
Jest tu trzech głównych graczy, a między nimi zarządzają wierzchowcami:
BEZPIECZNIK: Jest w centrum wszystkiego, jak opisano na stronie wikipedii :
Zasadniczo dzięki temu nieuprzywilejowani użytkownicy mogą montować systemy plików.
gvfs
: W rodzinie środowisk graficznych Gnome (w tym Gnome, Mate, Cinnamon) jest to (między innymi) demon, który automatycznie montuje nowo podłączone dyski. Czyni to przez BEZPIECZNIK. Uważam (ale może się mylić) odpowiednik rodziny KDE nazywa się KIOGłówne procesy
gvfs
to (wzięte zman gvfs
):udev
: Jest to system, który wykrywa nowe urządzenia i umożliwia uruchamianie skryptów / poleceń, gdy są one połączone. Na przykładudev
wykrywa nowy ekran i może wyświetlać na nim pulpit:W szczególności
gvfs
wydaje się , że działa przezgvfs-udisks2-volume-monitor
to monitor głośności oparty na udiskach.udisks
sam jednak polega naudev
(patrzman 7 udisks
).Tak więc w zasadzie (czytaj „okropne uproszczenie”) dzieje się tak, że po podłączeniu dysku
udev
wykrywa go i ostrzegagvfs
demon, który następnie zamontuje go jako urządzenie BEZPIECZNIK.FUSE i
udev
będzie taki sam dla wszystkich środowisk pulpitu, zmiany dotyczą demona DE, który monitorujeudev
i montuje dysk jako system plików FUSE.źródło
To zależy od graficzną środowiska (GNOME / KDE / itp.), Ale w GNOME, na przykład, zobaczysz demony uruchomiony zawołał
gvfs-*-volume-monitor
. Te demony są odpowiedzialne za montowanie urządzeń podczas uruchamiania środowiska pulpitu, nie mają z tym nic wspólnego/etc/fstab
i działają całkowicie niezależnie.O ile w pliku konfiguracyjnym, istnieją pewne pliki, które są związane z tym, że żyją w katalogu domowym użytkownika, który jest uruchomiony DE
$HOME/.local/share/gvfs-metadata
.To pytanie i odpowiedzi U&L zatytułowane: Co to jest gvfs i dlaczego powinienem go mieć w swoim systemie? , próbuje wyjaśnić, czym jest GVFS. Wyjaśnia to dobrze. Ale myślę, że to, o co naprawdę pytasz, jest bardziej poruszone w tym pytaniu U&L zatytułowanym: Automatyczne montowanie dysków USB (jak to działa) .
źródło
HAL
… znalazłem rozwiązania dlathunar
[których używam] itd. Artykuł wskazał kierunek - dzięki za to! - ale wciąż szukam wspólnego mianownika…Prosta odpowiedź brzmi: oszukują. Nie używają
fstab
. Zazwyczaj używająudev
haka do wychwytywania zdarzeń wstawiania, montują dysk ręcznie jakoroot
, co może zostać przekazane,dbus
aby powiadomić menedżera plików, że masz nowy dysk lub mogą użyćsuid
narzędzi zamiastdbus
do odmontowywania. Niestety nie ma standardowych opcji konfiguracji, a ponieważ ruch pulpitu wierzy w ukrywanie złożoności, nie dokumentują tego w dokumentacji użytkownika, tylko w dokumentacji dla programistów i zakładają system jednego użytkownika, więc dyski USB działają tylko dla pierwszy użytkownik zaloguje się na serwerze X.źródło
PolicyKit (lub Polkit) to zestaw narzędzi na poziomie aplikacji do definiowania i obsługi zasad, który pozwala nieuprzywilejowanym procesom mówić do procesów uprzywilejowanych .
Jest to struktura centralizująca proces decyzyjny w zakresie przyznawania dostępu do operacji uprzywilejowanych (takich jak wywoływanie metody Mount ()) dla nieuprzywilejowanych aplikacji (stacjonarnych).
Agent uwierzytelnienia służy do tego, aby użytkownik sesji udowodnił, że użytkownik sesji jest naprawdę użytkownikiem (uwierzytelniając się jako użytkownik) lub administracyjnym (uwierzytelniając się jako administrator).
GVFS to wirtualny system plików, który umożliwia montowanie lokalnych i zdalnych systemów plików jako użytkownik wraz z obsługą kosza. Dostępna jest również obsługa FUSE, która pozwala aplikacjom nieużywającym GIO na dostęp do systemów plików GVFS, ale większość DE dokonuje uwierzytelnienia za pomocą Policykit również w innych celach, takich jak hibernacja i wyłączanie komputera, a także dla NetworkManagera, więc nie muszą użyj BEZPIECZNIKA.
Składa się z dwóch części:
Pakiet gvfs musi zostać zainstalowany wraz z polkit-gnome dla reguł polkit. Upewnij się, że graficzny agent uwierzytelniający został zainstalowany i automatycznie uruchomiony.
Pliki konfiguracyjne do zarządzania uprawnieniami muszą być różne dla każdej dystrybucji. Arch Wiki nakazuje utworzenie pliku pod
/usr/share/polkit-1/rules.d/
. W Debianie znajdują się w/etc/polkit-1/
.Źródła: Policykit na Debianie || Polkit na Arch Wiki || GVFS na Arch Wiki || GVFS na GNOME Wiki!
źródło
Jednym z powszechnych elementów, których szukasz, jest FUSE , gvfs GNOME, np. Używa tego pod maską. 1 To jest interfejs z jądrem i uważam, że jest wspólny dla wszystkich nieuprzywilejowanych (automatycznych) systemów montowania na Linuksie [ale patrz komentarze]. Poszczególne DE nie stworzyłyby własnej wersji tego, ponieważ wymagałoby to łatania jądra.
Ten link do strony głównej jest w rzeczywistości nieaktualny, ponieważ jak wspomniano tutaj , FUSE stał się częścią oficjalnego jądra kilka lat temu, ale opisuje on pochodzenie i cele projektu (nie służy tylko do nieuprzywilejowanego montażu).
Powodem, dla którego różne systemy mogą różnić się stylem, jest ten sam powód, dla którego masz różne środowiska pulpitu: reprezentują one różne wizje tego, jak / jaki powinien być GUI. Dbają o formę i funkcję interfejsu użytkownika, ale FUSE zajmuje się montażem i poziomem jądra. Zauważ, że FUSE tak naprawdę nie wykonuje części „auto”, chodzi raczej o część „nieuprzywilejowaną”, ale część auto jest dość prosta: wystarczy sondować, np
/dev
. Napisałem aplikację do montażu, która działa w ten sposób; po prostu obserwuje pojawienie się nowych węzłów. 2 Ta część to może około stu wierszy C ++. Łatwy w obsłudze - nie ma potrzeby posiadania wspólnego API na tym poziomie.1 Lub może, jeśli robi naprawdę nieuprzywilejowane mocowanie. Odpowiedź Teresy może dotyczyć nowszych podejść do umożliwiania dostępu do normalnych wierzchowców.
2 Jak zauważa Hildred, wywołania zwrotne udev byłyby lepszą, mniej hackującą metodą.
źródło