Ich möchte eine Samba-Freigabe erstellen, mit der Benutzer als bestimmte Samba-Benutzer eine Verbindung herstellen können. Ich habe einen Benutzer erstellt, sagen wir Henry, und ich möchte Speicher in seinem Haus machen.
Also habe ich in meiner /etc/samba/smb.conf:
[myshare]
path = /home/henry
browsable = yes
read only = no
guest ok = no
create mask = 0644
Wenn ich mich jetzt über smbclient verbinde, ist alles in Ordnung. Ich möchte diese Freigabe jedoch als CIFS bereitstellen. Ich kann:
sudo mount -t cifs //myserver/myshare /media/remote-share -o user=henry
Wenn ich dann versuche, eine Datei in / media / remote-share zu erstellen, wird mir die Berechtigung verweigert :(
Wie soll ich es konfigurieren, wenn jeder dort Zugriff haben soll, aber als bestimmter Benutzer, nicht als Gast?
Sowohl Server als auch Client sind Ubuntu-Maschinen.
Antworten:
ok, ich habe deine Frage noch einmal gelesen und habe eine andere Antwort.
Wenn Sie es in / etc / fstab oder mit sudo mount über die Befehlszeile bereitstellen, müssen Sie die uid und gid sowie optional auch die umask (file_mode und dir_mode) festlegen, damit lokale Benutzer auf dem Client die Freigabe verwenden können. Andernfalls gehört es standardmäßig root und W nur root. und es tut wahrscheinlich nicht weh, es explizit als RW zu mounten.
Dabei sind xxx und yyy der lokale (für den Client lokale) Benutzer und die Gruppe, die die Freigabe "besitzen" sollen, wenn sie bereitgestellt wird. Wenn nur ein lokaler Benutzer Zugriff benötigt, spielt die GID wahrscheinlich keine Rolle. Wenn mehrere lokale Benutzer Zugriff benötigen, muss die GID festgelegt werden und jeder lokale Benutzer, der Zugriff benötigt, muss Mitglied dieser GID sein.
Abhängig von Ihrer Netzwerkeinrichtung müssen möglicherweise andere Optionen festgelegt werden (z. B. müssen Sie möglicherweise die Domäne angeben). Weitere Informationen finden Sie in der Manpage zu mount.cifs (8).
Übrigens, lesen Sie die Hinweise zur Anmeldeinformationsdatei, wenn Sie sie aus / etc / fstab mounten. fstab ist weltweit lesbar und daher kein guter Ort, um Passwörter einzugeben. Eine Anmeldeinformationsdatei kann dem Root-Modus 600 gehören.
quelle
Der Befehl mount befindet sich auf der Clientseite und steuert nicht, was der Server zulässt.
Sie müssen die Freigabe auf dem Server einrichten, damit jeder in einer bestimmten Gruppe ("gültige Benutzer = Gruppenname") eine Verbindung zur Freigabe herstellen kann, und dann die Verbindung als Benutzer henry erzwingen ("user = henry erzwingen"). unabhängig davon, mit welchem Benutzernamen / Passwort sie sich tatsächlich angemeldet haben.
Auf Ubuntu hat Henry wie auf Debian wahrscheinlich bereits eine eigene Gruppe (Adduser auf Debian erstellt standardmäßig eine Gruppe für jeden Benutzer), aber verwenden Sie diese nicht, es sei denn, Sie möchten, dass jeder in dieser Gruppe Zugriff auf alle Henrys hat Dateien und nicht nur die in der Freigabe.
Erstellen Sie beispielsweise eine Unix- (oder LDAP- oder Active Directory-) Gruppe mit dem Namen "henry-share-g" und fügen Sie dieser Gruppe jeden hinzu, der Zugriff auf die Freigabe benötigt.
Konfigurieren Sie dann die Freigabe in Samba so, dass die Berechtigungen so festgelegt werden, dass Dateien von Benutzer und Gruppe RW erstellt werden und Verzeichnisse von Benutzer und Gruppe RWX erstellt werden UND setgid (sodass neue Dateien / Verzeichnisse mit der Gruppe 'henry-share-g' erstellt werden). ).
zB so etwas:
In diesem Beispiel sind die Dateien und Verzeichnisse weltweit lesbar sowie RW nach Benutzer und Gruppe. Wenn Sie das nicht möchten, verwenden Sie 0660 für Dateien und 2770 für Verzeichnisse.
Übrigens ist das Obige ungefähr das, was ich auf meinem Samba-Server bei der Arbeit mache, wenn einer der Professoren möchte, dass eine Gruppenfreigabe für alle in seiner Forschungsgruppe verwendet werden kann.
Der einzige wirkliche Unterschied ist, dass ich kein vorhandenes Benutzerkonto verwende. Ich erstelle einen dedizierten Benutzer in AD für die Freigabe sowie eine dedizierte Gruppe, da eine Trennung zwischen den persönlichen Dateien des Profis und den Dateien seiner Forschungsgruppe erforderlich ist. Ich habe auch ein Kontingent für diesen Benutzer und diese Gruppe festgelegt, das vom persönlichen Kontingent des Benutzers getrennt ist. dh ich würde so etwas wie "henry-share-u" erstellen und verwenden, anstatt das vorhandene "henry" -Konto zu verwenden.
quelle
Dies hängt vom passdb-Backend ab, das Sie in Ihrer smb.conf ausgewählt haben.
Wenn Sie die Verwendung
tdbsam
Backend (empfohlen von Samba) und stellen Siesecurity
aufuser
:Sie können verwenden
/usr/bin/smbpasswd
, um Samba-Benutzer hinzuzufügen:/usr/sbin/useradd
smbpasswd -L -a <user>
hinzufügen mit (-L: lokaler Modus, -a: Benutzer hinzufügen)/etc/samba/smbusers
[Syntax:<unix-user> = <smb-user1> <smb-user2> <smb-userN>
]Die Pfade können sich in Ihrer GNU / Lunux-Distribution verschieben.
quelle
/etc/samba/smbusers
Datei auflisten.