Utilisez la commande share pour rendre un système de fichiers local sur un serveur NFS disponible pour le montage. Vous pouvez également utiliser la commande share pour afficher la liste des systèmes de fichiers sur votre système qui sont actuellement partagés. Le serveur NFS doit être en cours d'exécution pour que la commande share fonctionne.
Les objets qui peuvent être partagés incluent toute arborescence de répertoires. Cependant, chaque hiérarchie de système de fichiers est limitée par la tranche de disque ou la partition dans laquelle se trouve le système de fichiers.
Un système de fichiers ne peut pas être partagé si ce système de fichiers fait partie d'un plus grand système de fichiers qui est déjà partagé. Si, par exemple, /usr et /usr/local sont sur une tranche de disque, /usr ou /usr/local peuvent être partagés. Toutefois, si les deux répertoires doivent être partagés avec différentes options de partage, /usr/local doit être déplacé vers une autre tranche de disque.
Vous pouvez accéder à un système de fichiers partagé en lecture seule par l'intermédiaire de l'indicateur de fichier d'un système de fichiers partagé en lecture-écriture. Cependant, les deux systèmes de fichiers doivent être sur la même tranche de disque. Pour créer une situation plus sûre, placez les systèmes de fichiers qui doivent être en lecture-écriture sur une autre partition ou une tranche de disque distincte des systèmes de fichiers que vous souhaitez partager en lecture seule.
Voici certaines des options que vous pouvez inclure à l'indiateur –o :
Le système de fichiers pathname est partagé en lecture-écriture ou en lecture seule pour tous les clients.
Le système de fichiers est partagé en lecture-écriture uniquement pour les clients répertoriés. Toutes les autres demandes sont refusées. Reportez-vous à la rubrique Définition des listes d'accès avec la commande share pour plus d'informations. Vous pouvez utiliser cette option pour ignorer l'option –ro.
Les options que vous pouvez utiliser avec les systèmes de fichiers NFS sont les suivantes :
Cette option permet à un serveur NFS qui prend en charge le protocole de la version 2 de NFS d'être configuré afin de pouvoir effectuer un contrôle d'accès pour les clients de la version 2 de NFS. Sans cette option, tous les clients se voient attribuer un accès minimal. Avec cette option, les clients ont un accès maximal. Par exemple, sur les systèmes de fichiers qui sont partagés avec l'option –aclok, si une personne dispose d'autorisations en lecture, tout le monde en dispose. Toutefois, sans cette option, vous pouvez refuser l'accès à un client qui doit disposer d'autorisations d'accès. Une décision d'autoriser trop ou pas assez d'accès dépend de la sécurité des systèmes déjà en place. Reportez-vous à la section Utilisation des ACL pour protéger les fichiers UFS du manuel Sécurisation des fichiers et vérification de l’intégrité des fichiers dans Oracle Solaris 11.2 pour plus d'informations sur les listes de contrôle d'accès (ACL).
Utilisez anon pour sélectionner l'ID des utilisateurs non authentifiés. Si vous définissez anon sur -1, le serveur refuse l'accès aux utilisateurs non authentifiés. Etant donné que l'autorisation d'accès à la racine en définissant anon=0 permet aux utilisateurs non authentifiés d'avoir un accès à la racine, il est préférable d'utiliser l'option root.
Lorsqu'un utilisateur accède à une URL NFS, l'option –index=filename force le chargement du fichier HTML, au lieu d'afficher une liste du répertoire. Cette option imite l'action des navigateurs courants si un fichier index.html est trouvé dans le répertoire auquel accède l'URL HTTP. Cette option est l'équivalent de la définition de l'option DirectoryIndex pour httpd. Par exemple, supposons que la commande share indique les informations suivantes :
export_web /export/web nfs sec=sys,public,index=index.html,ro
Ces URL affichent ensuite les mêmes informations :
nfs://server/dir nfs://server/dir/index.html nfs://server//export/web/dir nfs://server//export/web/dir/index.html http://server/dir http://server/dir/index.html
Cette option spécifie la balise dans /etc/nfs/nfslog.conf qui contient les informations de configuration de journalisation du serveur NFS pour un système de fichiers. Cette option doit être sélectionnée pour activer la journalisation du serveur NFS.
Cette option signale que toutes les tentatives d'activer le mode setuid ou setgid doivent être ignorées. Les clients NFS ne peuvent pas créer de fichiers avec les bits setuid ou setgid activés.
L'option –public a été ajoutée à la commande share pour activer la navigation WebNFS. Un seul système de fichiers sur un serveur peut être partagé avec cette option.
Le serveur donne accès à la racine aux hôtes dans la liste. Par défaut, le serveur ne donne pas accès à la racine aux hôtes distants. Si le mode de sécurité n'est pas –sec=sys, vous pouvez inclure uniquement les noms d'hôtes du client dans la liste. Reportez-vous à la rubrique Définition des listes d'accès avec la commande share pour plus d'informations.
La valeur client-name est utilisée avec l'authentification AUTH_SYS pour vérifier l'adresse IP du client sur la base d'une liste d'adresses fournies par exportfs(1B). Si une correspondance est trouvée, l'accès root est donné aux systèmes de fichiers partagés.
Pour les modes NFS sécurisés tels que AUTH_SYS ou RPCSEC_GSS, le serveur vérifie les noms principaux des clients sur la base d'une liste de noms principaux basées sur l'hôte qui sont dérivés d'une liste d'accès. La syntaxe générique pour le nom principal de client est root@hostname. Pour Kerberos V la syntaxe est root/hostname.fully.qualified@REALM. Lorsque vous utilisez la valeur host-name, les clients sur la liste d'accès doivent avoir les informations d'identification et de connexion d'un nom principal. Pour Kerberos V, le client doit avoir une entrée keytab valide pour son nom principal root/ hostname.fully.qualified@REALM. Pour plus d'informations, reportez-vous à la section Configuration des clients Kerberos du manuel Gestion de Kerberos et d’autres services d’authentification dans Oracle Solaris 11.2 .
Cette option définit les modes de sécurité qui sont nécessaires pour obtenir l'accès au système de fichiers. Par défaut, le mode de sécurité est l'authentification UNIX. Vous pouvez spécifier plusieurs modes, mais n'utiliser chaque mode de sécurité qu'une seule fois par ligne de commande. Chaque option –mode s'applique à tous les autres options –rw, –ro, –rw=, – ro=, –root= et –window= jusqu'à ce qu'une autre option –mode soit détectée. L'utilisation de –sec=none mappe tous les utilisateurs vers l'utilisateur nobody.
value sélectionne la durée de vie maximale en secondes d'une information d'identification et de connexion sur le serveur NFS. La valeur par défaut est 30 000 secondes ou 8,3 heures.
La liste d'accès que vous fournissez avec la commande share peut inclure un nom de domaine, un numéro de sous-réseau ou une entrée servant à refuser l'accès, ainsi que les options standard –ro=, – rw= ou –root=. Ces extensions devraient simplifier le contrôle d'accès aux fichiers sur un seul serveur sans avoir à modifier l'espace de nom ou conserver de longues listes de clients.
L'exemple suivant attribue un accès lecture seule à la plupart des systèmes et un accès lecture-écriture à rose et lilac :
# share -F nfs -o ro,rw=rose:lilac /usr/src
L'exemple suivant attribue un accès lecture seule à tout hôte du groupe réseau eng. Le client rose se voit spécifiquement attribuer un accès en lecture-écriture.
# share -F nfs -o ro=eng,rw=rose /usr/src
Pour partager un système de fichiers avec plusieurs clients, vous devez saisir toutes les options sur la même ligne. Si vous émettez plusieurs appels de la commande share sur le même objet, seule la dernière commande exécutée s'applique. L'exemple suivant donne l'accès en lecture-écriture à trois systèmes clients, mais seuls rose et tulip ont accès au système de fichiers en tant que root.
# share -F nfs -o rw=rose:lilac:tulip,root=rose:tulip /usr/src
En cas de partage d'un système de fichiers qui utilise plusieurs mécanismes d'authentification, assurez-vous d'inclure les options –ro, –ro=, –rw , –rw=, –root et –window après les modes de sécurité corrects. Dans cet exemple, l'authentification UNIX est sélectionnée pour tous les hôtes dans le groupe réseau nommé eng. Ces hôtes peuvent monter le système de fichiers en lecture seule uniquement. Les hôtes tulip et lilac peuvent monter le système de fichiers en lecture-écriture s'ils utilisent l'authentification Diffie-Hellman. Avec ces options, tulip et lilac peuvent monter le système de fichiers en lecture seule même si ces hôtes n'utilisent pas authentification DH. Toutefois, les noms d'hôte doivent être répertoriés dans le groupe réseau eng.
# share -F nfs -o sec=dh,rw=tulip:lilac,sec=sys,ro=eng /usr/src
Même si l'authentification UNIX est le mode de sécurité par défaut, elle n'est pas incluse si l'option –sec est utilisée. Par conséquent, vous devez inclure une option –sec=sys si l'authentification UNIX doit être utilisée avec tout autre mécanisme d'authentification.
Vous pouvez utiliser un nom de domaine DNS dans la liste d'accès en mettant un point avant le véritable nom de domaine. La chaîne qui suit le point est un nom de domaine, pas un nom d'hôte complet. L'exemple suivant permet l'accès par montage à tous les hôtes dans le domaine eng.example.com :
# share -F nfs -o ro=.:.eng.example.com /export/share/man
Dans cet exemple, le point unique correspond à tous les hôtes qui sont mis en correspondance par l'intermédiaire de l'espace de noms NIS. Les résultats renvoyés à partir de ces services de noms n'incluent pas le nom de domaine. L'entrée .eng.example.com correspond à tous les hôtes qui utilisent la résolution d'espaces de noms DNS. Car DNS renvoie toujours un nom d'hôte complet, l'entrée la plus longue est obligatoire si vous utilisez une combinaison de et des autres espaces de noms DNS.
Vous pouvez utiliser un numéro de sous-réseau dans une liste d'accès en mettant une arobase (signe @) devant le numéro ou le nom du réseau. Ce caractère différencie le nom du réseau provenant d'un groupe réseau ou d'un nom d'hôte complet. Vous devez identifier le sous-réseau dans /etc/networks ou dans un espace de noms NIS. Les entrées suivantes ont le même effet si le sous-réseau 192.168 été identifié comme étant le réseau eng :
# share -F nfs -o ro=@eng /export/share/man # share -F nfs -o ro=@192.168 /export/share/man # share -F nfs -o ro=@192.168.0.0 /export/share/man
Les deux dernières entrées indiquent que vous n'avez pas besoin d'inclure l'adresse complète du réseau.
Si le préfixe du réseau n'est pas aligné par octets, comme pour CIDR (Classless Inter-Domain Routing), la longueur de masque peut être explicitement spécifiée sur la ligne de commande. La longueur de masque est définie mettant une barre oblique après le nom du réseau ou le numéro de réseau et le nombre de bits significatifs dans le préfixe de l'adresse. Ainsi,
# share -f nfs -o ro=@eng/17 /export/share/man # share -F nfs -o ro=@192.168.0/17 /export/share/man
Dans ces exemples, le /17 indique que les premiers 17 bits dans l'adresse sont à utiliser en tant que masque. Pour plus d'informations sur CIDR, reportez-vous à RFC 1519.
Vous pouvez aussi sélectionner l'accès négatif en mettant un - avant l'entrée. Notez que les entrées sont lues de la gauche vers la droite. Par conséquent, vous devez placer les entrées d'accès négatif avant l'entrée à laquelle s'applique l'accès négatif :
# share -F nfs -o ro=-rose:.eng.example.com /export/share/man
Cet exemple autoriserait l'accès à tous les hôtes dans le domaine eng.example.com, à l'exception de l'hôte nommé rose.