Oder: Wo kann ich Dateien ablegen, die zu einer Gruppe gehören?
Angenommen, es gibt zwei Benutzer auf einem Unix-System: Joe und Sarah . Sie sind beide Mitglieder der Gruppe der Filmliebhaber . Wo soll ich ihre Filmdateien ablegen?
/home/{joe,sarah}/movies
sind nicht geeignet, weil diese Verzeichnisse zu joe / sarah gehören , nicht zu ihrer Gruppe;/home/movies-enthusiast
ist auch nicht angebracht, weil der Filmliebhaber eine Gruppe ist, kein Benutzer;/var/movies-enthusiast
Es könnte eine Option sein, aber ich bin mir nicht sicher, ob dies von der FHS erlaubt wird./srv/movies-enthusiast
Möglicherweise ist dies auch eine Option. Filme sind jedoch keine Dateien, die von den Systemdiensten benötigt werden.
directory-structure
fhs
user16538
quelle
quelle
Antworten:
Nicht verwenden
/usr
ist für gemeinsam nutzbare Nur-Lese-Daten. Daten hier sollten sich nur aus administrativen Gründen ändern (zB die Installation neuer Pakete.)/opt
ist im Allgemeinen für Programme gedacht, die eigenständig sind oder aus irgendeinem Grund vom Rest des Systems isoliert werden müssen (z. B. Honeypot-Programme mit geringer und mittlerer Interaktion)./var
Dies gilt für "Dateien, deren Inhalt sich während des normalen Systembetriebs voraussichtlich ständig ändern wird, z. B. Protokolle, Spooldateien und temporäre E-Mail-Dateien." Ich stelle es mir gerne so vor: Wenn Ihre Daten nicht richtig in einer Liste zusammengefasst aussehen, gehören sie im Allgemeinen nicht dazu/var
(es gibt jedoch Ausnahmen).Verwenden
/home
ist für private Benutzerverzeichnisse. Einige sehen in diesem Verzeichnis auch einen Bereich für Gruppendateien. Das FHS merkt tatsächlich an, dass es auf großen Systemen (insbesondere wenn die / home-Verzeichnisse von vielen Hosts mit NFS gemeinsam genutzt werden) nützlich ist, die Home-Verzeichnisse der Benutzer zu unterteilen. Die Unterteilung kann mithilfe von Unterverzeichnissen wie / home / staff, / home erfolgen / Gäste, / Zuhause / Studenten, etc. "/srv
ist ein akzeptabler und häufig bevorzugter Speicherort für Gruppendateien. Ich verwende dieses Verzeichnis im Allgemeinen für Dateien, die von einer Gruppe gemeinsam genutzt werden, und zwar aus dem Grund, der in Chris Downs Antwort genannt wird . Ich sehe Gruppendateifreigabe als einen Dienst, den der Server bereitstellt.man hier
Weitere Informationen zum Zweck der einzelnen Verzeichnisse, die von der FHS beschrieben werden, finden Sie in der man page ( ) hier (7) .quelle
/srv/data
Verzeichnis für Datendateien verwendet werden kann.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. Ihre Filme dort abrufen zu können). Hier ein Zitat der FHS :Ich denke auf jeden Fall, dass Ihre Verwendung unter diese Definition fällt und einen Service bietet.
quelle
/srv/data
Verzeichnis für Datendateien verwendet werden kann.Der Filesystem Hierarchy Standard (FHS) legt ein Layout fest, an das sich "Entwickler von Unix-Distributionen, Paketentwickler und Systemimplementierer" halten müssen, damit Ihr Namespace nicht durcheinander gebracht wird .
Da es sich um Ihren Namespace handelt, sollten Sie jeden Namen auswählen, den Sie für geeignet halten. Wenn Sie es
/groups/movies-enthusiast
für sinnvoll halten, sollten Sie es dort ablegen. Wenn Sie kurze Pfadnamen mögen, weil sie einfacher zu tippen sind,/g/movies-enthusiast
(oder vielleicht/g/m-e
) wären sie geeignet.Da die von Ihnen ausgewählten Pfade nicht in der FHS definiert sind, dürfen sie von den Distributions- oder Drittanbieter-Paketen nicht berührt werden. Lesen Sie daher die FHS, um zu erfahren, welche Pfade von kompatibler Software verwendet werden können (das Inhaltsverzeichnis enthält die wichtigsten Informationen).
Ich persönlich verwende beispielsweise,
/av
wo ich meine audiovisuellen Inhalte speichere,/src
für Quellcode und/data
für undefinierte Daten (wie z. B. Images von virtuellen Maschinen, CD-Images, Chroots, gespeicherte Pakete usw.).quelle
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 es nur schaffen
/ Kino-Enthusiast
Wenn es andere ähnliche "Gruppen" gibt, kann ich es vorziehen oder nicht, sie zusammen zu hosten, z
oder
Zu berücksichtigende Fragen: Möchten Sie einen Einhängepunkt für diesen Zweck 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.
Was auch immer Sie tun, dokumentieren Sie es. Es muss Teil der Systemwiederherstellung, der täglichen Überprüfungen, Sicherungen usw. werden. Wichtige Konfigurationsrückstände müssen notiert werden (z. B. Gruppenmitgliedschaften, Berechtigungssätze, einstellbare fs-Werte für die Leistung und alles andere, was keine Standardeinstellung ist).
quelle
FHS soll auch die Administration vereinfachen, weshalb ich mich aus diesem Grund für / srv entschieden habe, obwohl es nicht das ist, was ich getan habe. Habe aber im Nachhinein perfekte Sicht. Ich benutze / export / srv, weil es auf NAS ist.
Wenn es sich um eine Dropbox handelt, stellen Sie sicher, dass sie fest und klebrig ist. Stellen Sie außerdem sicher, dass die Benutzer eine nützliche umask haben. Verwenden Sie jedoch nicht das Rad wie im Beispiel für Dateizugriffsmodi. Ziehen Sie eXecute nicht aus, sonst erleben Sie eine O_o-Überraschung.
quelle
Es ist wichtig , sich daran zu erinnern , dass die FHS Fragen behandelt werden, wo Datei Placements müssen zwischen mehreren Parteien wie lokale Websites, Verteilungen, Anwendungen, Dokumentation, etc. koordiniert werden ; Das FHS versucht nicht, Regeln für jede einzelne Situation festzulegen: Die lokale Platzierung lokaler Dateien ist ein lokales Problem ( FHS 3.0, Abschnitt 1.1 ).
Daher können Sie Ihr
movies
Verzeichnis technisch überall ablegen, sofern dies nicht gegen die FHS-Konventionen verstößt . Ihre Frage bezog sich jedoch auf den am besten geeigneten Ort. Betrachten wir daher ein paar häufig gestellte Antworten (sortiert von "Am meisten bevorzugt" nach "Am wenigsten bevorzugt" in Anbetracht Ihres speziellen Anwendungsfalls):/<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 klarstellen: Dies ist wirklich Ihr System, und die FHS sagt, dass Sie so lange keine neuen Verzeichnisse auf Root-Ebene erstellen dürfen Sie widersprechen nichts, wofür es eine gut etablierte Semantik gibt. Sie können beispielsweise ein Verzeichnis erstellen/groups
oder/shared
Dateien in diesem nach Belieben organisieren. Ich weiß, dass einige Administratoren es vorziehen, diese vom Rest des Dateisystems etwas isoliert zu haben, so dass sie ein bestimmtes Volume (dh unter/media/<volumename>/<groupname>
) bereitstellen . Beide sind in Ordnung und beide sind wirklich FHS-konform./srv/<groupname>
oder/srv/<someprefix>/<groupname>
:/srv
Enthält laut FHS ortsspezifische Daten, die von diesem System bereitgestellt werden . Das FHS erklärt dann weiter, dass die Methode zur Benennung der Unterverzeichnisse von / srv nicht spezifiziert ist ./srv
Nach meiner persönlichen Erfahrung arbeiten die meisten Administratoren, die das Verzeichnis ausnutzen, mit einem Unterverzeichnis pro Client, pro Site oder pro Projekt und ordnen dann Datenverzeichnisse auf dieser Ebene zu. Wie auch immer Sie es strukturieren, die/srv
Es ist durchaus akzeptabel, Dateien zu speichern, die von mehreren Benutzern gemeinsam genutzt werden, wenn Sie vernünftigerweise davon ausgehen können, dass die gemeinsame Nutzung dieser Dateien für sich genommen einen Dienst darstellt. Fragen Sie sich: "Wäre es sinnvoll, diese Dateien irgendwann über SMB / NFS / AFS / GIT / ... freizugeben?" In diesem Fall können Sie davon ausgehen, dass es sich bei Ihrem Verzeichnis um einen lokalen Dateifreigabedienst handelt, und diese daher in einem Unterverzeichnis von speichern/srv
, obwohl kein Dämon 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/home
der Name eines tatsächlichen Benutzers ist, und es ist zulässig, Unterverzeichnisse für Gruppen zu haben, obwohl Vorsichtsmaßnahmen erforderlich sind, um eventuelle Konflikte zwischen einer Gruppe und einem Benutzer zu vermeiden. Dennoch habe ich gesehen, dass diese Strategie in mehreren großen Einrichtungen (insbesondere Universitäten) mit einer Kompartimentierungsstrategie verwendet wurde, um die Möglichkeit von Konflikten zu vermeiden. würden zum Beispiel haben echte Benutzer ihre Home - Verzeichnisse in/home/students/<studentid>
,/home/teachers/<username>
oder/home/staff/<username>
, während Shared Sachen würden zum Beispiel in gesetzt werden/home/workgroup/<workgroupname>
. Irgendwann würden sie auch eine Abteilung Unterteilung sein; Trotzdem kommt Ihnen die Idee. Um ehrlich zu sein, mag ich diese Strategie persönlich nicht, aber sie macht es ein bisschen einfacher, wenn/home
sie auf mehrere Server verteilt ist (zum Beispiel über NFS), weshalb sie in sehr großen Organisationen bevorzugt wird.quelle
Ich persönlich würde mich für / usr / share / movies-enthusiast oder / opt / movies-enthusiast entscheiden
quelle
Ich schlage vor, ein separates Verzeichnis wie / opt / movies zu erstellen, entsprechende Benutzer- und Gruppenberechtigungen für sie festzulegen und auch die Festplatte
quota
zu verwenden, um den gesamten Festplattenverbrauch zu vermeiden.quelle
Dies ist ebenso ein Kommentar wie eine Antwort (bitte stelle mich nicht dafür in Abrede!), 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 bezeichne sie als Datenbereich. Dort werden alle meine aktuellen Mediendateien und sonstigen Daten abgelegt. Es wird automatisch als / media / dataspace gemountet und ich füge alles, was "data" ist, in ein Verzeichnis namens "data" ein, 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 nicht beeinträchtigt wird, wenn es voll ist, wie wenn es unter / oder / home gespeichert würde.
2) Ich habe die meisten meiner Daten / Medien, insbesondere Dinge, die ich gerade nicht benutze, auf ein anderes physisches Laufwerk (USB in meinem Fall mit einem Notebook) gelegt. Dies erleichtert das Backup und das Anschließen an einen anderen Computer, falls dies erforderlich sein sollte.
quelle