Ajuda - Montar e compartilhar discos USB automaticamente

1. Ajuda - Montar e compartilhar discos USB automaticamente

Sandro Rocha
Sandro_Rocha

(usa Outra)

Enviado em 07/02/2023 - 16:21h

Bom dia. Eu não tenho lá muito conhecimento de Linux mas resolvi montar um servidor com OpenMediaVault. Já utilizo um NAS e decidii migrar para algo mais poderoso que não me deixe nas mãos de uma empresa que pode parar de dar suporte ao produto a qualquer momento. Mas estou enfrentando algumas dificuldades para fazer o OMV funcionar o mais próximo possível do que eu conheço, o NAS.

O que preciso é o seguinte: quando um pendrive ou outro dispositivo de armazenamento USB for conectado ao sistema, ser montado e compartilhado automaticamente na rede. É possível? Se sim, como fazer?

ps: andei olhando algo relacionado ao udev mas não tenho conhecimento suficiente para isso.


  


2. Re: Ajuda - Montar e compartilhar discos USB automaticamente

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 07/02/2023 - 16:21h

Sim, é possível. Você pode usar a ferramenta Udev do Linux para criar regras que fazem com que dispositivos USB sejam montados e compartilhados automaticamente. Para criar estas regras, você precisará usar o comando `udevadm` e editar o arquivo `/etc/udev/rules.d/99-local.rules` adicionando as regras necessárias para configurar os dispositivos USB. Por exemplo, para montar e compartilhar automaticamente um pendrive conectado, você deverá adicionar uma regra como esta:


#Mount USB drive
ACTION=="add", KERNEL=="sd[a-z][1-9]", SUBSYSTEMS=="usb", TAG+="systemd"
ENV{SYSTEMD_WANTS}="mnt-usb.mount"
ENV{systemd_alias}="mnt-usb.automount"
ENV{SYSTED_USER_WANTS}="smb-usb.mount"
ENV{SYSTED_USER_ALIAS}="smb-usb.automount"


Isso criará um serviço que vai montar o dispositivo e as unidades compartilhadas automaticamente. Para habilitar esses serviços, você precisa executar `# systemctl enable mnt-usb.automount` e `# systemctl enable smb-usb.automount` no terminal e reiniciar o sistema.


3. Re: Ajuda - Montar e compartilhar discos USB automaticamente

Carlos APC
Carlos_Cunha

(usa Linux Mint)

Enviado em 07/02/2023 - 16:44h

Mas será sempre o mesmo pen drive/usb externo, ou pode ser vários diferentes ?

Att;

#-------------------------------------------------------------------------------------#
"Falar é fácil, me mostre o código." - Linus Torvalds
#-------------------------------------------------------------------------------------#



4. Re: Ajuda - Montar e compartilhar discos USB automaticamente

Sandro Rocha
Sandro_Rocha

(usa Outra)

Enviado em 07/02/2023 - 17:13h


alexabolada escreveu:

Sim, é possível. Você pode usar a ferramenta Udev do Linux para criar regras que fazem com que dispositivos USB sejam montados e compartilhados automaticamente. Para criar estas regras, você precisará usar o comando `udevadm` e editar o arquivo `/etc/udev/rules.d/99-local.rules` adicionando as regras necessárias para configurar os dispositivos USB. Por exemplo, para montar e compartilhar automaticamente um pendrive conectado, você deverá adicionar uma regra como esta:


#Mount USB drive
ACTION=="add", KERNEL=="sd[a-z][1-9]", SUBSYSTEMS=="usb", TAG+="systemd"
ENV{SYSTEMD_WANTS}="mnt-usb.mount"
ENV{systemd_alias}="mnt-usb.automount"
ENV{SYSTED_USER_WANTS}="smb-usb.mount"
ENV{SYSTED_USER_ALIAS}="smb-usb.automount"


Isso criará um serviço que vai montar o dispositivo e as unidades compartilhadas automaticamente. Para habilitar esses serviços, você precisa executar `# systemctl enable mnt-usb.automount` e `# systemctl enable smb-usb.automount` no terminal e reiniciar o sistema.


Eu devo editar o arquivo 99-local.rules e colocar as linhas acima ou criar esse arquivo com essas linhas? E onde entra o comando udevadm? Desculpa se as perguntas parecem bobas mas eu realmente sei muito pouco sobre Linux.

Outra coisa: Como posso fazer esse dispositivo compartilhado pertencer a um grupo específico. Eu não queria que todos os usuários pudessem alterar os arquivos e nem ter que acessar o compartilhamento como root.


5. Re: Ajuda - Montar e compartilhar discos USB automaticamente

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 07/02/2023 - 17:13h

Antes de tudo, é importante entender como o Linux manipula dispositivos USB, como pen-drives, discos externos e etc. Quando o dispositivo é conectado, o Udev cria entradas em seu kernel para lidar com ele e torná-lo acessível para o sistema. Alguns serviços no Linux, como o automount e o samba, utilizam esses recursos.

Para criar essas regras, você deve usar o comando `udevadm` para criar o arquivo `99-local.rules` no diretório `/etc/udev/rules.d/`. Esse arquivo servirá para adicionar as regras necessárias para configurar os dispositivos USB. Depois de adicionar a regra que você definir, como a mostrada na resposta anterior, você precisa habilitar os serviços colocando isso: `# systemctl enable mnt-usb.automount` e `# systemctl enable smb-usb.automount` no terminal, e então reiniciar o sistema.

Para atribuir um grupo específico ao dispositivo compartilhado, é só adicionar uma linha ao arquivo `99-local.rules` que foi criado. Por exemplo: ENV{GROUP}="nomedogrupo". Essa linha será o grupo responsável por ter permissões sobre o dispositivo.


6. Re: Ajuda - Montar e compartilhar discos USB automaticamente

Sandro Rocha
Sandro_Rocha

(usa Outra)

Enviado em 07/02/2023 - 17:17h


Carlos_Cunha escreveu:

Mas será sempre o mesmo pen drive/usb externo, ou pode ser vários diferentes ?

Att;

#-------------------------------------------------------------------------------------#
"Falar é fácil, me mostre o código." - Linus Torvalds
#-------------------------------------------------------------------------------------#


Minha ideia seria poder colocar qualquer um, em portas diferentes, ou vários ao mesmo tempo e todos aparecerem no compartilhamento. Eu estou tentando usar o servidor para gerenciar meus arquivos móveis. Então se desse pra só plugar o dispositivo, entrar no gerenciador de arquivos e copiar para o servidor ou rodar alguma tarefa de backup, seria bom.


7. Re: Ajuda - Montar e compartilhar discos USB automaticamente

Sandro Rocha
Sandro_Rocha

(usa Outra)

Enviado em 07/02/2023 - 17:26h


alexabolada escreveu:

Antes de tudo, é importante entender como o Linux manipula dispositivos USB, como pen-drives, discos externos e etc. Quando o dispositivo é conectado, o Udev cria entradas em seu kernel para lidar com ele e torná-lo acessível para o sistema. Alguns serviços no Linux, como o automount e o samba, utilizam esses recursos.

Para criar essas regras, você deve usar o comando `udevadm` para criar o arquivo `99-local.rules` no diretório `/etc/udev/rules.d/`. Esse arquivo servirá para adicionar as regras necessárias para configurar os dispositivos USB. Depois de adicionar a regra que você definir, como a mostrada na resposta anterior, você precisa habilitar os serviços colocando isso: `# systemctl enable mnt-usb.automount` e `# systemctl enable smb-usb.automount` no terminal, e então reiniciar o sistema.

Para atribuir um grupo específico ao dispositivo compartilhado, é só adicionar uma linha ao arquivo `99-local.rules` que foi criado. Por exemplo: ENV{GROUP}="nomedogrupo". Essa linha será o grupo responsável por ter permissões sobre o dispositivo.


Pode mostrar como usar o comando udevadm para criar o arquivo de regra? Eu ainda estou com dúvida nessa parte. O arquivo tem esse nome como padrão ou seria de minha escolha?


8. Re: Ajuda - Montar e compartilhar discos USB automaticamente

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 07/02/2023 - 17:26h

Para criar o arquivo de regras 99-rules.local, você deve executar o seguinte comando no terminal:

$ sudo udevadm control --reload-rules && udevadm trigger

Esse comando também irá atualizar o kernel com as novas regras e aplica-las imediatamente. O nome do arquivo é um padrão, então mude apenas se quiser personalizar algo.


9. Re: Ajuda - Montar e compartilhar discos USB automaticamente

Carlos APC
Carlos_Cunha

(usa Linux Mint)

Enviado em 08/02/2023 - 08:44h

O Udev vai server para vc conseguir forçar "letras" para unidade e não para fazer eles montarem de forma automática

Para montagem automática e que ocorra sempre que o mesmo for utilizado recomendo dar uma olhada no AutoFS.
Porém terá acredito que ter um processo configuração em todos os dispositivos USB que forem ser usados, para que ai sim o AutoFS funcione corretamente.

Agora para plugar qualquer coisa e sair usando sem nada de pré-configuração, acho que so com algum script personalizado para seu caso.




#-------------------------------------------------------------------------------------#
"Falar é fácil, me mostre o código." - Linus Torvalds
#-------------------------------------------------------------------------------------#



10. Re: Ajuda - Montar e compartilhar discos USB automaticamente

Sandro Rocha
Sandro_Rocha

(usa Outra)

Enviado em 08/02/2023 - 11:21h


alexabolada escreveu:

Para criar o arquivo de regras 99-rules.local, você deve executar o seguinte comando no terminal:

$ sudo udevadm control --reload-rules && udevadm trigger

Esse comando também irá atualizar o kernel com as novas regras e aplica-las imediatamente. O nome do arquivo é um padrão, então mude apenas se quiser personalizar algo.


Eu vou testar e volto aqui para agradecer ou perguntar mais. Só me tira uma última dúvida (por hora): Com essas configurações, teoricamente, se eu colocar um pendrive ele vai ser montado e compartilhado na rede, certo? Mas e se eu conectar outro pendrive ou um HD externo, o udev vai conseguir montar e compartilhar ambos os dispositivos sem dar conflito ou fazer alguma bagunça?


11. Re: Ajuda - Montar e compartilhar discos USB automaticamente

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 08/02/2023 - 11:21h

Sim, o udev será capaz de montar e compartilhar os dispositivos. Assim que o dispositivo for conectado, o udev aplicará as regras especificadas no arquivo 99-rules.local, montando-os corretamente e compartilhando-os na rede. O udev também ajudará a evitar conflitos entre dispositivos porque seu código contém vários mecanismos para nomear dispositivos de forma única e evitar conflitos.


12. Re: Ajuda - Montar e compartilhar discos USB automaticamente

Sandro Rocha
Sandro_Rocha

(usa Outra)

Enviado em 08/02/2023 - 11:25h


alexabolada escreveu:

Sim, o udev será capaz de montar e compartilhar os dispositivos. Assim que o dispositivo for conectado, o udev aplicará as regras especificadas no arquivo 99-rules.local, montando-os corretamente e compartilhando-os na rede. O udev também ajudará a evitar conflitos entre dispositivos porque seu código contém vários mecanismos para nomear dispositivos de forma única e evitar conflitos.


Como o compartilhamento aparecerá para mim no gerenciador de arquivos? Os nomes dos compartilhamentos são padronizados ou dá pra personalizar?



01 02