ATUALIZAR
Corrija-me se estiver errado : Para trabalhar no meu computador, com uma distribuição GNU / Linux chamada Debian, conheço duas maneiras de inserir um comando, iniciar um aplicativo, abrir um arquivo, etc .:
- uma interface de linha de comando onde insiro texto
- uma interface gráfica do usuário [ GUI ]: uma interface que fornece "janelas", símbolos etc.
Há algo chamado "Gerenciador de Janelas". Enquanto uso o GNU / Linux, trabalho no sistema X-Window [tanto quanto sei].
Postagem original
Situação : desabilitei o automount /etc/fstab
para USB Sticks [por exemplo /dev/sdb1
]. A montagem precisa ser root
, ou pelo menos uma sudo
entrada na linha de comando, mas não em um gerenciador de janelas (!) . Eu não quero dizer automount
, quero dizer "clicar no símbolo" em um gerenciador de janelas abre o dispositivo na GUI sem nenhuma pergunta, onde na CLI é preciso ser root.
Pergunta : Como a montagem em uma GUI funciona "sob o capô"? Existe um config
arquivo para gerenciadores de janelas em geral ou é preciso definir isso individualmente?
Eu entendo e uso o mount
comando, acho que entendo como ler e configurar /etc/fstab
e sei onde procurar o que as entradas lá e em /etc/mtab
significado.
fonte
Respostas:
Esta é a minha compreensão da situação, mas não sou especialista, por isso é menos técnica do que as outras respostas. Isto é o que eu entendo depois de usar esses sistemas por muitos anos, não os estudei detalhadamente.
Existem três jogadores principais aqui e entre eles eles gerenciam as montarias:
FUSE: Este é o centro de tudo, conforme descrito em sua página da Wikipedia :
Então, basicamente, é isso que permite que usuários sem privilégios montem sistemas de arquivos.
gvfs
: Na família de ambientes de desktop Gnome (que inclui Gnome, Mate, Cinnamon), este é (entre outras coisas) um daemon que montará automaticamente unidades recém-conectadas. Faz isso via FUSE. Acredito (mas pode estar errado) que o equivalente para a família KDE se chama KIOOs principais processos de
gvfs
são (retirados deman gvfs
):udev
: Este é um sistema que detecta novos dispositivos e permite executar scripts / comandos quando eles estão conectados. Por exemplo, é issoudev
que detecta uma nova tela e pode espelhar sua área de trabalho nela:Especificamente,
gvfs
parece funcionar através dogvfs-udisks2-volume-monitor
qual é um monitor de volume baseado em udisks.udisks
em si, no entanto, dependeudev
(verman 7 udisks
).Então, basicamente (leia "horrível simplificação"), o que acontece é que, quando você conecta sua unidade, a
udev
detecta e alerta ogvfs
daemon que a montará como um dispositivo FUSE.FUSE e
udev
será o mesmo para todos os ambientes de desktop, o que muda é o daemon DE que monitoraudev
e monta a unidade como um sistema de arquivos FUSE.fonte
Depende do seu ambiente de janela (GNOME / KDE / etc.), Mas no GNOME, por exemplo, você verá daemons em execução chamados
gvfs-*-volume-monitor
,. Esses daemons são responsáveis pela montagem dos dispositivos ao executar o ambiente da área de trabalho, não têm nada a ver/etc/fstab
e operam de forma totalmente independente.Quanto a um arquivo de configuração, existem alguns arquivos relacionados a isso que residem no diretório inicial do usuário que está executando o DE
$HOME/.local/share/gvfs-metadata
,.Esta seção de perguntas e respostas da U&L intitulada: O que é gvfs e por que devo desejá-la no meu sistema? , tenta explicar o que é GVFS. Faz um bom trabalho de explicá-lo. Mas acho que o que você realmente está perguntando é abordado mais nesta seção de perguntas e respostas da U&L intitulada: Montando discos USB automaticamente (como funciona) .
fonte
HAL
… Encontrei algumas soluções parathunar
[as quais uso] etc. O artigo apontou em uma direção - obrigado por isso! - mas ainda estou procurando um denominador comum ...A resposta simples é que eles trapaceiam. Eles não usam o
fstab
. Eles geralmente usam umudev
gancho para capturar eventos de inserção, montar o disco manualmente comoroot
, que pode ser passadodbus
para notificar seu gerenciador de arquivos de que você possui um novo disco ou eles podem usarsuid
utilitários em vez dedbus
desmontar. Infelizmente, não há opções de configuração padrão para isso, e como o movimento da área de trabalho acredita em ocultar a complexidade, eles não documentam isso na documentação do usuário, apenas na documentação do desenvolvedor, e assumem um sistema de usuário único, para que as unidades USB funcionem apenas para o primeiro usuário a efetuar login em um servidor X.fonte
O PolicyKit (ou Polkit) é um kit de ferramentas no nível do aplicativo para definir e manipular a política que permite que processos não privilegiados falem com processos privilegiados .
É uma estrutura para centralizar o processo de tomada de decisão com relação à concessão de acesso a operações privilegiadas (como chamar o método Mount ()) para aplicativos não privilegiados (desktop).
Um agente de autenticação é usado para fazer o usuário de uma sessão provar que realmente é o usuário (autenticando como usuário) ou um usuário administrativo (autenticando como administrador).
O GVFS é um sistema de arquivos virtual que permite a montagem de sistemas de arquivos locais e remotos como usuário, juntamente com o suporte ao lixo. Também há suporte ao FUSE que permite que aplicativos que não usam o GIO acessem os sistemas de arquivos GVFS, mas a maioria dos DEs também faz autenticação via Policykit para outras coisas, como hibernar e desligar o computador, e para o NetworkManager, para que não precisem use FUSE.
Consiste em duas partes:
O pacote gvfs precisa ser instalado, juntamente com o polkit-gnome para as regras do polkit. Verifique se um agente de autenticação gráfica foi instalado e iniciado automaticamente.
Os arquivos de configuração para gerenciar privilégios devem ser diferentes para cada distribuição. O Arch Wiki diz para você criar um arquivo em
/usr/share/polkit-1/rules.d/
. No Debian, eles estão localizados em/etc/polkit-1/
.Fontes: Policykit on Debian || Polkit no Arch Wiki || GVFS no Arch Wiki || GVFS no GNOME Wiki!
fonte
Um elemento comum que você está procurando é o FUSE , o gvfs do GNOME, por exemplo, o usa sob o capô. 1 Essa é a interface com o kernel, e acredito que seja comum a todos os sistemas de montagem não-privilegiados (automáticos) no linux [mas veja os comentários]. DEs individuais não criariam sua própria versão disso, pois isso exigiria o patch do kernel.
Esse link da página inicial está de fato desatualizado, porque, como observado aqui , o FUSE se tornou parte do kernel oficial há alguns anos, mas descreve as origens e os objetivos do projeto (não é apenas para montagem sem privilégios).
A razão pela qual vários sistemas podem divergir de estilo além disso é o mesmo motivo pelo qual você tem vários ambientes de área de trabalho: eles representam visões diferentes de como / qual deve ser a GUI. Eles estão cuidando da forma e função da interface do usuário, mas o FUSE faz as coisas reais de montagem e no nível do kernel. Note que o FUSE realmente não faz a parte "auto", trata-se mais da parte "não privilegiada", mas a parte automática é bem simples: tudo o que você precisa fazer é pesquisar, por exemplo
/dev
,. Eu escrevi um aplicativo de montagem que funciona dessa maneira; apenas observa o aparecimento de novos nós. 2 Essa parte é talvez uma centena de linhas de C ++. Fácil - não há necessidade real de uma API comum nesse nível.1 Ou pode, se estiver fazendo uma montagem verdadeiramente sem privilégios. A resposta de Teresa pode abranger abordagens mais recentes para permitir o acesso a montarias normais.
2 Como observa hildred, os retornos de chamada do udev seriam um método melhor e menos invasivo.
fonte