Forum: PC-Programmierung Linux: User soll nur einen Ordner per SSH einsehen können


von Jalian Ass (Gast)


Lesenswert?

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

von Dirk D. (dicky_d)


Lesenswert?

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?

von TestX (Gast)


Lesenswert?

keywords wären:

chroot, jails

wenn das nicht ausreicht musst du dich evtl mit AppArmor oder SElinux 
befassen

von (prx) A. K. (prx)


Lesenswert?

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
von Noch einer (Gast)


Lesenswert?

>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?

von Julian Ass (Gast)


Lesenswert?

Hm, es reicht, wenn Dateien lokal bearbeitet und dann hochgelegen werden 
können. Notepad++ mit Nppftp plug in ist da sehr komfortabel.

von Patrick (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.