it-swarm.com.de

Best Practice für freigegebene Verzeichnisse auf dem Server (Samba Windows 10-Clients)

Einrichten der Dateifreigabe auf einem Linux-Server (Ubuntu) mit Samba für Windows 10-Clients. Ursprünglich wurde diese Umgebung vor 7 Jahren auf einem Fedora-Server eingerichtet, aber ich bin mir nicht sicher, ob ich dies nach den besten Methoden getan habe. Meine Frage lautet: Wie kann ich für ein freigegebenes Verzeichnis auf dem Linux-Server mehreren Benutzern die volle Berechtigung für diese Freigabe erteilen, damit sie Unterverzeichnisse und Dateien bearbeiten/löschen können, unabhängig davon, ob sie sie erstellt haben oder nicht? Zum Beispiel habe ich mehrere verschiedene Benutzergruppen, die Zugriff auf die freigegebenen Verzeichnisse ihrer Gruppen haben, die über die volle Berechtigung in diesen Verzeichnissen verfügen. Auf meinem alten Server habe ich eine Problemumgehung durchgeführt, die ich sicher besser haben muss ..... Ich habe einen generischen Linux/Samba-Benutzer mit voller Berechtigung für jede Gruppenfreigabe erstellt und ihn dann über ein Anmeldeskript auf den Windows-Clients zugeordnet auf diese Freigabe wie auf den allgemeinen Benutzer (z. B. public_user, der auf die öffentliche Freigabe zugreift). Es funktioniert, aber es gibt keine Verantwortlichkeit für das Verfolgen von Änderungen oder neu erstellten Dateien oder Verzeichnissen, da alles Eigentum des generischen Benutzers ist. Dies ist meine erste Frage hier. Jede Hilfe wird sehr geschätzt.

3
gcruthers

Bearbeiten Sie die Samba-Konfigurationsdatei.

Sudo nano /etc/samba/smb.conf

Fügen Sie dies am Ende der Datei hinzu:

[Public Directory]
comment = Contents are read/write by all.
path = /home/user/directory-to-be-shared
read only = no
guest ok = yes
create mask = 0666
force create mode = 0666
directory mask = 0777
force directory mode = 0777

Starten Sie dann Samba neu.

Sudo service smbd restart

Anmerkungen:

  1. Die Zeichenfolge in Klammern (Public Directory im obigen Beispiel) wird angezeigt, wenn Benutzer von anderen Systemen aus auf den freigegebenen Ordner zugreifen.
  2. Dateien, die in diesem Verzeichnis von Benutzern auf anderen Systemen erstellt wurden, gehören niemandem: nogroup, mit Lese- und Schreibberechtigungen für Eigentümer, Gruppe und andere.
  3. Von Benutzern auf anderen Systemen in diesem Verzeichnis erstellte Verzeichnisse gehören niemandem: nogroup mit Lese-, Schreib- und Verzeichnisüberquerungsberechtigungen für Eigentümer, Gruppe und andere.
  4. Die Masken und Modi in der Konfigurationsdatei gelten für Dateien und Verzeichnisse, die von Benutzern auf anderen Systemen erstellt wurden. Diese Masken und Modi werden beim Erstellen von Dateien als Benutzer auf dem Server ignoriert. Anders ausgedrückt: Wenn Sie Benutzer auf dem Server sind, stellen Sie sicher, dass jede Datei und jedes Verzeichnis, die Sie in /home/user/directory-to-be-shared erstellen, über 666- bzw. 777-Berechtigungen verfügen.
  5. Wenn Sie eine Firewall auf dem Server aktiviert haben, müssen Sie Port 445 für TCP öffnen. Wenn Sie zum Beispiel ufw (unkomplizierte Firewall) verwenden, um die Firewall zu konfigurieren:

    Sudo ufw allow in 445/tcp
    Sudo ufw reload
    Sudo ufw status verbose
    
2
TooManyPets

Mir ist nicht klar, ob Sie eine Freigabe für alle oder nur für eine Gruppe von Clientbenutzern haben möchten, sodass dies eine Vorlage für letztere ist.

Hinweis: Dies funktioniert nur wie beschrieben, wenn die Standard-Umask Ihres Systems 0002 ist. Daher funktioniert es nicht für Ubuntu Desktop 17/18, sondern für Xubuntu Desktop und Ubuntu Server.

In dieser Vorlage müssen alle Benutzer, auf die Sie Zugriff haben möchten, Mitglieder der Gruppe "Benutzer" sein. Es weist das Bit setgid im freigegebenen Verzeichnis und allen zukünftigen Unterverzeichnissen zu, die dazu führen, dass etwas Neues hinzugefügt wird, um die Gruppe des übergeordneten Ordners zu erben.

Sudo mkdir /path
Sudo chown root:users /path
Sudo chmod 2775 /path

Die Freigabe würde folgendermaßen aussehen:

[UsersShare]
path = /path
valid users = @users
force group = users
read only = no
create mask = 0664
force directory mode = 2775

Wenn sich bob, der Mitglied der Gruppe "users" wurde, mit seinem Samba-Benutzernamen/-Kennwort anmeldet und eine Datei zur Freigabe [UsersShare] hinzufügt, hat diese den Namen owner = bob, group = users, mode = 664 files/2775 Ordner.

Alle anderen Client-Benutzer, die Mitglieder der Benutzergruppe sind, die sich anmelden, haben uneingeschränkten Zugriff auf alle Aktionen von bob.

Alle lokalen Benutzer - die auf dem Server selbst -, die Dateien hinzufügen oder ändern, die auch Mitglieder der Benutzergruppe sind, haben die gleichen Fähigkeiten, und neu erstellte Dateien/Ordner haben den gleichen 664/2775-Modus und alle haben die gleiche Gruppe: "Benutzer". Die einzige Ausnahme ist root - wie bei der Verwendung von Sudo - da umask standardmäßig 022 ist, erben seine Dateien im Gegensatz zu einem normalen Benutzer die Gruppe "users", haben aber den Modus 644.

Wenn Sie wirklich eine reine öffentliche Freigabe wünschen, auf die jeder Zugriff hat, ersetzen Sie "gültige Benutzer = @ Benutzer" durch "Gast ok = Ja". Damit dies lokal auf dem Server funktioniert, müssen Sie diese Benutzer der Gruppe "Benutzer" hinzufügen.

0
Morbius1