• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] bestimmte Samba Freigaben funktionieren nicht

wizraven

Newbie
Hallo zusammen,

ich bin neu hier. Ich bin Netzwerkadministrator und habe ein merkwürdiges Problem mit Samba.

in meiner smb.conf sind vier Userfreigaben definiert. Eine bezieht sich auf das den anderen drei übergeordnete Verzeichnis. Es gibt also ein verzeichnis /daten unter dem drei weitere Verzeichnisse liegen. /gs, /gf und /mitarbeiter. Die Freigabennamen entsprechen den Verzeichnisnamen.
Alle Freigaben sind identisch bis auf die parameter path und valid users und natürlcih der Freigabename.
Es gibt drei Gruppen: mitarbeiter,geschaeftsfuehrer und gesellschafter.

Nun zum Problem:

Die Freigabe mitarbeiter und die übergeordnete Freigabe daten sind wunschgemäß erreichbar. Die Berechtigungen funktionieren. Dies habe ich getestet indem ich Gruppen vertauscht und den administrator entfernt und hinzugefügt habe. Jedsmal ist das Ergebnis erwartungsgemäß.
Mit den beiden anderen Freigaben gs und gf kann ich mich nicht verbinden. "Der Netzwerkname wurde nicht gefunden".
Ich versuche seit zwei Tagen die Sache in den Griff zu bekommen und bin an einem Punkt an dem ich alles, was mir einfällt, gegoogelt und ausprobiert habe und zu keinem Ergebnis komme.

hier dei relevanten Teile meiner smb.conf :

Code:
[global]
	workgroup = DOMSRV
	printing = cups
	printcap name = cups
	printcap cache time = 750
	cups options = raw
	map to guest = Bad User
	include = /etc/samba/dhcp.conf
	logon path = \\%L\profiles\.msprofile
	logon home = \\%L\%U\.9xprofile
	logon drive = P:
	usershare allow guests = Yes
	domain logons = No
	domain master = No
	passdb backend = smbpasswd
	password server = *
	security = domain
	wins support = No
	wins server = 192.168.0.10
	ldap admin dn = 
	ldap suffix = 
[daten]
	comment = Fileserver
	path = /daten
	valid users = root,administrator
	read only = no
	create mask = 0770
[mitarbeiter]
	comment = Freigabe fuer alle Mitarbeiter
	path = /daten/allgemein
	valid users = @mitarbeiter
	force group = mitarbeiter
	force user = administrator
	writable = yes
	read only = no
	browseable = Yes
	create mask = 0770
	directory mask = 0770
	security mask = 00
	force create mode = 0770
	directory security mask = 00
	force directory security mode = 0770
[gf]
	comment = Freigabe fuer Geschaeftsfuehrer
	path = /daten/gf
	valid users = @geschaeftsfuehrer
	force group = geschaeftsfuehrer
	force user = administrator
	writable = yes
	read only = no
	browseable = Yes
	create mask = 0770
	directory mask = 0770
	security mask = 00
	force create mode = 0770
	directory security mask = 00
	force directory security mode = 0770
[gs]
	comment = Freigabe fuer Gesellschafter
	path = /daten/gs
	valid users = @gesellschafter
	force group = gesellschafter
	force user = administrator
	writable = yes
	read only = no
	browseable = Yes
	create mask = 0770
	directory mask = 0770
	security mask = 00
	force create mode = 0770
	directory security mask = 00
	force directory security mode = 0770


Über Hilfe würde ich mich sehr freuen.

Grüße
Joachim
 
OP
W

wizraven

Newbie
hinzuzufügen wäre noch, daß wenn ich im Windows Client auf der Kommandozeile \\sambaserver eingebe, werden alle Freigaben angezeigt. Aber auch hier funktionieren nur daten und mitarbeiter.
 

pft

Advanced Hacker
auch wenn ich nicht exakt erklären kann warum es so ist, so unterstützt jedenfalls Samba keine hierarchischen freigaben wie Du sie hier anwendest. Über Sinn oder Unsinn müssen wir nicht diskutieren hatten wir schon)

Kommentier doch mal "daten" aus, dann sollten alle anderen funktionieren.

Das "andere Problem solltest Du durch ein entsprechendes Rechte- und Gruppenkonzept realisieren und nicht über verschachtelte Freigaben.

Wenn Standardunixrechte nicht ausreichen musst Du halt ACLs einsetzen.
 
OP
W

wizraven

Newbie
Hallo pft,

vielen Dank für Deinen Hinweis. Ich hatte in der Vergangenheit auch schon Probleme mit verschachtelten Freigaben und habe daher schon am Samstag die Freigabe daten auskommentiert und den Samba nur mit den drei anderen Freigaben gestartet. Das hat nichts gebracht. Die ist auch nur zu administrativen Zwecken gedacht.

Ich habe mittlerweise im Logfile (hätte ich auch mal früher reinschauen können) gefunden, daß es ein Berechtigungsproblem ist.
Ich werde heute abend mal die security auf den user stellen und den WINS Service auskommentieren. Vielleicht gibt es da ja Schwierigkeiten. Der Domänenkontroller soll sowieso ersatzlos gestrichen werden.

Über Erfolg oder Misserfolg werde ich heute abend berichten...
 
OP
W

wizraven

Newbie
Hallo zusammen,

ich habe nun security = user in meiner smb.conf stehen und habe den WINS server Eintrag gelöscht. Das Verhalten ist das Selbe. Hier ein Ausschnitt aus dem Logfile des smbd:

Code:
[2008/04/21 17:37:27, 1] smbd/service.c:make_connection_snum(950)
  inge (192.168.1.36) connect to service mitarbeiter initially as user administrator (uid=1000, gid=1000) (pid 11610)
[2008/04/21 17:38:03, 0] smbd/service.c:make_connection_snum(920)
  '/daten/gs' does not exist or permission denied when connecting to [gs] Error was Keine Berechtigung

hier noch ein Auszug aus der group Datei:

Code:
gesellschafter:!:1002:administrator,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx

Außerdem ist der administrator ja owner und in der Freigabe steht die Gruppe als valid users drin:

Code:
[gs]
	comment = Freigabe fuer Gesellschafter
	path = /daten/gs
	valid users = @gesellschafter
	force group = gesellschafter
	force user = administrator
	writable = yes
	read only = no
	browseable = Yes
	create mask = 0770
	directory mask = 0770
	security mask = 00
	force create mode = 0770
	directory security mask = 00
	force directory security mode = 0770

und hier die Berechtigungen auf Dateiebene:

Code:
total 2
drwxrwx---  9 root          mitarbeiter        248 Apr 21 17:50 .
drwxr-xr-x 24 root          root               584 Apr 20 09:30 ..
drwx------  2 root          root                48 Apr  7 15:47 .Trash-root
drwxrwx--- 17 administrator mitarbeiter       1040 Apr 21 11:03 allgemein
drwxrwx---  5 administrator geschaeftsfuehrer  128 Apr 19 12:07 gf
drwxrwxrwx 16 administrator gesellschafter     968 Apr 19 12:11 gs
-rwxrwxrwx  1 administrator root                 0 Apr 21 17:51 listing
drwxr-xr-x  6 administrator users              240 Apr  3 12:29 scalix-11.2.0-GA

Daß das Verzeichnis gesellschafter 777 hat liegt am Rumprobieren. Was mich hier aber wundert, ist daß der oberste Eintrag als Gruppe mitarbeiter und als owner root stehen hat. Wie kann ich das ändern?

Wie kann bei dieser Kombination "keine Berechtigung" rauskommen?
Ich steh ganz schön auf dem Schlauch.

ratlose Grüße
Joachim
 

pft

Advanced Hacker
Nur mal keine Panik das wird schon.

Also Besitzer/Gruppe änder kannst Du mit chown bzw. chgrp. Ersteres kann auch beides gleichzeitig ändern (-> man page)

Zum rechteproblem:
Von wo greifst Du zu? Win-Client oder lokal? Welcher eingeloggte user?

Mach mal lokal (am Linuxrechner) das hier
Code:
smbclient -L inge
und dann
Code:
smbclient -U user -c "ls" //inge/gs
für einige in Frage kommenden User

PS: und evtl. ersetzt Du bei den Posts Klartextnamen durch PLatzhalter. Geht ja keinen was an :)
 
OP
W

wizraven

Newbie
Hallo pft,

vielen Dank für die aufmunternden Worte.

Wie man die Rechte eines normalen Verzeichnisses ändert ist mir klar, aber das ist ja quasi das übergeordnete Verzeichnis von innen betrachtet :)

Die Antwort auf den ersten Befehl lautet:

Code:
	Sharename       Type      Comment
	---------       ----      -------
	profiles        Disk      Network Profiles Service
	users           Disk      All users
	groups          Disk      All groups
	print$          Disk      Printer Drivers
	daten           Disk      Fileserver
	mitarbeiter     Disk      Freigabe fuer alle Mitarbeiter
	gf              Disk      Freigabe fuer Geschaeftsfuehrer
	gs              Disk      Freigabe fuer Gesellschafter
	IPC$            IPC       IPC Service (Samba 3.0.24-2.23-1296-SUSE-CODE10)

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------
	DOMSRV               PDC



Als Antwort auf den zweiten Befehl bekomme ich das ls des Verzeichnisses. Also hat der Benutzer administrator die korrekten Rechte. Bei den anderen usern ist es gleich, bis auf eine userin, die war zuerst gar nicht in der smbpasswd enthalten, hatte aber merkwürdigerweise trotzdem Zugriff zur Freigabe mitarbeiter

Du hast Recht, es ist besser Namen auszuixen.

Achso ... und ich greife vom Win XP Client aus zu.

Gruß
Joachim
 

pft

Advanced Hacker
aber das ist ja quasi das übergeordnete Verzeichnis von innen betrachtet
Tja, mein Rücken ist quasi auch der Bauch von hinten betrachtet. trotzdem hab ich kein Problem damit mir beim duschen den Rücken zu schrubben :)

Nein, im Enrst. Du siehst hier Probleme die es nicht gibt.

1. Jedes Directory hat Rechteeinstellungen
2. Ein directory hat einen Namen, über den es aus dem übergeordneten angesprochen wird. Ist man weiter oben benutzt man den kompletten relativen Pfad, ist man weiter unten benutzt man "..", notfalls öfter"../../". Ausserdem benennt "." das aktuelle directory. Alternativ geht natürlich immer der absolute Pfad.
ist man also in /home/user (Ausgabe von pwd) und es gibt dort "mail" und "Documents", dann kann man mit
Code:
chown user:grp .
die Rechte von /home/user
Code:
chown user:grp ..
die Rechte von /home
Code:
chown user:grp ../usr
die rechte von /usr
Code:
chown user:grp mail
oder
Code:
chown user:grp ./mail
oder
Code:
chown user:grp ../user/mail
oder
Code:
chown user:grp /home/user/mail
die Rechte von /home/user/mail ändern

Das andere Problem ist weniger klar. Der lokale Test zeigt meiner Meinung dass eigentlich alles ok ist und der Fehler auf Windows-Seite, oder bei der Übermittlung von user-id/Passwort von Windows zu Linux oder beim user/groiup mapping auftritt.
Bist Du sicher dass Du auf Windowsseite als administrator oder ein user der richtigen Gruppe eingeloggt bist?
Denk bitte dran dass die ganzen force Geschichten erst nach der Prüfung der Zugangsberechtigung greifen.
Das heisst: wenn eine Freigabe nur für Hans und Fritz zugelassen ist ("valid users"), dann kann Lisa nicht zugreifen auch wenn du die Option "force user = Lisa" setzt.
 
OP
W

wizraven

Newbie
Hallo pft,

das wusste ich nicht, daß man auf .. auch chmod etc. machen kann.

Ich werde das heute abend versuchen.

Ich bin mir sicher, daß ich korrekt angemeldet bin am windows client., In der Regel versuche ich es am PDC und da bin ich mit administrator angemeldet. Auf Groß- und Kleinschreibung habe ich auch geachtet.

Die force user geschichte ist nur, weil ich es mit der Verzeichnisberechtigung 2770 nicht schaffe, daß die Gruppe immer die selbe ist und daß die Rechte 0770 sind. Beim Googeln nach diesem problem habe ich dieses merkwürdige Konstrukt von masks und force gefunden ... und es funktioniert!
 
OP
W

wizraven

Newbie
wenn ich im Verzeichis gf chown administrator:geschaeftsfuehrer .. eingebe, ändern sich tatsächlich owner und gruppe von .. allerdings ändern sich dabei auch owner und gruppe von .. in gs und allgemein

Vielleicht verstehe ich dei Funktion von .. nicht richtig. ich dachte immer das sei der Sprungpunkt zum nächst höheren Verzeichnis. Am nicht funktionierenden Zugriff auf die Freigaben gf und gs hat sich nichts geändert.

Kann das mit dem DNS zu tun haben? Ich verbinde zwar über die IP Adresse aber möglicherweise wird der DNS auch bei der Authentifizierung benutzt.
Den DNS erledigt eigentlich eine andere Linux Maschine, auf der IPCop läuft.
 

pft

Advanced Hacker
wenn ich im Verzeichis gf chown administrator:geschaeftsfuehrer .. eingebe, ändern sich tatsächlich owner und gruppe von .. allerdings ändern sich dabei auch owner und gruppe von .. in gs und allgemein

Vielleicht verstehe ich dei Funktion von .. nicht richtig. ich dachte immer das sei der Sprungpunkt zum nächst höheren Verzeichnis. Am nicht funktionierenden Zugriff auf die Freigaben gf und gs hat sich nichts geändert.
Was Du sagst ist richtig nur Deine Frage ist dann unerklärlich.
Hast Du die leiseeste Ahnung wie eine Verzeichnisstruktur aussieht? Das "naächst höhere verzeichnis" zu gs, gf und allgemein ist doch dasselbe, nämlich daten.

Weißt Du warum man das ganze auch oft "tree", also "Baum" nennt? Vielleicht verstehst Du es eher mit der Analogie zum Ahnenbaum.

/daten ist ein verzeichnis, das weitere Verzeichnisse enthält. Diese werden dir mit "ls /daten" aufgelistet, also hier gf, gs und allgemein.
Also ist /daten der Vater von gs,gf und allgemein, bzw. diese sind die Söhne von daten und zueinander Brüder.

Da ".." immer auf den Vater zum aktuellen Verzeichnis zeigt, ist doch klar dass jede Änderung von ".." zu gs, auch ".." zu gf ändert - beide Söhne (da Brüder) haben den gleich Vater. Geschnallt?
 

pft

Advanced Hacker
ach ja was mir noch auffällt:

1. bei deinem etwas verwirrten Verständnis von Verzeichnissen (sorry) wundert es nicht dass Du das mit der "Verzeichnisberechtigung 2770" nicht hinbekommen hast. Vermutlich falsch angewendet. Denk mal über meine letzte Mail nach und lies hier nach
http://de.wikipedia.org/wiki/Setuid
http://de.wikipedia.org/wiki/Setgid

2. Das andere Problem ist mir noch nicht klar, ich denk noch mal drüber nach. Aber ich fürchte das wird schwierig, weil evtl. noch ein paar solcher Verständnisproblme vorliegen und das erschwert die Lösung. Um das zu tun, was Du versuchst sollte man eine stabile Wissensgrundlage haben.

3. Versuch das mit einem ordentlichen Rechtemanagement auf Linux-ebene zu lösen. Das geht. Dein Ansatz mit "setgid" war goldrichtig. Das sollte besser funktionieren als der ganze force Krams.

PS: nimms nicht persönlich. Das ist völlig normal für Einsteiger und kein Beinbruch. Aber versuch Dir ein paar Grundlagen anzueignen, durch lesen und herumspielen.
 
OP
W

wizraven

Newbie
Vielen Dank für Deine geduldige Erklärung. Genauso hatte ich das auch verstanden, warum aber /daten eine andere owner:group Zuordnung hat als .. in den drei untergeordneten Verzeichnissen ist mir nicht klar. Danke für die Llinks, die werde ich mir umgehend durchlesen.
 

pft

Advanced Hacker
warum aber /daten eine andere owner:group Zuordnung hat als .. in den drei untergeordneten Verzeichnissen ist mir nicht klar
Das ist auch nicht so - ganz sicher.

Woher kommt dieser Eindruck? Kannst Du "Beweise" vorlegen?
Mach doch mal das:
Code:
cd /
ls -la
cd daten
ls -la
cd gs
ls -la
und poste die Ausgaben
 
OP
W

wizraven

Newbie
ls -la in /

Code:
drwxr-xr-x  24 root          root         584 Apr 20 09:30 .
drwxr-xr-x  24 root          root         584 Apr 20 09:30 ..
-rw-------   1 root          root        1024 Nov 30 14:31 .rnd
drwxr-xr-x   2 root          root        2856 Nov 30 14:20 bin
drwxr-xr-x   3 root          root        1464 Dec 17 10:49 boot
drwxrwx---   9 administrator mitarbeiter  272 Apr 22 18:38 daten
drwxr-xr-x  10 root          root        6700 Apr 20 07:30 dev
drwxr-xr-x  78 root          root        6600 Apr 22 18:55 etc
drwxr-xr-x  18 root          root         488 Dec 16 12:12 home
drwxr-xr-x  10 root          root        3768 Nov 30 14:21 lib
drwxr-xr-x   5 root          root        3872 Nov 30 14:21 lib64
drwxr-xr-x   2 root          root          48 Dec 14 14:51 media
drwxr-xr-x   2 root          root          48 May  3  2007 mnt
drwxr-xr-x   4 root          root          96 Nov 30 14:12 opt
dr-xr-xr-x 113 root          root           0 Apr 20 09:29 proc
drwx------  27 root          root        1184 Apr 21 12:44 root
drwxr-xr-x   3 root          root        8832 Nov 30 14:21 sbin
drwxr-xr-x   4 root          root          96 Nov 30 14:12 srv
drwxr-xr-x  11 root          root           0 Apr 20 09:29 sys
drwxrwxrwt  14 root          root         784 Apr 23 21:45 tmp
drwxr-xr-x  13 root          root         376 Nov 30 14:19 usr
drwxr-xr-x  14 root          root         360 Nov 30 14:14 var
drwxr-xr-x   5 root          root         104 Dec  3 08:23 vms

ls -la in /daten

Code:
drwxrwx---  9 administrator mitarbeiter        272 Apr 22 18:38 .
drwxr-xr-x 24 root          root               584 Apr 20 09:30 ..
drwx------  2 root          root                48 Apr  7 15:47 .Trash-root
drwxrws--- 17 administrator mitarbeiter       1040 Apr 23 12:02 allgemein
drwxrws---  5 administrator geschaeftsfuehrer  128 Apr 19 12:07 gf
drwxrws--- 16 administrator gesellschafter     968 Apr 19 12:11 gs
-rw-r--r--  1 root          root              1467 Apr 23 21:56 list1
-rw-r--r--  1 root          root                 0 Apr 23 21:56 list2
drwxr-xr-x  6 administrator users              240 Apr  3 12:29 scalix-11.2.0-GA

ls -la in /daten/gs

Code:
drwxrws--- 16 administrator gesellschafter     968 Apr 19 12:11 .
drwxrwx---  9 administrator mitarbeiter        296 Apr 23 21:57 ..
drwxrws---  2 administrator gesellschafter      48 Apr 19 12:08 Adressen
drwxrws---  4 administrator gesellschafter     240 Apr 19 12:08 Allgemein
drwxrws---  2 administrator gesellschafter      48 Apr 19 12:08 Berechnungen
drwxrws---  3 administrator gesellschafter     304 Apr 19 12:08 Korrespondenz

Das Verzeichnis /daten hat von "außerhalb" betrachtet administrator/mitarbeiter wenn ich aber in /daten bin hat .. root/root

Das Verzeichnis /daten/gs hat von außerhalb administrator/gesellschafter und wenn ich rinspringe ins verzeichnis hat .. administrator/mitarbeiter

Ich bin gerne bereit einzusehen, daß meine Sicht der Dinge falsch ist und ich nehme das ganz bestimmt nicht persönlich. Im Gegenteil, ich freue mich, daß mir jemand hilft und ich freue mich, wenn ichdabei auch noch was lerne.

Danke
 
OP
W

wizraven

Newbie
Ich habe eben /daten/gs nach /gs kopiert und in der smb.conf den Pfad angepasst und siehe da, es funktioniert tadellos.

Es scheint als ob Freigaben nicht auf der selben Ebene liegen können. Die Freigabe daten kann ich ja auskommentieren und trrotzdem habe ich keine Verbesserung.
Anzumerken wäre hier noch, daß ich bei mir einen Samba Server mit hierarchischen Freigaben habe und der läuft seit Jahren stabil.

Trotzdem, wenn Du mir das mit .. noch erklären würdest wäre ich Dir sehr dankbar.

Die Lektüre deiner Links hat gezeigt, daß ich das wirklich falsch verstanden habe. Zumindest im Bezug auf Dateien und SetGID. Aber das mit den Verzeichnissen und 2770 funktioniert bei mir trotzdem nicht. ich werde das wohl noch ein bisschen spielerisch erarbeiten müssen :)

Vielen Dank nochmal für Deine Geduld!

Joachim
 

pft

Advanced Hacker
Du hast es noch nicht verstanden :-(
Das Verzeichnis /daten hat von "außerhalb" betrachtet administrator/mitarbeiter wenn ich aber in /daten bin hat .. root/root
Wenn Du in /daten bist, dann verweist ".." auf den Vater davon, also "/" das ist natürlich etwas anderes als /daten. Der Verweis auf /daten heißt dabei ".".
Das Wurzelverzeichnis sollte immer root:root gehören. Ändere das bloß nicht.

In den auf meine Anleitung erstellten Ausgaben beziehen sich:
in ls -la / die Zeitele für daten
in ls -la /daten die Zeile für "."
in ls -la /daten/gs die Zeile für ".."
alle auf /daten und folglich sind auch Rechte und Eigentümer identisch.

Du kannst übrigens aus den Ausgaben auch die Auswirkungen Deiner Versuche das setgid zu setzen, erkennen.
An einigen Stellen findet sich für die Gruppe statt einen "x" ein "s"

Auch dein Problem mit gs wird jetzt klar:
gs hat zwar für die Gruppe "mitarbeiter" Zugriffsrechte, aber das hilft nichts da bereits bei daten schluss ist.: hier hat nur der administrator und die Gruppe mitarbeiter Zugriff, die Gruppe gesellschafter aber nicht.

Also: das mit den hirarchischen Freigaben mag ja vielleicht gehen, aber in diesem fall kommst Du mit den rechten ins Gehege. Du musst /daten mindestens auf 775 setzen, bzw. wenn /datzen selbst keine eigene Freigabe ist, dann reicht 755

Fazit: Versuch noch ein wenig über den Dateibaum und die Rechte zu lernen :)
Viel Spaß - und wenn es mal wieder knifflig wird gibt es ja den Linux-Club
 
Oben