Archives pour la catégorie Tips

Monter et démon­ter un partage Samba selon le réseau

J’ai un partage Samba dans mon réseau local afin de pouvoir écou­ter ma musique tranquille­ment depuis mon ordi­na­teur dans le bureau alors que les fichiers sont sur mon serveur dans le salon.

Je peux accé­der à mes fichiers sur le partage avec mon navi­ga­teur de fichier mais cela me pose un problème avec VLC (que j’uti­lise comme lecteur de musique) : il n’ar­rive pas à jouer les fichiers s’ils sont dans un sous-réper­toire du réper­toire que j’ai glissé depuis Dolphin. Si j’ai bien compris, c’est la faute à KIO, la biblio­thèque qui permet à Dolphin d’ac­cé­der au partage Samba. En clair, VLC est capable de lire les fichiers direc­te­ment conte­nus dans Album/, mais pas d’al­ler lire ce qu’il y a dans Artiste/Album/ si je lui glisse le dossier Artiste.

OSEF, faisons un montage à l’an­cienne, en ligne de commande !

sudo mount -t cifs //XXX/anonymous/ /media/XXX -o guest

Oui, ça fonc­tion­ne… sauf quand je ne suis plus sur le réseau (coupure du réseau, j’em­barque mon pc pour aller donner un cours, etc). Et là, c’est le drame : plus moyen d’en­le­ver ce montage. Ça bloque.

Il suffit donc de démon­ter le partage samba avant. Mais je ne peux anti­ci­per les coupures réseau, et je sais que je ne pense­rais pas toujours à ça en débran­chant mon pc.

Je vais donc, en bon adminSys fainéant que je suis, auto­ma­ti­ser tout ça.

Pré-requis : utili­ser NetworkMa­na­ger.

Il faut créer des scripts qui vont monter et démon­ter le partage après la connexion au réseau et avant sa décon­nexion.

Mettez ceci dans /etc/NetworkManager/dispatcher.d/99-mount-samba :

#!/bin/sh
IFACE=$1
ACTION=$2

case $CONNECTION_ID in
    Votre_reseau)
        case ${ACTION} in
            up)
                mount -t cifs //XXX/anonymous/ /media/XXX -o guest
                ;;
        esac
        ;;
esac

Votre_reseau est évidem­ment à modi­fier selon le nom que vous avez donné à votre connexion dans NetworkMa­na­ger. Si vous voulez utili­ser ça pour plusieurs réseaux (comme par exemple votre connexion filaire et votre connexion Wifi, vous pouvez mettre Votre_reseau1|Votre_reseau2).

Mettez ceci dans /etc/NetworkManager/dispatcher.d/pre-down.d/99-umount-samba :

#!/bin/sh
IFACE=$1
ACTION=$2

case $CONNECTION_ID in
    Votre_reseau)
        case ${ACTION} in
            pre-down)
                #lsof -t /media/XXX | xargs kill
                umount -l /media/XXX
                ;;
        esac
        ;;
esac

Vous note­rez le lsof -t /media/XXX | xargs kill avant l’ap­pel d’umount. En effet, vous ne pour­rez pas démon­ter le partage s’il est utilisé.

Faites donc atten­tion ! Autant ce n’est pas grave si mon script coupe VLC (ça empêche même VLC de s’em­bal­ler en crachant un nombre infini d’er­reurs), autant si vous travaillez sur votre partage samba avec, disons, LibreOf­fice, cela risque­rait de vous faire perdre votre travail. Ce n’est donc pas pour tous les usages.

EDIT : plus besoin du lsof -t /media/XXX | xargs kill, Olivier M. vient de porter à ma connais­sance, en commen­taire, l’op­tion -l d’umount :

-l, --lazy
    Démontage  paresseux.  Détacher  maintenant le système de fichiers de la hiérarchie de fichiers et effacer toutes les références vers ce système de fichiers dès qu'il n'estplus occupé (nécessite un noyau 2.4.11 ou ultérieur).

N’ou­blions pas de rendre exécu­table ces scripts :

chmod +x /etc/NetworkManager/dispatcher.d/99-mount-samba \
  /etc/NetworkManager/dispatcher.d/pre-down.d/99-umount-samba

Et voilà ! Un petit systemctl restart NetworkManager et ça devrait tour­ner comme une horloge.

Crédits : Photo par Thomas Kvis­tholt sur Unsplash

Me soutenir sur Tipeee Me soutenir sur Liberapay

Couper l’ac­cès wifi d’un appa­reil la nuit avec OpenWRT

Mon fils possède plusieurs appa­reils suscep­tibles d’al­ler sur Inter­net. Comme je ne suis pas dans sa chambre la nuit, comment faire pour s’as­su­rer qu’il ne va pas passer sa nuit à regar­der des vidéos sur Youtube ? En lui coupant l’ac­cès à Inter­net, pardi.

Oui, je sais, confiance, tous­sa… mais bon, j’ai été jeune moi aussi, et je sais bien qu’on est toujours tenté d’en­freindre les règles… surtout quand c’est aussi simple que se cacher avec son machin sous la couette :-) (moi c’était une lampe et un bouquin, mais c’est moins discret, la lumière passant géné­ra­le­ment en dessous de la porte.

On peut géné­ra­le­ment, avec les box des FAI clas­siques, choi­sir des plages d’ac­ti­va­tion du wifi. Mais j’ai envie d’avoir du wifi tard le soir, moi ! Et de toute façon, je n’uti­lise pas de box d’un FAI clas­sique : j’uti­lise un VPN chez LDN grâce à mon nouveau jouet que j’aime d’amour, le Turris Omnia qui utilise OpenWRT.

Du coup, c’est assez simple : il suffit de rele­ver l’adresse MAC de l’ap­pa­reil à bloquer et d’ajou­ter cette règle à /etc/config/firewall :

config rule
    option src 'lan'
    option dest '*' 
    option src_mac 'XX:XX:XX:XX:XX:XX'
    option proto 'tcp udp'
    option start_time '20:30'
    option stop_time '07:30'
    option weekdays 'mon tue wed thu fri sat sun'
    option target 'REJECT'
    option name 'Parental control'

Un petit /etc/init.d/firewall restart, et hop ! C’est tout bon :-)

Edit : Sango­kuss vient de m’in­for­mer que luci-app-wifi-sche­dule peut faire le job d’une box clas­sique pour défi­nir des plages d’ac­ti­va­tion du wifi sur le système LEDE (basé sur OpenWRT). Ça n’est pas dans les dépôts de mon OpenWRT, et ça ne corres­pond pas à mon besoin, mais ça peut être utile :-)

Me soutenir sur Tipeee Me soutenir sur Liberapay