Script à l'insertion Clef/hdd USB (udev?)

Bonjour,

J’ai monté un petit serveur local sous DEBIAN bullseye et je cherche à gerer mes HDD ou Clef USB lors du plug/déplug

Contexte:
Actuellement les partitions se montent automatiquement (Dans media/user/) :+1:
Mon soucis (besoin) est que j’aimerai les ajouter au partage de samba pour qu’il soient dispo pour les autres machines du réseau.
Le soucis est que le partitionnement de certains HDD-USB peut être amené à changer suivant le besoin.
Donc impossible d’avoir une config samba en « dur ».

J’ai donc lu pas mal de chose sur « udev » et il semble que ca doit me permettre de lancer un ptit script lors lors des plug/déplug afin de générer dynamiquement les diffèrent « mount » et partages samba.
Voila pour la description… mon soucis est plus (trop :upside_down_face:) simple pour le coup.
Impossible de lancer un script basic via les rules (/etc/udev/rules.d), j’ai beau retourner le truc dans tous les sens, je dois louper quelque chose :roll_eyes:

Actuellement j’ai un fichier (/etc/udev/rules.d/10-USB_HDD.rules) avec diffèrent essais:

#SUBSYSTEMS=="block", ATTRS{model}=="WDC_WD10TMVV-11BG7S0", SYMLINK+="MyUSBHDD",RUN+="/opt/smallbox/sys/USB_plugin.sh"
#SUBSYSTEMS=="block", ATTRS{model}=="", RUN+="/opt/smallbox/sys/USB_plugin.sh"
#SUBSYSTEMS=="block",  ATTRS{idVendor}=="Kingston", ,SYMLINK+="MyUSB", RUN+="/opt/smallbox/sys/USB_pluging.sh"
#SUBSYSTEMS=="block", ATTRS{idVendor}=="0951",SYMLINK+="MyUSB", RUN+="/opt/smallbox/sys/USB_pluging.sh"
#KERNEL=="sd[0-9]*", SYMLINK+="disque/n",  RUN+="/opt/smallbox/sys/USB_pluging.sh"
#
#ATTRS{vendor}=="Kingston", KERNELS=="target8:0:0", SUBSYSTEMS=="scsi", RUN+="/opt/smallbox/sys/USB_pluging.sh"
ATTRS{manufacturer}=="Kingston", ATTRS{idProduct}=="1666",  ATTRS{idVendor}=="0951", SYMLINK+="USB_TEST", RUN+="/opt/smallbox/sys/USB_plugin.sh"
ATTRS{manufacturer}=="Kingston", ATTRS{idProduct}=="1666",  ATTRS{idVendor}=="0951", PROGRAM="/opt/smallbox/sys/USB_plugin.sh"

Et le basique script (USB_plugin.sh)suivant:

#!/bin/sh
echo  "USB_plugin IN:  ${ACTION} / ${DEVICE}" > udev.log 2>&1

Jamais il n’est executé, donc j’avance pas !

Merci d’avance pour vos conseil/remarques !

Bonjour,
permettre un montage SMB automatique sur une clef USB, sur un protocole fondamentalement peu fiable, ce n’est pas une bonne idée du point de vue de la sécurité.
Ensuite, considérant que mettre une clef dans la machine c’est une opération manuelle, autant faire la configuration du partage au passage (peu de clic à faire)

une configuration en dur sur un élément matériel qui n’est pas « en dur », et donc variable par essence, pas facile :slight_smile:

J’hésite pour le moment à répondre à votre propre réponse :thinking:

Problème: « je n’arrive pas a allumer mes phares »
Solution: « t’a pas besoin de rouler la nuit »
:+1:

En tout cas merci pour le temps passé à cette…réponse :smirk:

1 J'aime

:slight_smile: Pas tout à fait, je te dit seulement que c’est une faille de sécurité.
Après si tu es sur de ta sécurité, pas de soucis. Mais une raison pour laquelle ce genre d’opération est difficile à faire, c’est justement à cause de ça.

Est-ce qu’au moins le lien symbolique est créé dans /dev ?
PROGRAM sert normalement à évaluer une condition et pas à réaliser une action.
As-tu rechargé les règles (redémarrage ou udevadm control --reload) avant de tester ?

J’ai utilisé ce genre de règke udev pour créer des liens symboliques pour une clé USB et ses partitions :

SUBSYSTEM=="block", ACTION=="add", KERNEL=="sd*", SUBSYSTEMS=="usb", ATTRS{serial}=="XXXXX", SYMLINK+="kingston%n"

Bien lire la page de manuel d’udev concernant les restrictions de la commande RUN, notamment :

  • les programmes doivent se terminer rapidement
  • le montage de système de fichiers est interdit
  • l’alternative consiste à utiliser systemd.device

Cela ne se produit que si une session locale est ouverte par cet utilisateur et monte automatiquement les volumes amovibles via udisks (si configuré comme tel dans le gestionnaire de fichiers de l’environnement de bureau).

2 J'aime

Merci pour votre message.

Le soucis est réglé !
j’avais en fait un souci d’espace dans le sheban du script (une ligne vide avant se dernier)
:man_facepalming: penser à changer de lunettes :nerd_face:

Le truc étonnant (ou pas) c’est qu’en ligne de commande le script fonctionnait sans soucis, mais pas depuis les rules udev (!)

Bref, tout est OK, tant qu’au niveau du/des liens symboliques de devices que pour les diffèrent traitement lors de l’insertion ou l’éjection des HDD USB.
La config des partages Samba fonctionne donc maintenant en dynamique quelque soit les partitions.
:relieved:

1 J'aime

bash est plus tolérant, étant lui-même un shell il n’a pas besoin de shebang pour exécuter un script.

Comment gères-tu le montage des systèmes de fichiers du support de stockage USB ? Pas en comptant sur le montage automatique dans /media par une session graphique, j’espère ?

1 J'aime

Oui merci de « sensibiliser » sur l’aspect sécurisé.
Ce qui est juste dommage c’est que vous remettez en cause, par cette « sensibilisation », le besoin de base de l’utilisateur (moi ici).
Votre « conseil » ne devrait pas être la comme simple et unique « solution » donné à un utilisateur.

Préjuger de l’environnement, comme un a priori, n’a pas vraiment de sens, à mon avis.
Se préoccuper de la demande initiale par contre, a plus de sens, quitte par la suite amener vos « conseils ».

J’ai assez trainé mes guêtres sur les forums (et avant sur les newsgroup via UUCP) depuis bien longtemps pour toujours et encore être « agacé » (le mot est peut être trop fort) par ces réponses hors sujet ou les trucs genre « reformate » comme ultime solutions.
Ouaip, je suis aussi, comme vous visiblement, un « ancien » sous Linux (Minix/QNX avant), ce qui m’étonne d’autant plus dans votre approche.

Je suis désolé mais je ne m’y ferai jamais :wink:
Dans ma philosophie l’aide n’a jamais été de convaincre un utilisateur que la solution à son besoin/soucis est de ne pas avoir ce besoin.

Quand au reste…

permettre un montage SMB automatique sur une clef USB, sur un protocole fondamentalement peu fiable, ce n’est pas une bonne idée du point de vue de la sécurité.

En d’autre temps, j’aurai bien volontier débattu de ce genre d’affirmation, mais l’envie n’est pas très vaillante une sorte de « Pfff houlala » si je repense aux nombres de serveurs samba qui sont utilisé depuis tant d’année sur mes serveurs en entreprise.
La encore, une bonne dose « d’a priori » sur les connaissances de configuration d’un samba.

Ensuite, considérant que mettre une clef dans la machine c’est une opération manuelle, autant faire la configuration du partage au passage (peu de clic à faire)

1/ heu… perso sur aucun de mes serveurs je ne fait de « clic », en Desktop oui… mais pas sur un serveur !!! (la encore étrange conseil)
2/ il y a quand même une"petite" (?) différence entre une opération manuelle (insertion d’un HDD externe) et faire systématiquement manuellement la configuration, non ? :roll_eyes:

Pour finir…

une configuration en dur sur un élément matériel qui n’est pas « en dur », et donc variable par essence, pas facile

Bin si en fait, c’est franchement sans aucun problème technique, c’est très simple au contraire.

Voila pour quoi j’hésitait à vous répondre, ne pas vous prendre la tête, ni la mienne mais avec tout le respect que je vous dois, je ne peux m’empêcher à penser au syndrome de l’effet Dunning-Kruger

Sans rancune, mon « soucis », venait d’une erreur de ma part, et mon « soucis » est réglé, c’est ce qui compte.
Bon courage à vous sur ce forum

1 J'aime

Comment gères-tu le montage des systèmes de fichiers du support de stockage USB ? Pas en comptant sur le montage automatique dans /media par une session graphique, j’espère ?

Non non, le montage Auto n’est pas actif, de plus c’est sur un (petit) serveur interne, donc sans interface graphique

Ce n’est pas une solution c’est juste un conseil. je n’ai préjugé de rien. Mais merci de me montrer ce que peut donner comme résultat la conviction du problème XY.

Et c’est normal de ne pouvoir s’y faire, faute d’équipement.

Pb de lunettes ? newsgroup ? UUCP ? (aaaaahhhhh compuserve…)
Je me sens moins seul :wink: :smiley: