it-swarm.com.de

Was ist das am besten geeignete Verzeichnis, in dem Dateien abgelegt werden, die von Benutzern gemeinsam genutzt werden?

Oder: wo kann ich Dateien ablegen, die zu einer Gruppe gehören?

Angenommen, auf einem Unix-System befinden sich zwei Benutzer: joe und sarah . Sie sind beide Mitglieder der Film-Enthusiasten-Gruppe . Wo soll ich ihre Filmdateien ablegen?

  • /home/{joe,sarah}/movies sind nicht geeignet, da diese Verzeichnisse zu joe / sarah gehören, nicht zu ihrer Gruppe;

  • /home/movies-enthusiast ist auch nicht angemessen, da Film-Enthusiast eine Gruppe ist, kein Benutzer;

  • /var/movies-enthusiast könnte eine Option sein, aber ich bin nicht sicher, ob dies von der FHS erlaubt wird;

  • /srv/movies-enthusiast ist möglicherweise auch eine Option, Filme sind jedoch keine Dateien, die von den Systemdiensten benötigt werden.

89
user16538

Verwenden Sie nicht

  • /usr steht für gemeinsam nutzbare schreibgeschützte Daten. Die Daten hier sollten sich nur aus administrativen Gründen ändern (z. B. durch die Installation neuer Pakete).
  • /opt ist im Allgemeinen für Programme gedacht, die in sich geschlossen sind oder aus irgendeinem Grund vom Rest des Systems isoliert werden müssen (z. B. Honeypot-Programme mit geringer und mittlerer Interaktion).
  • /var ist für "Dateien, deren Inhalt sich während des normalen Systembetriebs voraussichtlich ständig ändern wird - wie Protokolle, Spooldateien und temporäre E-Mail-Dateien." Ich denke gerne davon wie folgt: Wenn Ihre Daten in einer Liste nicht richtig zusammengefasst aussehen würden, gehören sie im Allgemeinen nicht zu /var (es gibt jedoch Ausnahmen.)

Verwenden Sie

  • /home ist für Benutzer-Home-Verzeichnisse. Einige sehen in diesem Verzeichnis auch einen Bereich für Gruppendateien. Die FHS stellt tatsächlich fest, dass "auf großen Systemen (insbesondere wenn die Verzeichnisse/home von vielen Hosts mithilfe von NFS gemeinsam genutzt werden) nützlich ist, um Benutzerverzeichnisse zu unterteilen. Die Unterteilung kann mithilfe von Unterverzeichnissen wie/home/erfolgen. Mitarbeiter,/home/Gäste,/home/Studenten usw. "
  • /srv ist ein akzeptabler und häufig bevorzugter Speicherort für Gruppendateien. Ich verwende dieses Verzeichnis im Allgemeinen für gemeinsam genutzte Dateien aus dem in Chris Downs Antwort genannten Grund. Ich sehe die gemeinsame Nutzung von Gruppendateien als einen Dienst, den der Server bereitstellt.

Siehe hier (7) Manpage (man hier) für weitere Informationen zum Zweck jedes von der FHS beschriebenen Verzeichnisses.

76
user26112

Meiner Meinung nach ist der richtige Ort /srv/movies-enthusiast. Ein "Dienst" muss kein Dämon oder Programm sein, sondern nur ein Dienst, den das System bereitstellt (z. B. um Ihre Filme dorthin zu bringen). Hier ist ein Zitat aus dem FHS :

/ srv enthält standortspezifische Daten, die von diesem System bereitgestellt werden.

Ich denke definitiv, dass Ihre Verwendung unter diese Definition fällt und einen Service bietet.

29
Chris Down

Der Filesystem Hierarchy Standard (FHS) legt ein Layout fest, an das sich "Unix-Distributionsentwickler, Paketentwickler und Systemimplementierer" halten müssen, um nicht durcheinander zu bringen. Ihr Namespace.

Da es sich um Ihren Namespace handelt, sollten Sie einen beliebigen Namen auswählen, den Sie für geeignet halten. Wenn Sie /groups/movies-enthusiast macht Sinn, du solltest es dort ablegen. Wenn Sie kurze Pfadnamen mögen, weil sie einfacher einzugeben sind, /g/movies-enthusiast (oder vielleicht /g/m-e) wäre geeignet.

Da die von Ihnen ausgewählten Pfade nicht in der FHS definiert sind, dürfen die Distributions- oder Drittanbieterpakete sie nicht berühren. Daher sollten Sie die FHS lesen, um zu erfahren, welche Pfade von kompatibler Software verwendet werden können (das Inhaltsverzeichnis enthält die meisten Informationen, die Sie benötigen).

Zum Beispiel benutze ich persönlich /av für wo ich meine audiovisuellen Inhalte speichere, /src für Quellcode und /data für undefinierte Daten (wie Images von virtuellen Maschinen, CD-Images, Chroots, gespeicherte Pakete usw.).

11
camh

Es ist nichts Falsches daran, einen neuen Einhängepunkt oder ein neues Verzeichnis für diesen Zweck aus dem Stammverzeichnis zu erstellen.

Insbesondere wenn dies der Hauptzweck dieses Systems ist, würde ich nur erstellen

/ Film-Enthusiast

Wenn es andere ähnliche "Gruppen" gibt, kann ich es vorziehen oder nicht, sie zusammen zu hosten, z

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

oder

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

Zu berücksichtigende Fragen: Werden Sie zu diesem Zweck einen Einhängepunkt festlegen?

Haben Sie über Softlinks nachgedacht?

In jedem Fall gibt es keine Regeln. Wenn Sie einen Benutzer zum Verwalter machen und dem Rest Zugriff auf diesen Projektbereich gewähren möchten, können Sie ihn im Home-Verzeichnis des Benutzers hosten. Oder erstellen Sie einen/home/shared/* -Namensraum. Du bist dein eigener Chef.

Oh, eins: Was auch immer Sie tun, dokumentieren Sie es. Es muss Teil der Systemwiederherstellung, der täglichen Überprüfungen, Sicherungen usw. werden. Wichtige Konfigurationsverzögerungen müssen beachtet werden (z. B. Gruppenmitgliedschaften, Berechtigungssätze, fs-Tunables für die Leistung und alles andere, was nicht die Standardeinstellung ist).

7
Johan

Es ist wichtig zu beachten, dass das FHS Probleme behebt, bei denen die Platzierung von Dateien zwischen mehreren Parteien koordiniert werden muss, z. B. lokale Websites, Distributionen, Anwendungen, Dokumentationen usw. ;; Das FHS versucht nicht, Regeln für jede einzelne Situation festzulegen, die Sie möglicherweise haben: Die lokale Platzierung lokaler Dateien ist ein lokales Problem ( FHS) 3.0, Abschnitt 1.1 ).

Daher können Sie Ihr movies -Verzeichnis technisch an einer beliebigen Stelle ablegen , solange es nicht gegen die FHS-Konventionen verstößt. Ihre Frage bezog sich jedoch auf den am besten geeigneten Ort. Betrachten wir also einige häufig verwendete Antworten (sortiert von am meisten bevorzugt bis weniger bevorzugt, je nach Ihrer spezifischen Anwendungsfall):

  • /<someprefix>/<groupname> Oder /media/<volumename>/<groupname>: Ich weiß ehrlich gesagt nicht, warum diese Option in der Linux-Welt einen schlechten Ruf hat, aber lassen Sie uns dies klarstellen: Das ist wirklich Ihr System und die FHS sagen, dass Sie keine neuen Verzeichnisse auf Stammebene erstellen können, solange Sie nicht mit irgendetwas in Konflikt stehen, für das es eine gut etablierte Semantik gibt. Sie können beispielsweise ein Verzeichnis /groups Oder /shared Erstellen und Dateien in diesen nach Belieben organisieren. Ich weiß, dass einige Administratoren es vorziehen, diese etwas vom Rest des Dateisystems isoliert zu haben, sodass sie ein bestimmtes Volume bereitstellen (dh unter /media/<volumename>/<groupname>). Beide sind in Ordnung und beide sind wirklich FHS-konform.

  • /srv/<groupname> Oder /srv/<someprefix>/<groupname>: Laut FHS enthält /srv Site-spezifische Daten, die von diesem System bereitgestellt werden . Das FHS erklärt dann weiter, dass die Methode zur Benennung von Unterverzeichnissen von/srv nicht spezifiziert ist . Nach meiner persönlichen Erfahrung verwenden die meisten Administratoren, die das Verzeichnis /srv Ausnutzen, ein Unterverzeichnis pro Client, pro Site oder pro Projekt und legen dann Datenverzeichnisse auf dieser Ebene ab. Wie auch immer Sie es strukturieren, der /srv Ist durchaus akzeptabel, um Dateien zu speichern, die von mehreren Benutzern gemeinsam genutzt werden sollen, wenn Sie vernünftigerweise davon ausgehen können, dass die Freigabe dieser Dateien einen Dienst für sich darstellt. Fragen Sie sich: "Wäre es sinnvoll, diese Dateien eventuell über SMB/NFS/AFS/GIT/... freizugeben?" Wenn ja, können Sie vernünftigerweise davon ausgehen, dass Ihr Verzeichnis ein lokaler Dateifreigabedienst ist, und diese daher in einem Unterverzeichnis von /srv Speichern, obwohl es keinen Dämon gibt, der diese Dateien tatsächlich für andere Systeme bereitstellt.

  • /home/<groupname> Oder /home/<some-prefix>/<groupname>: Die FHS sagt: /home Ist ein ziemlich Standardkonzept, aber es ist eindeutig ein ortsspezifisches Dateisystem . Es ist absolut nicht erforderlich, dass jedes Verzeichnis unter /home Der Name eines tatsächlichen Benutzers ist, und es ist akzeptabel, Unterverzeichnisse für Gruppen zu haben, obwohl Vorsichtsmaßnahmen erforderlich sind, um eventuelle Konflikte zwischen einer Gruppe und einem Benutzer zu vermeiden. Trotzdem habe ich gesehen, dass diese Strategie in mehreren großen Einrichtungen (insbesondere Universitäten) mit einer Kompartimentierungsstrategie angewendet wurde, um die Möglichkeit von Konflikten zu vermeiden. Beispielsweise würden echte Benutzer ihre Home-Verzeichnisse in /home/students/<studentid>, /home/teachers/<username> oder /home/staff/<username> haben, während gemeinsam genutzte Inhalte beispielsweise in /home/workgroup/<workgroupname> abgelegt würden. Irgendwann würden sie auch eine Abteilungsunterteilung sein; Trotzdem kommt Ihnen die Idee. Um ehrlich zu sein, ich persönlich mag diese Strategie nicht, aber sie erleichtert die Sache ein wenig, wenn /home Auf mehrere Server verteilt wird (zum Beispiel über NFS), weshalb sie in der Regel sehr bevorzugt wird große Organisationen.

1
jwatkins

FHS soll auch den Administrator vereinfachen, daher würde ich aus diesem Grund mit/srv arbeiten, obwohl es nicht das ist, was ich getan habe. Habe aber einen perfekten Rückblick. Ich benutze/export/srv, weil es auf NAS ist.

Wenn es sich um eine Dropbox handelt, stellen Sie sicher, dass sie sowohl fest als auch klebrig ist. Stellen Sie außerdem sicher, dass die Benutzer eine nützliche Umask haben. Verwenden Sie das Rad jedoch nicht wie im Beispiel für den Dateizugriffsmodus. Ziehen Sie eXecute nicht aus, sonst werden Sie eine O_o-Überraschung erleben.

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

Ich persönlich würde mich für/usr/share/movies-enthusiast oder/opt/movies-enthusiast entscheiden

0
Srdjan Grubor

Ich schlage vor, ein separates Verzeichnis wie/opt/movies zu erstellen, entsprechende Benutzer- und Gruppenberechtigungen für diese festzulegen und außerdem die Festplatte quota zu verwenden, um den gesamten Festplattenverbrauch zu vermeiden.

0
Hojat Taheri

Dies ist sowohl ein Kommentar als auch eine Antwort (also stimmen Sie mich bitte nicht ab!), Aber es ist viel zu lang, um in einen Kommentar zu passen.

Ich mache zwei Dinge, die beide das Problem vermeiden, mit dem Sie konfrontiert sind.

1) Ich erstelle eine separate Partition des gesamten freien Speicherplatzes auf meiner Systemfestplatte und beschrifte sie als Datenbereich. Dort gehen alle meine aktuellen Mediendateien und andere Daten ab. Es wird automatisch als/media/dataspace bereitgestellt und ich stelle alles, was "Daten" sind, in ein Verzeichnis namens "Daten", um es von Dingen wie Arbeitsdateien, VMs oder ISO-Images zu trennen, die ich nicht routinemäßig sichern möchte.

Die Verwendung einer separaten Partition hat den zusätzlichen Vorteil, dass mein System beim Auffüllen nicht beeinträchtigt wird, wie wenn es unter/oder/home gespeichert wäre.

2) Ich habe die meisten meiner Daten/Medien, insbesondere Dinge, die ich gerade nicht benutze, auf einem anderen physischen Laufwerk (USB in meinem Fall mit einem Notebook) gespeichert. Dies erleichtert das Sichern und das Anschließen an einen anderen Computer, falls dies erforderlich sein sollte.

0
Joe