
Ich habe vor Kurzem Samba auf einem Linux-Server eingerichtet und das freigegebene Laufwerk auf einem Windows-Rechner problemlos gefunden, konnte jedoch keine Dateien auf dieses Laufwerk kopieren, da dafür zusätzliche Berechtigungen erforderlich waren.
Ich konnte mit 777-Berechtigungen in Unterordner schreiben, aber das Hauptlaufwerk hatte 775.
Da mir mitgeteilt wurde, dass 777-Berechtigungen höchst unsicher sind, wie kann ich Gruppen ändern, um Benutzer einzuschließen, die von Windows aus surfen, aber keine Berechtigungen auf Benutzerebene für den Linux-Server haben?
Dies ist ein Heimnetzwerk und der Zugriff auf den Samba-Server ist durch eine globale Einstellung beschränkt, die den Zugriff von außerhalb des Netzwerks verhindert (durch Hinzufügen der folgenden Zeilen zu /etc/samba/smb.conf):
[global]
hosts allow = 192.168.0.
hosts deny = ALL
Daher mache ich mir keine Sorgen um die Sicherheit innerhalb des Netzwerks. Wenn sich ein Benutzer im Subnetz 192.168.0.x befindet, gehe ich gerne davon aus, dass er legitim ist, und möchte im Moment keine weiteren Authentifizierungsschritte hinzufügen.
Antwort1
Ich verstehe, was Sie wollen. Alle Benutzer/Computer in Ihrem LAN sollten „Gäste“ sein und vollen Lese-/Schreibzugriff auf die Dateifreigabe haben.
Schritte:
Überprüfen Sie die Samba-Konfiguration. Enthält die Freigabe Folgendes:
[Share]
available = yes
browsable = yes
public = yes
writeable = yes
Überprüfen Sie die POSIX-Berechtigungen. Beispiel ls -lh:
drwxrws---+ 1 nobody nogroup 252 May 12 14:55 Music
Sie sollten das Sticky-Bit dort haben, sonst verhält sich die Dateifreigabe nicht wie erwartet in Windows. chmod 2770 [dir]... Um die Berechtigung auf alle Verzeichnisse anzuwenden, verwenden Sie find. Beispiel
find . -type d -exec chmod 2770 {} \;
find . -type f -exec chmod 2760 {} \;
Sie möchten die Gruppe außerdem auf „nogroup“ festlegen. Dies ist die Standard-Gastgruppe für Samba.
Schließlich acls. Verwenden SiegetfaclUndsetfacl. Sie sollten Standardeinstellungen für den Benutzer nobody und die Gruppe nogroup einrichten. Sobald Sie das getan haben, erbt alles, was über Samba erstellt wird, gute Berechtigungen. Hier ist ein Beispiel für eine Verzeichnis-ACL:
# file: Downloads
# owner: nobody
# group: nogroup
# flags: -s-
user::rwx
group::rwx
mask::rwx
other::---
default:user::rwx
default:group::rwx
default:mask::rwx
default:other::---
Um einige Standardeinstellungen zu erhalten, verwenden Sie find:
find . -type d -exec setfacl -d -m u::rwx {} \;
find . -type d -exec setfacl -d -m g::rwx {} \;
So reparieren Sie vorhandene Dateien:
find . -type f -exec chgrp nogroup {} \;
find . -type f -exec chmod 660 {} \;
find . -type f -exec setfacl -m g::rw {} \;
MEHR WOLLEN !
Nehmen wir an, Sie möchten die POSIX-Gruppe nicht ändern. Dann können Sie die ACL verwenden, um die Gruppe explizit hinzuzufügen. Beispiel:
setfacl -m g:linuxgroup:rw [filename]
Mit diesen Einstellungen teile ich zwischen Ubuntu, Windows, RPi, Android und anderen Linux-Apps.
Antwort2
Normalerweise möchte man nicht jedem mit Netzwerkzugriff Schreibzugriff auf ein Verzeichnis geben. Es gibt oft bessere Lösungen, um Dateien innerhalb einer Benutzergruppe freizugeben, z. B. indem man jedem seine eigene Netzwerkfreigabe gibt und allen anderen (teilweise) Lesezugriff gewährt. Daher kommt die Empfehlung, keine allgemein schreibbaren Zugriffsberechtigungen zu verwenden.
In Ihrem Fall scheint das jedoch genau das zu sein, was Sie wollen. Verwenden Sie also chmod -R a+rwX /path/to/share
1 zusammen mit entsprechenden Samba-Konfigurationseinträgen wie writable = yes
.
1 a+rwX
bedeutet, dassAll(Eigentümer, Gruppe und andere) erhaltenRlesen,mRitusund bedingttXaustretenBerechtigungen. „Bedingt“ bedeutet, dass Ausführungs-/Durchsuchungsberechtigungen nur dann hinzugefügt werden, wenn die Ausführungs-/Durchsuchungsberechtigung bereits mindestens einer Zugriffsgruppe (Besitzer, Gruppe, andere) erteilt wurde. Dies ist nützlich, wenn Sie die Ausführungs-/Durchsuchungsberechtigungen jener Dateien und Verzeichnisse erweitern möchten, die bereits vom Besitzer ausführbar/durchsuchbar sind.