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

83

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 des passionnés de cinéma . Où devrais-je mettre leurs fichiers de film?

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

  • /home/movies-enthusiastn'est pas approprié aussi, parce que cinéphiles est un groupe et non un utilisateur;

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

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

utilisateur16538
la source
6
Voté pour mention de FHS! Cet utilisateur * nix et administrateur système occasionnel de 20 ans ne le savait pas. Je vous remercie!
CPRitter

Réponses:

72

Ne pas utiliser

  • /usrest pour les données partageables en lecture seule. Les données ici ne devraient changer que pour des raisons administratives (par exemple, l'installation de nouveaux paquets.)
  • /opt s'adresse généralement aux programmes qui sont autonomes ou qui doivent être isolés du reste du système pour une raison quelconque (programmes à pots de miel à interaction faible et moyenne, par exemple).
  • /varest destiné aux "fichiers dont le contenu doit changer continuellement pendant le fonctionnement normal du système, tels que les journaux, les fichiers spool et les fichiers de courrier électronique temporaires". J'aime y penser comme ceci: si vos données ne paraissaient pas bien résumées dans une liste, elles n'appartiennent généralement pas à la liste /var(bien qu'il y ait des exceptions à cela.)

Utilisation

  • /homeest destiné aux répertoires personnels des utilisateurs. Certains voient dans ce répertoire une zone pour les fichiers de groupe. La 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 réalisée à l'aide de sous-répertoires tels que / home / staff, / home / invités, / accueil / étudiants, etc. "
  • /srvest 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 par un groupe pour la raison mentionnée dans la réponse de Chris Down ; Le partage de fichiers en groupe est un service fourni par le serveur.

Consultez la page de manuel hier (7) ( man hier) pour plus d’informations sur la fonction de chaque répertoire décrit par le FHS.

Communauté
la source
1
Je suppose que dans un cas plus générique, on peut utiliser un /srv/datarépertoire pour les fichiers de données.
Victor Yarema
4
+1 pour mentionner l'homme hier. Je ne savais pas que ça existait.
Zach Boyd
Merci, informations très utiles et références pour un nouvel utilisateur Linux.
Shivam
28

À mon avis, le bon endroit est /srv/movies-enthusiast. Un "service" ne doit pas obligatoirement être un démon ou un programme, il doit simplement être un service fourni par le système (par exemple, pouvoir y placer vos films). Voici une citation de la FHS :

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

Je pense vraiment que votre utilisation relève de cette définition et fournit un service.

Chris Down
la source
Je suppose que dans un cas plus générique, on peut utiliser un /srv/datarépertoire pour les fichiers de données.
Victor Yarema
11

La norme FHS ( Filesystem Hierarchy Standard ) spécifie une disposition à suivre par les "développeurs de distributions Unix, les développeurs de packages et les développeurs de systèmes" afin de ne pas gâcher votre espace de noms.

Comme il s'agit de votre espace de noms, vous devez choisir le nom que vous jugez approprié. Si vous trouvez que /groups/movies-enthusiastcela a du sens, vous devriez le mettre là. Si vous aimez les noms de chemins courts, car ils sont plus faciles à taper /g/movies-enthusiast(ou peut-être /g/m-e) conviendraient.

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

Par exemple, j'utilise personnellement /avpour où je stocke mon contenu audiovisuel, /srcpour le code source et /datapour des données non définies (telles que des images de machine virtuelle, des images de CD, des chroots, des packages sauvegardés, etc.).

camh
la source
Personnellement, j'utilise / data pour tous ces fichiers, puis / data / movies pour le contenu audiovisuel, / data / src pour le code source, / data / music. tout en un (hiérarchique) place.
meduz
Suivre ou adhérer à des normes est très souvent une bonne idée, même si vous n'êtes pas un développeur, un distributeur, un développeur, ou un développeur.
Felipe Alvarez
L'ajout d'un nouveau répertoire n'est pas contre le FHS; en fait, je dirais que ne pas créer de nouveaux répertoires est parfois nécessaire pour rester conforme à FHS ! La FHS mentionne spécifiquement que toute question qui n'a pas besoin d'être coordonnée entre plusieurs parties sort du cadre de cette norme. Par conséquent, essayer de s’adapter à tous les besoins éventuels dans l’un des répertoires définis par FHS risque de créer des situations dans lesquelles les fichiers sont placés dans des répertoires où ils ne devraient pas se trouver.
Jwatkins
7

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

Particulièrement si c’est l’objectif premier 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 à cette fin?

Avez-vous envisagé des softlinks?

En tout cas il n'y a pas de règles. Si vous voulez désigner un utilisateur comme dépositaire et permettre aux autres utilisateurs d'accéder à cet espace de projet, n'hésitez pas à l'héberger dans le répertoire de base de l'utilisateur. Ou créez un espace de nom / home / shared / *. Vous êtes votre propre patron.

Oh, une chose: quoi que vous fassiez, documentez-le. Cela doit faire partie de la récupération du système, des vérifications quotidiennes, des sauvegardes, etc. Il faut noter les retenues de configuration importantes (par exemple, appartenances à un groupe, ensembles d'autorisations, paramètres de performance fs, et tout ce qui n'est pas par défaut).

Johan
la source
1

FHS doit également faciliter l’administration, aussi j’irais avec / srv pour cette raison bien que ce ne soit 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 fixe et collant. Assurez-vous également que ceux qui l'utilisent disposent d'un umask utile. Cependant, n'utilisez pas la molette comme je l'ai fait dans l'exemple des modes d'accès aux fichiers. Ne dépouillez pas eXecute ou vous risquez une surprise.

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
utilisateur2243313
la source
1

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

Par conséquent, vous pouvez techniquement placer votre moviesrépertoire n'importe où, à condition qu'il ne soit pas contraire aux conventions FHS . Néanmoins, votre question portait sur l’ endroit le plus approprié ; considérons donc quelques réponses communes (classées par ordre de préférence préféré à celui que je préfère, compte tenu de votre cas d’utilisation spécifique):

  • /<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 la FHS vous dit que vous êtes libre de créer de nouveaux répertoires au niveau racine aussi longtemps car vous n’entrez en conflit avec rien pour lequel il existe une sémantique bien établie. Vous pouvez par exemple créer un répertoire /groupsou /sharedorganiser des fichiers à votre convenance. Je sais que certains administrateurs préfèrent les isoler quelque peu du reste du système de fichiers, ils montent donc un volume distinct (c.-à-d. Sous /media/<volumename>/<groupname>). Les deux sont bien et les deux sont compatibles FHS, vraiment.

  • /srv/<groupname>ou /srv/<someprefix>/<groupname>: selon la FHS, /srvcontient des données spécifiques au site qui sont servies par ce système . La FHS continue ensuite en expliquant 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 /srvrépertoire utilisent un sous-répertoire par client, par site ou par projet, puis placent des répertoires de données à ce niveau. Quelle que soit votre structure, le/srvest parfaitement acceptable de 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 tel est le cas, vous pouvez raisonnablement considérer que votre répertoire est un service de partage de fichiers local et donc le stocker dans un sous-répertoire de /srv, même si aucun démon ne fournit réellement ces fichiers à d'autres systèmes.

  • /home/<groupname>ou /home/<some-prefix>/<groupname>: La FHS indique: /homeest un concept assez standard, mais il s'agit clairement d'un système de fichiers spécifique à un site . Il n’est absolument pas nécessaire que chaque répertoire /homesoit 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 tout conflit éventuel entre un groupe et un utilisateur. J'ai néanmoins constaté que cette stratégie était utilisée dans plusieurs grandes installations (notamment les universités) avec une stratégie de compartimentage pour éviter la possibilité d'un 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 contenus partagés seraient par exemple placés dans/home/workgroup/<workgroupname>. Parfois, ils seraient aussi une subdivision de département; encore, vous avez l'idée. Pour être honnête, je n’apprécie pas personnellement cette stratégie, mais elle facilite un peu les choses quand elle /homeest répartie sur plusieurs serveurs (par exemple via NFS), raison pour laquelle elle a tendance à être préférée dans les très grandes organisations.

Jwatkins
la source
0

Personnellement, je choisirais / usr / share / cinéphile ou / opt / cinéphile

Srdjan Grubor
la source
0

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 d'utiliser le disque quotapour éviter une consommation totale de disque.

Hojat Taheri
la source
0

C’est autant un commentaire qu’une réponse (ne me découragez donc pas pour cela!), Mais c’est beaucoup trop long pour tenir dans un commentaire.

Je fais deux choses, toutes deux évitant 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 l’étiquette en espace de données. C'est là que vont tous mes fichiers multimédias actuels et autres données. Il se monte automatiquement en tant que / media / dataspace et je place tout ce qui est "data" dans un répertoire appelé "data" pour le séparer des fichiers tels que les fichiers de travail, les vms ou les images iso que je ne souhaite pas sauvegarder régulièrement.

L'utilisation d'une partition séparée présente l'avantage supplémentaire que, si elle se remplit, le système ne sera pas compromis comme s'il était stocké sous / ou / home.

2) Je mets la plupart de mes données / supports, en particulier ceux que je n'utilise pas "en ce moment", sur un autre lecteur physique (USB dans mon cas avec un ordinateur portable). Cela facilite la sauvegarde et la connexion à un autre ordinateur, le cas échéant.

Joe
la source