[Samba] Share & Passwort Freigabe für Windows

  • Themenstarter Themenstarter Gelöschtes Mitglied 16444
  • Beginndatum Beginndatum
G

Gelöschtes Mitglied 16444

Guest
Ich würde bei einem Sambaserver, der bei uns im Netzwerk unter Debian läuft, gerne ein Setup konfigurieren, bei dem ich


  • eine offene Freigabe für alle Nutzer im Netzwerk (ohne Benutzer- oder Passwortbeschränkung),
  • eine private Freigabe für jeden einzelnen Nutzer, geschützt durch ein Passwort
  • und eine Passwortgeschützte Freigabe für eine bestimmte Benutzergruppe
habe. Bisher habe ich es nicht hin bekommen Samba entsprechend zu konfigurieren. Nach ein paar Suchen im Internet und dem Kopieren von Beispielkonfigurationen, die alle nicht zum gewünschten Ergebnis geführt haben, suche ich jetzt mal eure Hilfe.

Kann es sein, das ein solches Setup mit Windows gar nicht möglich ist? Ich habe meine Konfigurationen jetzt nie von nem Linux aus getestet. Es gibt einige Stimmen, nach denen es mit Windows nicht geht, weil das nicht in der Lage ist die Anmeldeinfos zum gleichen Server zwischenzeitlich zu ändern.

Was ich auch versuche, ich bekomme es nur hin, dass ich auf die öffentliche Freigabe zugreifen kann. Die private sehe ich zwar und erhalte auch eine Passwortabfrage, aber das Passwort wir nicht akzeptiert.
Alternativ kann ich Samba auf user security stellen, und erhalte dann immer eine Passwortabfrage (die dann auch erfolgreich beantwortet werden kann).

Eine Lösung müsste komplett serverseitig sein.
 
Ein solches Setup nutzen wir bei uns im Office. Das "Geheimnis" dabei:

Public-Verzeichnis (erfordert allerdings trotzdem eine Authentifizierung, da nicht für den Gast-Account freigegeben):

Code:
[Public]
   comment = Public Directory
   path = /samba/public
   writeable = yes
   force group = staff
   force create mode = 777
   force directory mode = 777
   browseable = yes

  vfs object = recycle
  recycle:repository = .trash/%U
  recycle:keeptree = Yes
  recycle:directory_mode = 0770
  recycle:touch = Yes
  recycle:versions = Yes
  recycle:maxsize = 0
  recycle:exclude = *.tmp|*.temp|*.o|*.obj|~$*|*.~??
  recycle:excludedir = /tmp|/temp|/cache

Wenn du tatsächlich garkeine Authentifizierung für das Public-Share haben willst, dann muss einfach 'guest ok = yes' für dieses Share hinzugefügt werden.

Benutzer-spezifische Verzeichnisse:

Code:
[homes]
   comment = Home Verzeichnis
   read only = no
   create mode = 0660
   directory mode = 0755
   hide unreadable = yes
   browseable = no

Hier ist vor allem allem wichtig, dass das Share "homes" heisst, weil dadurch die User-Home-Verzeichnisse freigegeben werden, auf die eh nur der entsprechende User Zugriff hat.

Und bei dem Verzeichnis, auf das nur bestimmte Nutzer Zugriff haben sollen, ist der "Trick", dass eine "valid users"-Direktive in der Share-Konfiguration existiert. Dadurch kannst du dann festlegen welche User darauf zugreifen dürfen.

'security = user' muss natürlich im globalen Teil der Konfiguration gesetzt sein, damit eine Authentifizierung für jene Shares abgefragt wird, die eine solche brauchen.
 
Sind bei euch im Netz auch Windowsclients unterwegs? Eine solche oder so ähnliche Config habe ich schon mal probiert. Das Ergebnis ist, dass ich mit dem Windowsclient auch für die Publicshares eine Passwortabfrage bekomme.

Code:
[global]
    workgroup = TESTING
    netbios name = data
    security = user
    logfile = /var/log/samba/log.%m
    max log size = 1000
    syslog = 0

[homes]
    comment = Home
    read only = no
    create mode = 0660
    directory mode = 0755
    hide unreadable = yes
    browseable = no

[Public]
    comment = Public
    path = /home/public/
    guest ok = yes
    read only = yes
    browseable = yes

Ich hätte gerne so was wie...


  • Client ruft \\data auf
  • Client bekommt zu sehen: home, public, intern
  • Client wählt public und bekommt direkt Zugriff, ohne Passwortabfrage
  • Client wählt home und erhält Passwortabfrage. Wenn gültig sieht er halt sein home Verzeichnis
  • Client wählt intern und bekommt Passwortabfrage. Wenn gültig und User ist Mitglied in Gruppe xyz sieht er das gemeinsame Verzeichnis intern
 
Bei uns sind ausschliesslich Windows-Clients im Netz. Allerdings nutzen wir für das Non-Public-Share keine Gruppen, sondern tragen die berechtigten User direkt in "valid users" ein. Du kannst dort alledings auch einen Gruppennamen einfügen indem du z.B. "valid users = @meinegruppe" verwendest.

Ausserdem dient unser Samba-Server auch gleich als PDC. Die meisten (aber nicht alle) Clients werden also an der Domain angemeldet, so dass wir z.B. über netlogon-Skripte benutzerabhängig die Shares gleich unter Windows einhängen können. Hier mal unsere Global-Konfig:

Code:
[global]
   # Identification and workgroup
   workgroup = meinefirma
   netbios name = fileserver
   server string = Samba %v (PDC) @ meinefirma
   wins support = yes  
   
   # Basic settings for shares
   browseable = no
   public = no
   writeable = no
   guest ok = no

   # Wenn er Master-Browser sein soll dann brauch er nen gueltigen Gast-Account
   guest account = nobody

   # Log-Files for Samba
   log level = 0
   log file = /var/log/samba/%m.log


   # Definition of PDCs
   domain logons = yes
   domain master = yes
   local master = yes
   prefered master = yes
   os level = 66
   security = user

   # LogOn Settings for Windows 9x/NT/2000/ME
   logon drive = Z:
   logon path =
   logon home =
   logon script = logon_script_%U.bat

   # Password settings
   encrypt passwords = true
   update encrypted = yes
   smb passwd file = /etc/samba/smbpasswd

   add machine script = /usr/sbin/useradd -c Machine -d /var/lib/nobody -s /bin/false %m$   

   # Administrators of PDC
   admin users = bitmuncher

   # Performance
   socket options = SO_KEEPALIVE TCP_NODELAY IPTOS_LOWDELAY
   max log size = 1000

   # Security
   hosts allow = 10.10.0.0/255.255.255.0

   printcap name = /dev/null
   load printers = no
   printing = bsd

   # added 5.5.08 to minimize endpoint connection errors
   smb ports = 139

Die zugehörigen Share-Beispiele habe ich ja bereits gepostet. Beim Public-Share musst du halt noch 'guest ok = yes' einfügen. Selbst wenn ein User dann noch eine Passwort-Abfrage erhalten sollte (was eigentlich nicht der Fall sein dürfte), kann er diese normalerweise einfach abbrechen und somit als Gast darauf zugreifen. Wichtig ist, dass auch ein "guest account" im global definiert ist, damit der Server weiss welchen Systemuser er für den Zugriff nutzen kann. Und natürlich muss dieser Systemuser Leserechte auf den entsprechenden Ordner haben.

Damit ausschliesslich der User auf sein Home lesend zugreifen kann, muss noch folgendes für's homes geändert werden:

Code:
create mode = 0600
directory mode = 0700

Damit ist sichergestellt, dass kein anderer User in diesem Verzeichnis lesen kann. Das ist bei uns nicht gewünscht, allerdings soll halt nur der Eigentümer in seinem Ordner schreiben können. Daher nutzen wir andere Werte für "create mode" und "directory mode".
 
Ich bekomme mit einem solchen Setup schon beim Zugriff auf \\data eine Passwortabfrage. Klicke ich diese weg, bekomme ich keinen Zugriff. Gebe ich falsche Daten ein, erscheint sie erneut. Gebe ich korrekte Daten ein erhalte ich auf alles Zugriff.
Auch wenn ich den Pfad zum Publicshare direkt eingebe, erscheint die Passwortabfrage.

Setze ich security = share, dann erhalte ich die Auswahl, wie ich sie haben will und kann auf das Publicshare zugreifen. Die Passwortabfrage, für das home-Verzeichnis jedoch, verweigert auch bei korrekter Eingabe den Zugriff auf dieses.
 
Eigentlich ja. Denn wie gesagt, mit security = share komme ich auf alle Verzeichnisse, die öffentlich zugänglich sein sollen drauf, aber für mein home-Verzeichnis wird mein Passwort nicht akzeptiert.
Mit security = user kann ich auf alle Verzeichnisse zugreifen, aber bekomme eben auch für alle eine Passwortabfrage.
 
Zurück
Oben