Hallo zusammen,
ich kämpf mich schon eine Weikle durch die Rechtevergabe von Usern und Gruppen, bin aber auf ein Problem gestoßen, zu dem ich irgendwie nirgendwo einen brauchbaren Tipp finde.
Problem:
Ich habe einen neuen _User angelegt und ihm ein _home-Verzeichnis zugeordnet. Das funktioniert soweit auch.
Wenn ich mich mit diesem Benutzer über SSH auf den Server verbinde, lande ich im vorgegebenenn _home-Verzeichnis (/home/user/) aber ich kann trotzdem in alle andere Verzeichnisse wechseln. Also mit cd.. bin ich in /home/ und von dort aus könne ich weiter in alle anderen Verzeichnisse.
Frage:
Wie kann ich es bewerkstelligen, dass dieser _user sich ausschließlich innerhalb seines eigenen _home-Verzeichnis bewegen kann?
Lieben Gruß
Anna
Rechtevergabe für USer
Das ist kompliziert, weil der Benutzer auch Leserechte auf /bin, /usr/lib usw. braucht, um mit dem SSH-Zugang überhaupt was sinnvolles anfangen zu können. Muss es ein Shell-Zugang sein oder reicht nicht auch SFTP?
Eine ziemlich sichere Methode so etwas zu implementieren ist ein chroot-Käfig. Das ist ein kompletter Verzeichnisbaum inklusive des /home-Verzeichnisses, nur für diesen Benutzer. Die erlaubten Programme in /bin, /usr/bin und die nötigen Libraries in /lib und /usr/lib werden per Hardlink aus dem ursprünglichen Baum geholt. Das Homeverzeichnis in dem Käfig enthält nur das Unterverzeichnis dieses einen Benutzers.
Die ssh unterstützt diese Konfigurationsart auch direkt. Eine Anleitung findest du hier: http://openbsd.maroufi.net/sshchroot.shtml Die muss für Linux noch leicht angepasst werden. Eine so simples Howto zu der Problematik für Linux hab ich leider nicht gefunden.
Janka
Eine ziemlich sichere Methode so etwas zu implementieren ist ein chroot-Käfig. Das ist ein kompletter Verzeichnisbaum inklusive des /home-Verzeichnisses, nur für diesen Benutzer. Die erlaubten Programme in /bin, /usr/bin und die nötigen Libraries in /lib und /usr/lib werden per Hardlink aus dem ursprünglichen Baum geholt. Das Homeverzeichnis in dem Käfig enthält nur das Unterverzeichnis dieses einen Benutzers.
Die ssh unterstützt diese Konfigurationsart auch direkt. Eine Anleitung findest du hier: http://openbsd.maroufi.net/sshchroot.shtml Die muss für Linux noch leicht angepasst werden. Eine so simples Howto zu der Problematik für Linux hab ich leider nicht gefunden.
Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
Ich mag die Schreie.
Q&D
Quick & Dirty, wenn auch nicht zu 100% sicher:
Mache
- in der /etc/passwd aus /bin/bash ein /bin/rbash
- lege mit root-Rechten im User-Home ein Ordner bin an und kopiere die Programme, welcher er ausführen darf, dort hinein.
- überschreibe als root seine PATH-Varibale, z.B. in der .bashrc, dass er nur die das angelegte bin-Verzeichnis als Suchpfad hat.
Gruß
sumsi
Mache
- in der /etc/passwd aus /bin/bash ein /bin/rbash
- lege mit root-Rechten im User-Home ein Ordner bin an und kopiere die Programme, welcher er ausführen darf, dort hinein.
- überschreibe als root seine PATH-Varibale, z.B. in der .bashrc, dass er nur die das angelegte bin-Verzeichnis als Suchpfad hat.
Gruß
sumsi
Die rbash wollte ich auch zuerst vorschlagen, allerdings ist das Ding für praktische Zwecke wenig geeignet
* "cd" ist komplett abgeschaltet, man kann also das Arbeitsverzeichnis gar nicht wechseln, auch nicht in Unterverzeichnisse.
* Es ist problemlos möglich, überall absolute Pfade anzugeben.
Janka
* "cd" ist komplett abgeschaltet, man kann also das Arbeitsverzeichnis gar nicht wechseln, auch nicht in Unterverzeichnisse.
* Es ist problemlos möglich, überall absolute Pfade anzugeben.
Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
Ich mag die Schreie.
scponly
Eine Lösung, welche aber ohne Shell daherkommt - also welche nur für den sicheren Dateitransfer ausgelegt wurde ist SCPonly.
Z.B.
http://www.picxl.de/scponly-chroot
Vielleicht genügt es?
sumsi
Z.B.
http://www.picxl.de/scponly-chroot
Vielleicht genügt es?
sumsi