Hallo, Ich versuche gerade, einen kleinen Embedded Rechner möglichst "anwenderfreundlich" im Sinne von "unkaputtbar" einzurichten. Es wird eine Datenerfassung, die vor allem von Studenten im Labor genutzt werden soll. Ziel ist, dass ein Nutzer sich per SSH bzw. SFTP einloggen kann, eine Parameterdatei ändern und später seine Messergebnisse auf dem gleichen weg herunterkopieren kann. Da es immer wieder "Experten" in den Praktika gibt, möchte ich sicher ausschließen, dass diese Spezies irgendeinen anderen Zugriff auf diesen Rechner bekommt. Also nicht auf andere Home-Verzeichnisse und schon garnicht auf sämtliche Systemdateien. Sein $HOME lesend und schreibend, und sonst nichts sehen, nichts können, nicht dürfen. Unter Debian Linux hatte ich mir das eigentlich ziemlich einfach vorgestellt. Zu meinem großen Erstaunen musste ich nun aber feststellen, dass es da kaum einen schnellen Weg zu Ziel gibt?! Es gibt viele Seiten/ Threads zum Thema, jedoch habe ich noch keine schöne Lösung finden können. Zumeist bleibt zumindest eine Lesezugriff auf die Systemdateien bestehe, was ich ebenfalls gerne blocken würde. Hat vielleicht schonmal jemand ein ähnliches Problem erfolgreich lösen können? Wäre für eure Hilfe sehr dankbar! Julian
Jalian Ass schrieb: > Unter Debian Linux hatte ich mir das eigentlich ziemlich einfach > vorgestellt. > Zu meinem großen Erstaunen musste ich nun aber feststellen, dass es da > kaum einen schnellen Weg zu Ziel gibt?! Du hast wahrscheinlich nicht mit den passenden keywords gesucht :) https://www.linode.com/docs/tools-reference/tools/limiting-access-with-sftp-jails-on-debian-and-ubuntu das macht, wenn ich dich richtig verstanden habe, genau das was du willst, oder?
keywords wären: chroot, jails wenn das nicht ausreicht musst du dich evtl mit AppArmor oder SElinux befassen
https://wiki.archlinux.org/index.php/SFTP-chroot Ich geh über die Gruppe und in gemeinsames Wurzelverzeichnis. Der Rest geht dann über die Einzelverzeichnisse der User darin, also Rechte rwx------ für diese. /etc/sshd_config:
1 | AllowGroups sftp |
2 | Subsystem sftp internal-sftp -l VERBOSE |
3 | |
4 | Match Group sftp |
5 | ChrootDirectory /srv/sftp |
6 | ForceCommand internal-sftp -l VERBOSE -u 63 |
7 | #dezimal 63 = oktal 77 |
/etc/rsyslog.conf:
1 | # Create an additional socket for some of the sshd chrooted users. |
2 | $AddUnixListenSocket /srv/sftp/dev/log |
3 | |
4 | # Log internal-sftp in a separate file |
5 | :programname, isequal, "internal-sftp" -/var/log/sftp.log |
6 | :programname, isequal, "internal-sftp" ~ |
drwxr-x--x 11 root root 4096 Jan 21 08:44 /srv/sftp drwxr-xr-x 2 root root 4096 Mar 23 16:54 /srv/sftp/dev/ drwx------ 2 sftp-test sftp 4096 Sep 19 2012 /srv/sftp/test
:
Bearbeitet durch User
>per SSH bzw. SFTP einloggen
Sollen nur Dateien übertragen werden, oder soll der Benutzer sich mit
einem Ssh-Client anmelden und auf dem Embedded Rechner eine Shell und
einen Editor bekommen?
Hm, es reicht, wenn Dateien lokal bearbeitet und dann hochgelegen werden können. Notepad++ mit Nppftp plug in ist da sehr komfortabel.
Jalian Ass schrieb: > Ziel ist, dass ein Nutzer sich per SSH bzw. SFTP einloggen kann, eine > Parameterdatei ändern und später seine Messergebnisse auf dem gleichen > weg herunterkopieren kann. ... > Sein $HOME lesend und schreibend, und sonst nichts sehen, nichts können, > nicht dürfen. Das widerspricht sich. Wenn er ausser $HOME lesen und schreiben nichts darf, kann er auch keine Datei ändern oder kopieren. Denn dafür bräuchte er Ausführrechte für die entsprechenden Programme. Ansonsten nimm ihm einfach alle Rechte für alles, was er nicht darf. Was ist daran so schwer?
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.