PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit chrlogin



Reveller
19.06.06, 10:07
Schönen guten Tag zusammen.

Ich möchte einen user komplett in seinem Homedir einsperren und ihm nur bestimmte Programme zugänglich machen.
Hierzu bin ich nach der Anleitung von Scheck http://linux.robert-scheck.de/software/chroot/inhalt.php vorgegangen.

Doch leider schließt sich nun jede Console nach dem Login und wenn ich ein su- auf den neuen user mache, bekomme ich die Meldung:

kronos:~ # su - pinguin
-chrlogin: Could not chdir to new home directory /home/chroot/home/pinguin for user #9003:
No such file or directory
kronos:~ # l /home/chroot/home/
total 0
drwxr-xr-x 3 root root 72 Jun 18 07:51 ./
drwxr-xr-x 8 root root 192 Jun 18 07:53 ../
drwxr-xr-x 2 pinguin users 48 Jun 18 07:51 pinguin/


Kann mir das jemand erklären?

Ich danke euch.

caspartroy
19.06.06, 11:52
in der datei /home/chroot/etc/passwd muss als homeverzeichnis für pinguin /home/pinguin stehen

Reveller
19.06.06, 12:18
Der Inhalt meiner "normalen" passwd:

pinguin:x:9003:100::/home/chroot/home/pinguin:/usr/local/sbin/chrlogin

und der /home/chroot/etc/passwd

pinguin:x:9003:100::/home/pinguin:/bin/bash

Das soltle doch stimmen, oder ?

Reveller
21.06.06, 06:25
Hi.

Leider konnte ich das Problem bislang nicht lösen. Gibt es denn keine andere Lösung mit relativ wenig Aufwand einen user in sein homedir einzusperren und ihm nur ausgewählte Programme zur Verfügung zu stellen?

Und ja... google habe ich bereits gefragt.

Gruß

caspartroy
21.06.06, 11:23
eine idee (habs nicht ausprobiert):
beim login kann die bash befehle ausführen, z.B. auch chroot, den befehl trägt man z.b. in /home/pinguin/.bashrc ein.
allerdings ist chroot root vorbehalten, wie man das anderen usern ermöglicht, müsstest du noch rausfinden.
ausserdem müssen noch einige sicherheitsvorkehrungen getroffen werden, z.B. sollte exit ein logout verursachen und kein exit aus chroot, etc...
der chroot ordner sollte eine eigene partition haben usw

nightwish
29.08.06, 09:23
das beschriebene problem dürfte vermutlich dadurch entstehen, dass ein nscd (nameservice caching daemon) läuft, der die /etc/passwd cached - sprich, nach dem chrooten wird nicht nochmal die neue /etc/passwd abgefragt, sondern der bereits im cache befindliche Wert aus der systemweiten /etc/passwd verwendet.

Lösung:

in der Datei /etc/nscd.conf folgende Einträge setzen/ändern:

enable-cache passwd no
enable-cache group no

Danach den nscd restarten und nun sollte chrlogin auch in der vorgesehenen Art und Weise laufen :)