# [solved]Samba vs. Unix Rechte - Ich steh auf dem Schlauch...

## Dorsai!

Hallo,

Ich richte mir gerade einen kleinen Heimserver ein und war gerade dabei ein paar Sambafreigaben einzurichten.

Das erste Problem habe ich bei meinem rTorrent Daemon. Dieser lädt die Dateien herunter und erstellt sie mit sich selbst (rtorrent:rtorrent) als User und Gruppe mit den rechten "rw-r--r--". Dien Downloadordner möchte ich freigeben.

Ich bräuchte da aber mit meinem Standardnutzer Schreibrechte in dem Ordner. Die kann ich in Samba einrichten, aber das hilft mir ja nicht viel, weil die Unix Rechte mich ohnehin nicht schreiben lassen. Ich könnte natürlich meinen Nutzer der Gruppe rtorrent hinzufügen, aber dann hab ich immernoch  das Problem, das die Gruppe nicht schreiben darf.

Oder ist es irgendwie möglich wie bei den NTFS Rechten eine Vererbung nach unten in der Verzeichnisstruktur einzurichten, also dass alle neu erstellten Dateien der Gruppe das Schreiben erlauben. Bei Samba ist so etwas ja auch möglich mit create mask und directory mask(, wenn ich mich nicht täusche).

Oder gibt es irgendeine Möglichkeit alle Samba Zugriffe über den rtorrent user laufen zu lassen, so dass man alle Rechte alleine mit den Samba Rechten bestimmen kann? Das wäre zwar nicht die eleganteste Lösung aber Sicherheit spielt eh nur eine Untergeordnete Rolle.

Was kann ich in diesem Fall noch machen?

Sowas muss doch irgendwie möglich sein. Wahrscheinlich ist es ganz einfach und ich stehe gerade nur auf dem Schlauch.

Dummerweise setzen alle Samba FAQs voraus, dass der Admin die Unix Rechte der Freigegeben Ordner selbst verwaltet. Dass ich mich jedesmal mit SSH einlogge und die Rechte ändere kommt logischerweise nicht in Frage. Da kann ich ja gleich scp benutzen.

Ich hoffe irgendjemand kann mich aus dieser Zwickmühle befreien.Last edited by Dorsai! on Mon Jun 01, 2009 7:25 pm; edited 2 times in total

----------

## Max Steel

man kann samba in der smb.conf folgende Einträge geben:

```
[global]

   unix password sync = Yes

   passwd program = /usr/sbin/chpasswd %u

[...stuff...]

[torrents]

   comment = rtorrentshare

   path = /path/to/share1

   create mask = 0640

   directory mask = 0750

   valid users = rtorrent,user1,user2,user3,shenlong

   write list = rtorrent,user1,shenlong

   guest account = no

   guest ok = no

   browseable = yes

   printable = no

[share2]

   comment = share2

   path = /path/to/share2

   create mask = 0640

   directory mask = 0750

   valid users = user1,shenlong

   guest account = no

   guest ok = no

   browseable = yes

   writeable = yes

   printable = no

[...more-stuff...]
```

das valid users bedeutet dann eben welche User drauf dürfen und in Verbindung mit writeable ob diese auch schreiben dürfen, "write list"-user dürfen schreiben, wenn writeable nicht gesetzt ist.

So erklär ich mir das aus meinem Beispiel, läuft hier auch so.

----------

## Dorsai!

Das Problem ist, dass Samba Die Nutzer 1:1 auf die Dateirechte überträgt.

Das heißt wenn user "dorsai" sich in Samba mit Schreibzugriff in Samba anmeldet, muss er auch der lokale user mit dem selben Namen Schreibzugriff auf das entsprechende Verzeichnis haben. Normalerweise umgehe ich sowas immer mit "chmod 777" oder ich stecke alle user die schreiben sollen in eine Gruppe und mache "chmod 775" aber in diesem Fall geht das nicht, da ich die Ordner nicht selbst erstelle sondern rTorrent. Und rTorrent erstellt sie mit "755"-Rechten. Und somit darf niemand anderes als der rtorrent User schreiben.

PS: Kannst du mal nach schaun welche Rechte die entsprechenden Daten bei dir haben?

----------

## Max Steel

Hmmm stimmt, hier sind die Rechte user1:users rwxrwxrwx

bzw. user1:users rwxrwxr-x

Und alle user sind in der Gruppe users

Wenn das so ist dann stimmt es natürlich was du sagst.

Mal so gefragt kannst du ihm nicht als mountoption in der fstab noch dmask und fmask zugeben? Oder gibt es diese nur für fat u. ntfs.

oder ist rtorrent wirklich so "blöd" und gibt dir keine Möglichkeit der Einstellung der Dateirechte.

Naja wie dem auch sei... Dieses Problem hatte ich auch mal mit p2p und amule.

Allerdings lief das über eine fat Partition wodurch ich die fstab dementsprechend angepasst hab.

----------

## ChrisJumper

Mit umask könntest du halt bestimmen mit welchen (Unix)rechten neue Dateien/Ordner in einem Verzeichnis angelegt werden.

Aber wieso machst du es dir so kompliziert? Ich würde es einfach so versuchen das "etwas" die fertigen Dateien in ein anderes Verzeichnis kopiert/verschiebt, das dann geshared wird. Dann brauchst du nur ein Script das prüft ob Dateien fertig sind und bei bedarf verschiebt und die Dateirechte umbenennt. Oder haben deine Teilhaber (windows-clients) Interesse an den Torrent-Teilstücken?

Und nicht versuchen bei rtorrent die Benutzerrechte zu ändern. Hat bestimmt einen Grund  das er nicht als user läuft ;)

----------

## Dorsai!

 *ChrisJumper wrote:*   

> Mit umask könntest du halt bestimmen mit welchen (Unix)rechten neue Dateien/Ordner in einem Verzeichnis angelegt werden.

 

Daran hab ich auch schon gedacht. Allerdings arbeitet umask so, dass es immer nur rechte entfernen kann, aber keine addieren.

 *ChrisJumper wrote:*   

> Aber wieso machst du es dir so kompliziert? Ich würde es einfach so versuchen das "etwas" die fertigen Dateien in ein anderes Verzeichnis kopiert/verschiebt, das dann geshared wird. Dann brauchst du nur ein Script das prüft ob Dateien fertig sind und bei bedarf verschiebt und die Dateirechte umbenennt. Oder haben deine Teilhaber (windows-clients) Interesse an den Torrent-Teilstücken?

 

Ich müsste nicht einmal verschieben, ich bräuchte blos ein Script, dass alle neuen Dateien sofort chmoddet. Fürs verschieben (was noch besser wäre) müsste ich aber dann von rtorrent ein signal bekommen, wann eine Datei fertig ist, und dann müsste ich rtorrent irgendwie über den neuen Aufenthalt informieren, da es sonst anfangen würde die Datei erneut herunterzuladen. Ist also alles nicht so einfach.

Aber irgendwie sagt mir das auch nicht zu. Ich bin kein Fan von in schleifen laufenden Scripten. Wenn dann müsste ich das als chron job machen.

 *ChrisJumper wrote:*   

> Und nicht versuchen bei rtorrent die Benutzerrechte zu ändern. Hat bestimmt einen Grund  das er nicht als user läuft 

 

Den Nutzer musste man nach der Installation erst einstellen. So gesehen könnte ich ihn auch "dorsai" nennen, aber irgendwie behagt es mir nicht, den rtorrent mit meinem default Nutzer zu starten.

Gibt es denn keine wirklich saubere Lösung für sowas?

----------

## Dorsai!

Habs nun hinbekommen.

Samba hat ACL Unterstützung, und somit kann man mit dem setfacl Befehl default-Rechte für verschiedene Benutzer anbringen.

Das ist die elegante Lösung nach der ich die ganze Zeit gesucht habe. Läuft so perfekt, dass es kaum zu glauben ist.

Ich kann die ACLs sogar auf der anderen Seite des Sambashares mit getfacl auslesen.

----------

