Archiv verlassen und diese Seite im Standarddesign anzeigen : Samba automatisches verändern der Berechtigung
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
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.
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.
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
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
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
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
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
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
Welche Rechte hat eigentlich der Ordner /home/ftp
Samba kann sich nicht über die Systemrechte hinwegsetzen. Setz die Berechtigung einmal auf 770
oafish
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 ?
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:
Das kann nicht funktionieren. Es muss ja immer ein Benutzer eine Datei bzw. Ordner erstellen! Machs am besten über exec.
oafish
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 ?
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
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
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
@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
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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.