Hallo zusammen. Ich habe einen RasPi (den ersten) und möchte ihn als SFTP-Server und SAMBA-Server verwenden. Dazu habe ich mir die beiden Anleitungen angesehen: http://www.leib.be/sascha/2013/08/baking-a-raspberry-pi-1/ http://blog.self.li/post/64042036630/raspberry-pi-part-2-external-drives-samba-and Was ich dadurch hinbekommen habe: - Ich habe die 2 USB-Festplatten, auf denen die Daten abgelegt sind/abgelegt werden sollen, in der "/etc/fstab" eingetragen. Das hab ich mittels der UUID getan, damit es egal ist, welche ich wann wo anschließe (richtig?). Funktioniert soweit auch. - Ich habe ntfs und samba installiert und die beiden Platten in der "/etc/samba/smb.conf" eingetragen. Mit Windows finde ich den RasPi und kann auch auf die Laufwerke zugreifen. - Ich habe bei no-ip.com ein Konto angelegt, sodass ich eine feste Adresse habe und habe den Port 22 im Router für die IP des RasPi freigeschaltet. Ich kann über die interne IP, als auch über die Netzadresse mit SFTP auf die Platten zugreifen. Mein Problem/Meine Frage besteht jetzt darin: Wenn ich mich mit einen der beiden Konten anmelde, gelange ich Standardmäßig in den jeweiligen Benutzerordner in /home. Das möchte ich aber ändern, sodass man standardmäßig im /media-Ordner landet. Zusätzlich möchte ich, dass die beiden Nutzer nur den Inhalt von "media" sehen können. Momentan kann ich mit beiden Usern in jeden anderen Ordner. Zum Schluss soll ein Nutzer nur leserecht haben. Also: Nutzer a: Lese- und Schreibrecht im /media-Ordner Nutzer b: Nur Leserecht im /media-Ordner Nutzer a&b: Nach Anmeldung mittels SFTP im /media-Ordner landen und nichts anderes, außer dessen Unterordner (die HDDs), sehen können. Wie kann ich das realisieren? Ich kenne mich ein bisschen mit chmod aus, allerdings kein kleines Bisschen mit Linux. Wäre super, wenn mir jemand ein paar Befehle und/oder Wege nennen kann, sodass ich meine Anforderungen umgesetzt bekomme. Vielen Dank
Michael S. schrieb: > allerdings kein kleines Bisschen mit Linux. Schlechte Voraussetzung, denn Kenntnis in Linux ist genau das, was du hier haben solltest. Weniger was die Rechte von a und b angeht, das ist trivial. Eher mögliche Nebeneffekte wie ein sperrangelweit offenes System bei dir im lokalen Netz. Das anderen ermöglicht, den Rest dieses Netzes mal unter die Lupe zu nehmen. Und es wird nicht lange dauern, bis jemand in Sonstwo mal ausprobiert, was mit deinem offenen ssh-Port anzufangen ist. Kern des Problems: SFTP ist eine Teilfunktion von SSH und das kann ein wenig mehr, als du vielleicht gerne nach aussen freigeben willst. Man kann das kontrollieren, aber da wärs besser, wenn du selbst weiss was du tust, und nicht bloss blind abkupferst was jemand vorgemacht hat. Bis dahin würde ich dir dringend nahelegen, den Router-Port wieder dicht zu machen.
:
Bearbeitet durch User
Michael S. schrieb: > Ich habe einen RasPi (den ersten) und möchte ihn als SFTP-Server und > SAMBA-Server verwenden. Oh Wow. Da nimmst du ausgerechnet drei der größten Nachteile des RasPi (Langsames Netzwerk, schlechte Massenspeicheranbindung, wenig CPU-Leistung für Verschlüsselung) und willst sie zusammen in einer Anwendung vereinen. Und dann auch noch NTFS-formatierte Platten... Der Linux-NTFS-(fuse)-Treiber braucht mir schon auf einem um Größenordnungen schnelleren x64 viel zu viel CPU-Leistung. Naja, zum Ausprobieren wird's schon irgendwie gehen, erwarte nicht zuviel. Ok, zum Thema zurück: Die Benutzer verbinden sich per SSH. Du musst verhindern, dass sie über SSH eine shell bekommen/Port-Forwards/SOCKs-Proxies u.Ä. ein richten dürfen. Der Admin muss sich aber weiter einloggen dürfen. Also: reine Dateiserver-Benutzer in eine eigene Gruppe packen. in der /etc/ssh/sshd_config unten anfügen:
1 | # Die Zeile ist evtl. schon per default vorhanden: |
2 | Subsystem sftp internal-sftp |
3 | |
4 | # Hier natürlich deinen eigenen Gruppennamen angeben: |
5 | Match Group mediafiles |
6 | ChrootDirectory /media |
7 | ForceCommand internal-sftp |
8 | AllowTcpForwarding no |
Wenn du spezielle Umasks für die Dateien brauchst (z.B. wenn die von Benutzer A hochgeladenen Dateien per Default auch für B lesbar sein sollen) kannst du Parameter in der "ForceCommand"-Zeile angeben, z.B. "-u 0007" Falls sich die Nutzer per Public-Key einloggen können sollen, und der Key nicht gefunden wird, braucht's evtl. noch eine "AuthorizedKeysFile" - Option. Ansonsten schau mal die möglichen weiteren Config-Optionen im manual durch, evtl defaults kontrollieren: AllowAgentForwarding, X11Forwarding, PermitUserEnvironment, Compression, .. Alternative: ProFTPD hat ein SFTP-Modul, dann bist du von der OpenSSH unabhängig.
Planlos schrieb: > Die Benutzer verbinden sich per SSH. Du musst verhindern, dass sie über > SSH eine shell bekommen/Port-Forwards/SOCKs-Proxies u.Ä. ein richten > dürfen. Wobei ich mal annehme, dass er den RasPi selbst in einer SSH-Session bedient, oder sich zumindest die Option dazu offen halten sollte. Also stets in Gefahr läuft, sich bei dieser Bastelei am sshd den Teppich unter den Füssen wegzuziehen. Eine zweite sshd Instanz mit separater Konfiguration ausschliesslich für die SFTP Anwendung kann deshalb ratsam sein. Wenns denn unbedingt SFTP sein muss und nicht FTPS ausreicht.
:
Bearbeitet durch User
A. K. schrieb: > Wobei ich mal annehme, dass er den RasPi selbst in einer SSH-Session > bedient, oder sich zumindest die Option dazu offen halten sollte. Also > stets in Gefahr läuft, sich bei dieser Bastelei am sshd den Teppich > unter den Füssen wegzuziehen. Normalerweise kann man den sshd restarten, ohne das laufende Verbindungen unterbrochen werden. d.H. Solang man sein "root"-Putty-Fenster nicht zumacht, kann man eine kaputte ssh_config immer wieder geradebiegen. Sicherer ist es natürlich, wenn man zumindest in der Trial&Error-Phase eine zweite Login-Option zur Verfügung hat. A. K. schrieb: > Wenns denn unbedingt SFTP > sein muss und nicht FTPS ausreicht. FTPS ist in der Anwendung etwas ungünstig. FTPS hat dieselbe Trennung von Control&Daten-Streams wie normales FTP. Der TE hängt hinter NAT/dynamic DNS, vmlt DSL. Bei normalem FTP tun sich die NAT-Router/Firewalls schon schwer. Sie müssen den Control-Channel-Datenverkehr belauschen, um mitzukriegen wann/wie/wo eine Datenverbindung aufgebaut werden muss. (z.B. contrack_ftp - Modul im Linux-Netfilter) Bei FTPS ist belauschen nicht mehr möglich, da die Verbindung verschlüsselt ist. ==> FTPS hinter NAT ist sehr sehr frickelig einzurichten, man muss entweder große Lücken in die Firewall reißen und ganze Port-Bereiche durchwinken, oder man ist auf spezielle Protokoll-Erweiterungen angewiesen, die nicht jeder Client kann, oder ....
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.