web-dev-qa-db-fra.com

Quel est le répertoire le plus approprié où placer les fichiers partagés entre les utilisateurs?

Ou: où puis-je mettre des fichiers appartenant à un groupe?

Supposons qu'il y ait deux utilisateurs sur un système Unix: joe et sarah . Ils sont tous deux membres du groupe cinéphile . Où dois-je mettre leurs fichiers vidéo?

  • /home/{joe,sarah}/movies ne sont pas appropriés car ces répertoires appartiennent à joe / sarah , pas à leur groupe;

  • /home/movies-enthusiast n'est pas approprié non plus, car le cinéphile est un groupe, pas un utilisateur;

  • /var/movies-enthusiast pourrait être une option, mais je ne suis pas sûr que cela soit autorisé par le FHS;

  • /srv/movies-enthusiast peut également être une option, mais les films ne sont pas des fichiers requis par les services système.

89
user16538

Ne pas utiliser

  • /usr est destiné aux données partageables en lecture seule. Les données ici ne doivent changer que pour des raisons administratives (par exemple, l'installation de nouveaux packages.)
  • /opt concerne généralement les programmes autonomes ou qui doivent être isolés du reste du système pour une raison quelconque (programmes de pots de miel à interaction faible et moyenne, par exemple).
  • /var est pour "les fichiers dont le contenu devrait changer continuellement pendant le fonctionnement normal du système --- tels que les journaux, les fichiers de spoule et les fichiers de courrier électronique temporaires." J'aime penser comme ceci: si vos données ne semblent pas résumées correctement dans une liste, elles n'appartiennent généralement pas à /var (cependant, il y a des exceptions à cela.)

Utilisez

  • /home est pour les répertoires personnels des utilisateurs. Certains voient également ce répertoire comme une zone pour les fichiers de groupe. Le FHS note en fait que, "sur les grands systèmes (en particulier lorsque les répertoires/home sont partagés entre de nombreux hôtes utilisant NFS), il est utile de subdiviser les répertoires personnels des utilisateurs. La subdivision peut être effectuée en utilisant des sous-répertoires tels que/home/personnel,/home/invités,/home/étudiants, etc. "
  • /srv est un emplacement acceptable et souvent préféré pour les fichiers de groupe. J'utilise généralement ce répertoire pour les fichiers partagés en groupe pour la raison mentionnée dans Chris Down réponse ; Je vois le partage de fichiers de groupe comme étant un service fourni par le serveur.

Voir la page de manuel hier (7) (man hier) pour plus d'informations sur la finalité de chaque répertoire décrit par le FHS.

76
user26112

À mon avis, le bon endroit est /srv/movies-enthusiast. Un "service" ne doit pas nécessairement être un démon ou un programme, il doit simplement être un service fourni par le système (comme pouvoir y faire accéder vos films). Voici une citation du FHS :

/ srv contient des données spécifiques au site qui sont servies par ce système.

Je pense vraiment que votre utilisation correspond à cette définition et fournit un service.

29
Chris Down

Le Filesystem Hierarchy Standard (FHS) spécifie une disposition à laquelle "les développeurs de distribution Unix, les développeurs de packages et les implémenteurs de système" doivent adhérer afin de ne pas faire un gâchis de votre espace de noms.

Comme c'est votre espace de noms , vous devez choisir n'importe quel nom qui vous semble approprié. Si tu trouves /groups/movies-enthusiast est logique, vous devriez le mettre là. Si vous aimez les noms de chemin courts car ils sont plus faciles à taper, /g/movies-enthusiast (ou peut-être /g/m-e) conviendrait.

Étant donné que les chemins que vous choisissez ne sont pas définis dans le FHS, la distribution ou les packages tiers ne doivent pas les toucher. En tant que tel, vous devriez lire le FHS pour savoir quels chemins peuvent être utilisés par les logiciels conformes (la table des matières vous dira la plupart de ce que vous devez savoir).

Par exemple, j'utilise personnellement /av pour l'endroit où je stocke mon contenu audiovisuel, /src pour le code source et /data pour les données non définies (telles que les images de machine virtuelle, les images de cd, les chroots, les packages enregistrés, etc.).

11
camh

Il n'y a rien de mal à créer un nouveau point de montage ou répertoire à cet effet à partir de la racine.

En particulier, si tel est l'objectif principal de ce système, je créerais simplement

/ passionné de cinéma

S'il existe d'autres "groupes" similaires, je peux ou non préférer les héberger ensemble, par exemple

/data/movies-entusiast
/data/next-group
etc

ou

/share/movies-enthusiast
/share/next-idea
etc

Questions à considérer: Allez-vous dédier un point de montage à cet effet?

Avez-vous envisagé des liens logiciels?

En tout cas il n'y a pas de règles. Si vous voulez faire d'un utilisateur le gardien et donner au reste l'accès à cet espace de projet, n'hésitez pas à l'héberger dans le répertoire personnel de l'utilisateur. Ou créez un espace de nom/home/shared/*. Tu es ton propre patron.

Oh, une chose: quoi que vous fassiez, documentez-le. Il doit faire partie de la récupération du système, des vérifications quotidiennes, des sauvegardes, etc.

7
Johan

Il est important de se rappeler que le FHS résout les problèmes où les placements de fichiers doivent être coordonnés entre plusieurs parties telles que les sites locaux, les distributions, les applications, la documentation, etc. ; le FHS n'essaie pas de définir des règles pour chaque situation que vous pourriez avoir: le placement local des fichiers locaux est un problème local ( FHS 3.0, section 1.1 ).

Par conséquent, vous pouvez techniquement placer votre répertoire movies n'importe où, tant qu'il ne va pas à l'encontre des conventions FHS . Pourtant, votre question portait sur l'endroit le plus approprié , alors considérons quelques réponses courantes (classées de la plus préférée à la moins préférée, compte tenu de votre cas d'utilisation):

  • /<someprefix>/<groupname> ou /media/<volumename>/<groupname>: Honnêtement, je ne sais pas pourquoi cette option a une mauvaise réputation dans le monde Linux, mais soyons clairs: c'est vraiment votre système , et le FHS dit que vous êtes libre de créer de nouveaux répertoires au niveau racine tant que vous n'entrez pas en conflit avec quoi que ce soit pour lequel il existe une sémantique bien établie. Vous pouvez par exemple créer un répertoire /groups ou /shared et organisez les fichiers comme bon vous semble. Je sais que certains administrateurs préfèrent les avoir quelque peu isolés du reste du système de fichiers, donc ils montent un volume distinct (c'est-à-dire sous /media/<volumename>/<groupname>). Les deux sont très bien et les deux sont conformes à la FHS, vraiment.

  • /srv/<groupname> ou /srv/<someprefix>/<groupname>: Selon le FHS, /srv contient des données spécifiques au site qui sont servies par ce système . Le FHS explique ensuite que la méthodologie utilisée pour nommer les sous-répertoires de/srv n'est pas spécifiée . D'après mon expérience personnelle, la plupart des administrateurs qui exploitent le /srv le répertoire continue avec un sous-répertoire par client, par site ou par projet, puis place les répertoires de données à ce niveau. Quelle que soit votre structure, le /srv est parfaitement acceptable pour stocker des fichiers à partager entre plusieurs utilisateurs si vous pouvez raisonnablement considérer que le partage de ces fichiers constitue un service en soi. Demandez-vous: "Serait-il judicieux de partager éventuellement ces fichiers via SMB/NFS/AFS/GIT/...?" Si c'est le cas, vous pouvez raisonnablement considérer que votre répertoire est un service de partage de fichiers local, et donc les stocker dans un sous-répertoire de /srv, même si aucun démon ne sert réellement ces fichiers à d'autres systèmes.

  • /home/<groupname> ou /home/<some-prefix>/<groupname>: Le FHS dit: /home est un concept assez standard, mais il s'agit clairement d'un système de fichiers spécifique au site . Il n'est absolument pas nécessaire que chaque répertoire sous /home être le nom d'un utilisateur réel, et il est acceptable d'avoir des sous-répertoires pour les groupes, bien que des précautions soient nécessaires pour éviter d'éventuels conflits entre un groupe et un utilisateur. Pourtant, j'ai vu cette stratégie utilisée dans plusieurs grandes installations (notamment les universités) avec une stratégie de compartimentation pour éviter la possibilité de conflit; par exemple, les vrais utilisateurs auraient leurs répertoires personnels dans /home/students/<studentid>, /home/teachers/<username> ou /home/staff/<username>, tandis que les éléments partagés seraient par exemple placés dans /home/workgroup/<workgroupname>. Parfois, ce serait aussi une subdivision de département; encore, vous avez l'idée. Pour être honnête, personnellement, je n'aime pas cette stratégie, mais elle rend les choses un peu plus faciles quand /home est réparti sur plusieurs serveurs (par exemple via NFS), c'est pourquoi il a tendance à être préféré dans les très grandes organisations.

1
jwatkins

FHS est également de faciliter l'administration, donc j'irais avec/srv pour cette raison, mais ce n'est pas ce que j'ai fait. Avoir un recul parfait cependant. J'utilise/export/srv car c'est sur NAS.

Si c'est une boîte de dépôt, assurez-vous qu'il est à la fois setgid et collant. Assurez-vous également que ceux qui l'utilisent ont un umask utile. Cependant, n'utilisez pas la roue comme je l'ai fait dans l'exemple des modes d'accès aux fichiers. Ne déshabillez pas eXecute ou vous serez surpris par O_o.

bash-3.2$ mkdir movies
bash-3.2$ Sudo chmod 03771 movies
Password:
bash-3.2$ ls -ld movies/
drwxrws--t 2 andrewb wheel 68 Apr  4 17:09 movies/
bash-3.2$ umask 026
bash-3.2$ touch movies/junk
bash-3.2$ ls -l movies/
total 0
-rw-r----- 1 andrewb wheel 0 Apr  4 17:09 junk
1
user2243313

J'opterais personnellement pour/usr/share/amateur de films ou/opt/amateur de films

0
Srdjan Grubor

Je suggère de créer un répertoire séparé comme/opt/movies, de définir les autorisations d'utilisateur et de groupe appropriées pour eux et vous pouvez également utiliser le disque quota pour éviter une consommation totale du disque ..

0
Hojat Taheri

C'est autant un commentaire qu'une réponse (alors s'il vous plaît ne me dévaluez pas pour ça!), Mais c'est beaucoup trop long pour tenir dans un commentaire.

Je fais deux choses, qui évitent toutes deux le problème auquel vous êtes confronté.

1) Je crée une partition distincte de tout l'espace libre sur mon disque système et je le nomme espace de données. C'est là que vont tous mes fichiers multimédias actuels et autres données. Il est monté automatiquement sous/media/dataspace et je place tout ce qui est "data" dans un répertoire appelé "data" pour le séparer de choses comme les fichiers de travail, les vms ou les images iso que je ne veux pas sauvegarder régulièrement.

L'utilisation d'une partition séparée a l'avantage supplémentaire que, si elle se remplit, elle ne compromet pas mon système comme si elle était stockée sous/ou/home.

2) J'ai placé la plupart de mes données/supports, en particulier les choses que je n'utilise pas "en ce moment", sur un autre disque physique (USB dans mon cas avec un ordinateur portable). Cela facilite la sauvegarde et la connexion à un autre ordinateur en cas de besoin.

0
Joe