PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Samba automatisches verändern der Berechtigung



xmarvel
26.02.03, 10:19
hi

Folgendes Problem. Ich habe ein Ordner mit folgenden Berechtigungen:

r-xrwx--- ftp samba ftp-ordner


Jetzt will ich das wenn ich mit einem User von Samba einen neuen Ordner erstelle die gleichen Berechtigung, Benutzern wie oben bekommt.
Das Problem ist wenn ich force user=ftp und force group=samba mache. Dann kann der User in der Gruppe Samba nix erstellen da er mit den Berechtigungen vom User ftp arbeitet. Obwohl ja eigentlich die Gruppe (siehe oben) Vollzugriff hat. Aber das ignoriert er irgendwie.

Hier der Auszug von der smb.conf



[FTP-Files]
comment=FTP Ordner
path=/home/ftp
force user=ftp
force group=samba
read only=No
create mask=0570
directory mask=0570


Also wie kann ich erreichen das wenn ich einen Ordner erstelle das jeder Samba Benutzer Vollzugriff hat, aber der Benutzer ftp nicht schreiben und löschen kann ?

MFG
xmarvel

pibi
26.02.03, 11:34
Original geschrieben von xmarvel
Also wie kann ich erreichen das wenn ich einen Ordner erstelle das jeder Samba Benutzer Vollzugriff hat, aber der Benutzer ftp nicht schreiben und löschen kann ?Ich bin mir nicht sicher, ob ich Dein Problem richtig verstanden habe. Aber wenn Du mit "chmod 2570 ftp-ordner" die Attribute des ftp-Ordners setzt, bekommen alle neu erzeugten Directories ebenfalls die Gruppe "samba" als Eigentuemer.

Gruss Pit.

xmarvel
26.02.03, 11:52
ne ich meine es etwas anders.
Ich melde mich ja beim Samba nicht als ftp user an sondern z.B. als User Muelller. Und wenn er ein Verzeichniss erstellt gehört das Verzeichnis natürlich Mueller sowie die Gruppe samba. Jetzt soll der Eigentuemer nicht Mueller sein sondern ftp sein (die Gruppe soll als samba beibehalten werden) damit der User ftp die Dateien überhaupt lesen kann.
Nur leider wenn ich force user=ftp mache. connectet er schon als User ftp. Und da er nicht scheiben soll. (siehe Berechtigung oben) Kann er dann kein Verzeichniss erstellen.
Samba müsste zuerst mit den Mueller Rechten schreiben und anschließend den Eigentuemer umsetzen.
Ich hoffe jetzt wird es etwas verständlicher.

mamue
26.02.03, 11:58
Ich glaube zu verstehen, was Du möchtest. Ich finde es zwar durchaus interessant, glaube aber, dass es in keiner authentifizierung vorgesehen ist, dass ein user beim Anmelden ein anderer ist als beim Schreiben.
Als workaround wäre vielleicht ein root postexec möglich, der den Eigentümer neu setzt.
Oder vielleicht mit einem cron eintrag regelmässig nachschauen und entsprechend patchen ;-)

mamue

steve-bracket
26.02.03, 12:04
Nach deiner Beschreibung ist das nicht zu realisieren. Denn es macht tatsächlich keinen Sinn wenn sich der User "Müller" als solcher anmeldet, aber die Dateien oder Ordner als User "ftp" erstellen soll.
Das passt nicht zum Grundkonzept.
Vielleicht lässt sich das mit der Gruppe irgendwie umgehen, ansonsten fällt mir auch nichts ein.

fG Steve

oafish
26.02.03, 12:22
Doch das müsste gehen. Durch den Einsatz des force user Parameters vergißt Samba den Namen mit dem sich der Benutzer eingeloggt hat und verwendet anstelle den des Parameters. Versuch einmal folgendes:


[FTP-Files]
comment = FTP Ordner
path = /home/ftp
read only = no
valid users = @samba Mueller
force user = ftp
force group = samba
create mask = 540
directory mask = 550
force create mode = 020
force directory mode = 020

Also ich habs nicht getestet aber es müsste Dich ein ganzes Stück weiterbringen...

oafish

xmarvel
26.02.03, 12:38
dass es in keiner authentifizierung vorgesehen ist, dass ein user beim Anmelden ein anderer ist als beim Schreiben

naja samba macht es leider nicht so aber mit force user und force group. Konvertiert er die Dateien genau nach dem Muster :
r-xrwx--- ftp samba Test-Ordner

Nur das ftp schreib Rechte braucht um den Ordner zu erstellen. Obwohl ja die Gruppe samba(Der User Mueller ist in der Gruppe samba) schreibrechte hat ? Das finde ich etwas verwirrend.



Als workaround wäre vielleicht ein root postexec möglich, der den Eigentümer neu setzt.

hmm... habe ich mir auch schon überlegt weiss aber nicht wie ich den neu erstellen Ordner/Datei ansprechen soll da sich der Datei/Ordnername sich ständig ändert.

P.S.: Wenn es natürlich keine Möglichkeit gibt dieses zu realisieren muss ich wohl jeden lese Rechte geben. Aber vielleicht hat ja jemand noch ein Tip. Das mit dem postexec ist ja garnicht mal so schlecht

MFG
xmarvel

xmarvel
26.02.03, 12:52
Original geschrieben von oafish
Doch das müsste gehen. Durch den Einsatz des force user Parameters vergißt Samba den Namen mit dem sich der Benutzer eingeloggt hat und verwendet anstelle den des Parameters. Versuch einmal folgendes:


[FTP-Files]
comment = FTP Ordner
path = /home/ftp
read only = no
valid users = @samba Mueller
force user = ftp
force group = samba
create mask = 540
directory mask = 550
force create mode = 020
force directory mode = 020

Also ich habs nicht getestet aber es müsste Dich ein ganzes Stück weiterbringen...

oafish

leider funtkioniert das auch nicht. Er braucht immer noch schreibberehtigung als User ftp. wenn man force user = ftp einstellt

oafish
26.02.03, 14:37
Dieser test-Ordner, stellt dies ein Verzeichnis dar das von einem User kopiert wurde oder besteht dies ständig?

Verschrieben:
force create mode = 520
force directory mode = 520

oafish

xmarvel
26.02.03, 14:51
Original geschrieben von oafish
Dieser test-Ordner, stellt dies ein Verzeichnis dar das von einem User kopiert wurde oder besteht dies ständig?


Nein das ist der Ordner der vom Samba User erstellt wurde. Dieses geht aber nur wenn ftp schreibrechte besitzt.

[/QUOTE] [/B]
Verschrieben:
force create mode = 520
force directory mode = 520

[/B][/QUOTE]

geht leider immer noch nicht

oafish
26.02.03, 15:07
Welche Rechte hat eigentlich der Ordner /home/ftp


Samba kann sich nicht über die Systemrechte hinwegsetzen. Setz die Berechtigung einmal auf 770

oafish

xmarvel
26.02.03, 15:19
Welche Rechte hat eigentlich der Ordner /home/ftp

die selben also:
r-xrwx--- ftp samba ftp


Samba kann sich nicht über die Systemrechte hinwegsetzen. Setz die Berechtigung einmal auf 770

von was jetzt bei create mask ? Oder direkt beim Verzeichniss /home/ftp ?

oafish
26.02.03, 15:39
Die von /home/ftp

oafish

xmarvel
26.02.03, 15:56
das ist natürlich nicht gut da ja der ftp benutzer über ftp ja auch schreiben kann. Das soll er ja eben nicht deswegen mache ich das ja alles ;)
Ich kann zwar wenn ich chmod 770 ein neuen Ordner erstellen wie mit den gewollten Rechten
r-xrwx--- ftp samba test-ordner
aber im test-ordner kann ich dann wieder nix reinschreiben. :ugly:

oafish
26.02.03, 17:07
Das kann nicht funktionieren. Es muss ja immer ein Benutzer eine Datei bzw. Ordner erstellen! Machs am besten über exec.

oafish

xmarvel
26.02.03, 17:12
Original geschrieben von oafish
Das kann nicht funktionieren. Es muss ja immer ein Benutzer eine Datei bzw. Ordner erstellen! Machs am besten über exec.

oafish

würde ich ja machen nur ich weiss nicht was ich da reinschreiben soll ? Ich weiss ja nicht wie die neu erzeugte Ordner/Datei heisst ?

oafish
26.02.03, 19:27
Kannst du mir sagen welchen tieferen Sinn Dein vorhaben hat? Sobald du du exec aufrufst, kannst du in diesen Ordner nichts mehr schreiben.Sag einfach mal was genau du machen willst!

oafish

xmarvel
26.02.03, 19:36
Original geschrieben von oafish
Kannst du mir sagen welchen tieferen Sinn Dein vorhaben hat? Sobald du du exec aufrufst, kannst du in diesen Ordner nichts mehr schreiben.Sag einfach mal was genau du machen willst!

oafish

na wie ich das mache weiss ich ja eben nicht :p
aber die Idee von mamue ist ja nicht schlecht wenn es geht. Nachdem ich die Datei erstellt habe anschließend ein Script aufrufe womit ich den Ordner per chown ein anderen Eigentümer gebe.
Aber ich weiss ja eben nicht wie ?

MfG
xmarvel

mamue
27.02.03, 07:37
Das wars, was ich meinte. Nur der angemeldete user darf schreiben, aber nicht der, dem es nachher gehören soll. Deswegen scheidet force user aus.
Entweder root postexec, cronjob oder sich in sambas vfs reinhängen, was eher aufwendig wird.


mamue

xmarvel
27.02.03, 10:46
@mamue
hab dich am Anfang schon verstanden. ;)
Hab das auch jetzt so gemacht meine Config sieht jetzt wie folgt aus:



[FTP-Files]
comment = FTP Ordner
path = /home/ftp
read only = No
create mask = 0570
force create mode = 0570
directory mask = 0570
force directory mode = 0570
root postexec = /bin/chown -R ftp.samba /home/ftp/*



Klappt soweit ganz gut denn wenn ich ein Ordner/Datei erstelle bekommt er die richtigen Berechtigung sowie der Eigentuemer wird ftp.
Man denkt jetzt würde alles klappen aber so ist es mal wieder nicht :mad:
Wenn ich ein Ordner erstelle kann ich es löschen und schreiben.
Wenn ich aber eine Datei erstelle kann ich es nicht löschen.

Irgendwie verwirft das meine ganzes Wissen über Linux Berechtigungen.
Denn die Datei hat folgende Berechtigung

-r-xrwx--- ftp samba Test-Datei

ich greife als Mueller darauf zu Mueller ist in der Gruppe samba und wieso kann ich jetzt die Datei nicht löschen ?
Nur weil ftp keine Schreibrechte beitzt ? Ist doch eigentlich völlig egal.

MFG
xmarvel

mamue
28.02.03, 12:31
Es mutet etwas komisch an, wenn der eigentümer weniger Rechte hat als die Gruppe, denn der Eigentümer kann das ändern.
Ich weiss nicht genau woran es liegen kann, aber wenn IIRC greifen die persönlicheen Rechte zuerst. Also wenn Du zur Gruppe gehörst, die nicht schreiben darf, aber world schon, dann kannst Du trotzdem nicht löschen.

mamue