2 votes

Comment monter plusieurs répertoires avec le même nom sur le LAN sur /Volumes ?

Dans Windows 10, par Explorateur Windows Il est possible d'établir une connexion réseau pour un répertoire distant et, grâce à l'outil de gestion de l'identité de l'utilisateur, de mettre en place un système de gestion de l'identité. Map network drive est possible de garder cette connexion mappée avec une lecteur Ainsi, si trois machines ont le même nom de répertoire, considérons que documents - il est donc possible d'obtenir :

M:\documents
N:\documents
W:\documents

Dans Mac - El Capitan - à travers :

  • Finder -> Go -> Connect to Server

Est-il possible de faire la connexion avec smb://hostname/documents

Par conséquent, le documents le répertoire distant est monté sur /Volumes

/Volumes
 documents

Le problème est le suivant : que se passe-t-il si deux autres machines ont la même chose ? documents nom du répertoire ? - Considérez qu'il s'agit d'une politique obligatoire de l'entreprise - Comment est monté en /Volumes ? Comment reconnaître chaque répertoire distant monté dans chaque machine du réseau local ? Je veux renommer le répertoire monté par le Finder, mais ce n'est pas possible.

Je veux avoir dans MacOS dans /Volumes la structure suivante :

/Volumes
 192.168.1.55
    documents
 192.168.1.56
    documents
 192.168.1.57
    documents

C'est pour avoir les chemins isolés disponibles pour être utilisés sur certains scripts de bash-shell. Comment réaliser cet objectif ?

3voto

David Anderson Points 30783

Vous trouverez ci-dessous un exemple de script. Ce script est calqué sur les actions effectuées par l'application Finder. Pour simplifier cette réponse, peu de contrôles d'erreurs ont lieu.

#!/bin/bash
sudo mkdir -p "/Volumes/${1#*@}"
sudo chown $USER:staff "/Volumes/${1#*@}"
mount -t smbfs -o nodev,nosuid  "$1" "/Volumes/${1#*@}"
mount | grep -q "/Volumes/${1#*@}" && open "/Volumes/${1#*@}"

Note : Puisque vous avez besoin que les dossiers soient créés à l'intérieur de l'arborescence de l'espace de travail de l'utilisateur, vous devez créer des dossiers. /Volumes le mot de passe de l'utilisateur peut être demandé par le script.

Si le script est enregistré dans le fichier connect alors le synopsis serait le suivant.

connect //user[:password]@server/share

Un exemple est donné ci-dessous.

./connect //davidanderson@192.168.1.55/documents

Dans cet exemple, le point de montage serait le suivant.

/Volumes/192.168.1.55/documents

Pour démonter, le synopsis serait le suivant.

diskutil unmount /Volumes/server/share

Un exemple de la commande de démontage est donné ci-dessous.

diskutil unmount /Volumes/192.168.1.55/documents

Commentaire

Bien que la réponse ci-dessus soit conçue pour répondre aux exigences énoncées dans la question, elle n'est pas très robuste. Si deux utilisateurs ou plus tentent d'accéder au même partage, l'utilisation de la réponse ci-dessus entraînera un échec. Fondamentalement, le problème est plus qu'un utilisateur ne peut pas utiliser le même point de montage en même temps. Une façon d'éviter ce problème serait de placer le point de montage dans le répertoire $HOME/Volumes au lieu du dossier /Volumes dossier. Le nouveau script donné ci-dessous est une version modifiée du script original donné ci-dessus. Ce nouveau script place le point de montage dans le dossier $HOME/Volumes dossier.

#!/bin/bash
mkdir -p "$HOME/Volumes/${1#*@}"
chmod 700 "$HOME/Volumes"
chmod +a "group:everyone deny delete" "$HOME/Volumes"
mount -t smbfs -o nodev,nosuid "$1" "$HOME/Volumes/${1#*@}"
mount | grep -q "$HOME/Volumes/${1#*@}" && open "$HOME/Volumes/${1#*@}"

Note : Depuis /Volumes n'est pas utilisé, le mot de passe de l'utilisateur ne sera pas demandé par le script.

Si le script est enregistré dans le fichier connect alors le synopsis serait le suivant.

connect //user[:password]@server/share

Un exemple est donné ci-dessous.

./connect //davidanderson@192.168.1.55/documents

Dans cet exemple, le point de montage serait le suivant.

"$HOME/Volumes/192.168.1.55/documents"

Pour démonter, le synopsis serait le suivant.

diskutil unmount "$HOME/Volumes/server/share"

Un exemple de la commande de démontage est donné ci-dessous.

diskutil unmount "$HOME/Volumes/192.168.1.55/documents"

1voto

Cody Points 684

Le site mount vous permet de spécifier un point de montage :

sudo mount -t smbfs smb://hostname/documents /Volumes/documents-foo

Changez juste documents-foo vers le nom que vous voulez lui donner, et notez que ce répertoire doit déjà exister (créez-le avec sudo mkdir /Volumes/documents-foo si ce n'est pas le cas)

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X