Wie man Samba freigibt, um NICHT NACH PASSWORT ZU FRAGEN

20

ANMERKUNG: Ich habe wahrscheinlich bis zu 50 verschiedene Seiten gelesen, auf denen beschrieben wird, wie eine öffentliche Samba-Freigabe innerhalb von 2 Jahren eingerichtet wird, und bei mir hat nie etwas funktioniert. Ich weiß nicht, wie viel RTFM ich brauche, um dieses Zeug einzustellen.

Ich muss / möchte eine vollständig geöffnete öffentliche Dateifreigabe auf meinem Heimserver für zwei Arbeitsstationen einrichten.

Das Setup ist wie folgt:

Server :

  • Debian Wheezy
  • sudo smbd --versiongibt mir Version 3.6.6.
  • 2 lokale Partitionen, die ich freigeben möchte, die in NTFS formatiert sind, weil sie alt sind und von einem Windows-Computer stammen. Ich kann sie nicht für ext * FS formatieren, da sie viele Daten enthalten, die ich (noch) nicht an einen anderen Ort verschieben kann.
  • Maschine mit dem Namen "homeserv" wegen mangelnder Originalität.

Kunde :

  1. Debian-Testen (Jessie)
  2. Windows 7 (2 verschiedene Maschinen). Tatsächlich ist mein Computer Debian / Windows Dualboot, und der Computer meiner Frau ist nur Windows.

Meine smb.conf sieht nach der Destillation wie folgt aus ( wörtlich ist nichts anderes da):

[global]
  workgroup = WORKGROUP
  security = user
  map to guest = Bad User

[disk1]
  comment = Disk 1 on 400GB HDD
  path = /media/disk1
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 0755

[disk2]
  comment = Disk 2 on 400GB HDD
  path = /media/disk2
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 0755

Auf beiden Client-Rechnern erhalte ich unter Debian und Windows das gleiche Ergebnis: Login / Passwort-Dialog. Keine Kombination von security = user, map to guest = Bad user, security = share, guest ok = yesund so half.

Windows 7 zeigt den Anmelde- / Kennwortdialog an, nachdem ich auf den freigegebenen Computer in der Netzwerkumgebung geklickt habe. smb://homeserv/Der Dateipfad in Debian (in jedem Dateibrowser) zeigt mir zwei Ordner: disk1und disk2, wie beabsichtigt, indem Sie versuchen, sie zu öffnen, bringen Sie den Login / Passwort-Dialog.

Also, was fehlt mir im Schema, um NICHT Login / Passwort eingeben zu MÜSSEN? Dies ist eine Frage der Benutzerfreundlichkeit. Ich erstelle keine benutzerbasierte Authentifizierung für File Junkyard.

Hijarian
quelle

Antworten:

14

OK, ich habe selbst eine Antwort gefunden.

Da dies aus den Dokumenten und HOWTOs absolut nicht ersichtlich ist, werden Sie nach einem Kennwort gefragt, da der Gastbenutzer nicht dem Eigentümer des freigegebenen Verzeichnisses zugeordnet werden kann .

Ich habe NTFS-Partitionen, die ich zum Mounten von RW benötige, also habe ich das folgende Setup in meinem verwendet /etc/fstab:

/dev/sdb1  /media/disk1  ntfs defaults,noexec,noatime,relatime,utf8,uid=1000,gid=1000 0       2
/dev/sdb2  /media/disk2  ntfs defaults,noexec,noatime,relatime,utf8,uid=1000,gid=1000 0       2

Die wichtigsten Teile der Konfiguration sind uidund gid(vielleicht nur uid, weiß nicht). Sie werden auf die UID und GID des jonnieauf dem Server eingerichteten Benutzers gesetzt (offensichtlich nicht root). Wenn ntfs-3g diese Datenträger mounten wird, wird ihm alles gehören.

Danach habe ich diesen Benutzer zur Samba-Registrierung hinzugefügt (oder möglicherweise einen neuen identischen erstellt, egal):

# smbpasswd -a jonnie

Es wurde nach dem Passwort gefragt, ich habe dasselbe eingegeben wie für das Hauptsystem.

Danach habe ich die force userund force groupEinstellungen hinzugefügt zu smb.conf:

[global]
  workgroup = WORKGROUP
  netbios name = HOMESERV
  security = share

[disk1]
  comment = Disk 1 on 400GB HDD
  path = /media/disk1
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 666
  directory mask = 777
  force user = jonnie
  force group = jonnie

[disk2]
  comment = Disk 2 on 400GB HDD
  path = /media/disk2
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 666
  directory mask = 777
  force user = jonnie
  force group = jonnie

Das wichtigste für mich relevante Konfigurationselement war also force user.

Mit freundlicher Genehmigung des Samba HOWTO

Hijarian
quelle
1
"offensichtlich nicht root". Das ist eigentlich nicht so offensichtlich. Samba hat Dutzende von Fehlermodi. Die meisten führen zu identischen Fehlermeldungen. Deshalb haben Sie so viel Zeit mit erfolglosen Google-Suchen verbracht. Eine einzelne Suche wird nicht nur eine Mischung von Problemen aufwerfen, sondern die gefundenen Antworten werden auch unter derselben Verwirrung leiden. Die Verwendung von root beseitigt die Linux-Seite der Sicherheit, ermöglicht es Ihnen jedoch auch, das Problem zu diagnostizieren. Wenn es als root funktioniert, liegt ein Sicherheitsproblem auf Linux-Ebene vor. Wenn Samba weiterhin ausfällt, liegt das Problem in der Vorstellung von Samba, dass Benutzer vorhanden sind (sie sind unterschiedlich und sollten eindeutige Fehler aufweisen).
MSalters
2

Die Konfiguration kann kürzer sein:

Erstellen Sie einen Unix-Benutzer jonnie

useradd jonnie -s /usr/sbin/nologin

Erstelle einen smbuser

smbpasswd -a jonnie

Erstellen Sie das freizugebende Linux-Verzeichnis

mkdir /mysmbshare

Ändern Sie den Eigentümer des Verzeichnisses in jonnie

chown /mysmbshare jonnie

smb.conf

[global]
  workgroup = MyWorkGroup
  server string = Hello, use me
  security = share
  guest account = jonnie
  passdb backend = tdbsam

[the_public_share]
   path = /mysmbshare
   writable = yes
   printable = no
   public = yes

Alle Dateien gehören jonnie und jeder hat Zugriff auf die Dateien.

BdK
quelle
Ja, "ändere den Besitzer des Verzeichnisses in jonnie" ist wahrscheinlich der wichtigste Teil hier. Vielen Dank für die viel kürzere Lösung!
Hijarian
1

Der schnelle und schmutzige Weg, eine offene Samba-Freigabe zu haben, ist:

# ----------------------- Standalone Server Options ------------------------
#
# Scurity can be set to user, share(deprecated) or server(deprecated)
#
# Backend to store user information in. New installations should
# use either tdbsam or ldapsam. smbpasswd is available for backwards
# compatibility. tdbsam requires no further configuration.

        security = share
        passdb backend = tdbsam

und haben Aktien definiert als solche:

[export]
   comment = Data Export Directory
   path = /data/export
   read only = no
   public = yes
   browseable = yes
   writeable = yes
   create mask = 666
   directory mask = 777

Starten Sie den Daemon neu.

Für Windows 7-Clients musste ich ab 2014 die Domänenrichtlinie festlegen: Kommunikation digital signieren von immer bis DEAKTIVIEREN.

ewwhite
quelle
Mein Gott, Domain-Richtlinien für angeblich öffentliche Freigaben ändern ... (facepalm). Okay, trotzdem danke, aber nein, ich habe es gerade versucht und für den Zugriff ist smb://homeserv/disk1immer noch ein Passwort in Debian erforderlich. Ich habe Dolphin und Krusader-Dateibrowser verwendet. Vielleicht ist es etwas in KDE.
Hijarian
Hey, das hat funktioniert! : D public = yesund 777Berechtigungen haben den Trick gemacht (Win 10 Hosting Ubuntu 18.04). Zum Glück befindet es sich auf meiner persönlichen Workstation, sodass ich mir keine Sorgen machen muss
Arthur Tarasov