Wo soll ich gemeinsam genutzte Gruppendateien auf einem Linux-System ablegen?

14

Ich migriere viele kleine benutzerdefinierte Skripte und Daten von einem Linux-System auf ein anderes.

Auf dem alten System hatten wir einen freigegebenen Benutzer, der die meisten Dateien besaß, und sie befanden sich in diesen Benutzern /home. Auf dem neuen System würden wir uns jedoch lieber mit unseren eigenen Konten anmelden und Gruppenberechtigungen für die Zusammenarbeit verwenden, da dies jedoch nicht der Fall ist Ein einzelner Besitzer der Dateien hat kein /home-dir.

Wo soll ich diese freigegebenen Dateien ablegen? Soll ich einen Benutzer ohne Anmeldung erstellen, der die Dateien besitzt? Oder gibt es einen geeigneten /grouphomeOrt?

(Ich möchte sie nicht auf einzelne Benutzer verteilen /home: s.)

Daniel
quelle
Um welche Art von Dateien handelt es sich?
Dan Carley
Bei den meisten handelt es sich um Importskripte mit unterschiedlichen zugeordneten Daten, die gefiltert und in Datenbanken importiert werden sollten.
Daniel
Ich mag / grouphome. Der No-Login-Benutzer, der die Dateiidee besitzt, ist auch gut.
pjc50

Antworten:

15

Ich würde mit ziemlicher Sicherheit vorschlagen, mit /usr/local.

Es können global zugängliche Benutzerskripte abgelegt werden /usr/local/bin. Geringe Mengen zugehöriger Daten könnten ebenfalls eingehen bin. Oder Sie möchten die Daten in /usr/local/varoder aufteilen /usr/local/share.

Auf diese Weise können Sie sicher sein, dass jeder FHS-Vertraute sie ohne Vorkenntnisse des jeweiligen Systems schnell finden kann.

Dan Carley
quelle
3
(+1) Zum späteren Nachschlagen: pathname.com/fhs/pub/fhs-2.3.html
Kyle Brandt
Danke euch beiden. /usr/localsei es. Eigentlich war es eine meiner ersten Optionen, aber die Beschreibung des Zwecks von /usr(schreibgeschützt) im vorgeschlagenen Artikel hat mich von dieser Idee abgewendet. Ich denke, ich hätte weiterlesen sollen /usr/local.
Daniel
7

Genau dafür sind Gruppenrechte konzipiert. So mache ich es in Ubuntu:

sudo mkdir /home/shared
sudo addgroup shared
sudo chown :shared /home/shared
sudo chmod 770 /home/shared
sudo vim /etc/group

Fügen Sie der freigegebenen Gruppe die Liste der Benutzer hinzu, die Zugriff auf das freigegebene Verzeichnis haben sollen. Beispielsweise:

shared:x:1002:norman,nextuser,and,so-on

Sie können natürlich auch einen anderen Namen als 'shared' verwenden und dieser muss sich nicht im Verzeichnis / home befinden. Das Schöne daran ist, dass Sie nichts spezielles an den Benutzerkonten vornehmen müssen und Benutzer einfach zur Gruppe hinzufügen oder daraus entfernen können.

simplr
quelle
Vielen Dank für die Abstimmung. Aber ich würde gerne wissen, was ich geschrieben habe, das ist falsch.
Simplr
Setzen Sie auch das Gruppen-Sticky-Bit, damit die Gruppe für neu erstellte Dateien gesetzt wird. chmod g+s /home/shared
jris198944
1
@ jris198944 sist für SUID- und GUID-Bits, tist für Sticky-Bits. Bitte vor dem Posten nochmals prüfen ;-) Siehe: unix.stackexchange.com/a/79401/136321 .
Blatt
1

Die kurze Antwort lautet: Wo immer du willst :)

Ich benutze gerne etwas wie / projects, / shared oder / common. / home / shared arbeitet auch.

Roy
quelle
Vielen Dank. Kurz und gut, aber manchmal ist es einfacher, wenn Sie sich nicht selbst entscheiden müssen ... Wäre es FHS-konform, mein eigenes Verzeichnis direkt darunter zu platzieren /? Wann (wenn überhaupt) ist das wichtig? Ich bin nicht erfahren genug, um die Implikationen meiner Wahl zu erkennen.
Daniel
Das sind wirklich nur Konventionen. Andere Programme, die nach etwas suchen, suchen an diesen vordefinierten Orten. Die bin-Verzeichnisse befinden sich bereits in Ihrem $ PATH, sodass Sie nicht den vollständigen Pfadnamen angeben müssen, um das Skript auszuführen. Andere Administratoren könnten erwarten, dass sie da sind. Es ist in Ihrem Fall wahrscheinlich nicht wirklich wichtig, aber gute Gewohnheiten sind gut :-)
Kyle Brandt
Es gibt eine Reihe anwendbarer Konventionen für UNIX-Umgebungen. Das FHS bietet eine gute Ausgangsbasis, aber es ist durchaus üblich, von dieser Norm abzuweichen. Beispielsweise verwendet die Optimal Flexible Architecture für Oracle-Datenbankserver / u * (/ u01, / u02) für lokale Benutzerdaten, während Ubuntu unter anderem / media für Einhängepunkte für Wechselmedien verwendet. Solange Sie eine Konvention haben, die Sie intern in Ihrer Betriebsumgebung vereinbaren, sollte dies kein Problem darstellen.
Roy
0

Ich benutze /shares; Dies ist auch der Ort, den qnap verwendet.

In habe /sharesich einen Symlink zum Ziel in einem Ordner namens /shares/.mnt/wo ich die Datenlaufwerke gemountet habe.

Dies geschieht, um lange Wartezeiten beim Verschieben von Dateien zwischen Freigaben zu vermeiden, wenn Hardlinks verwendet /shareswerden, die erforderlich sind, wenn Datenlaufwerke nur in / mnt bereitgestellt werden.

/shares/.mnt wird übrigens nicht geteilt.

Jeroen
quelle