Hallo,
ich schreibe gerade an einer (Login-)Shell, die User chrootet, wenn sie ein /./ in Pfad ihres Home-Verzeichnisses haben.
Funktioniert an und für sich schon ganz gut, es stören mich nur noch ein paar kleine Sachen.
Und zwar habe ich ein kleines Problem, wenn zwei User unterschiedliche Namen, aber gleiche uid haben und nur der eine gechrootet wird. Da ich mir nämlich den Login-Namen über getenv("USER") hole, kann der erste in das chroot des zweiten springen, wenn er USER umdefiniert. Es gibt IMO zwar nicht viele Fälle, wo man das ausnutzen kann, trotzdem möchte ich das gerne vermeiden.
Nun zur Frage: gibt eine Möglichkeit den Login-Namen außer über die Umgebungsvariable sicher zu bekommen oder o.g. Szenario anderweitig zu vermeiden?
Zweck des ganzen ist, den Usern beschränkten ssh-Zugriff zu gewähren. Ich weiß, dass es einen openssh-patch gibt, aber der funktioniert bei mir nicht richtig und gefällt mir auch nicht so.
Gibt es schon ein Programm, das sowas macht? Ich habe gesucht, aber bisher nichts gefunden.
Wenn jemand Interesse anmeldet schicke ich zum peer-Review auch gerne den ganzen Code.
Grüße
Frank Benkstein.
PS: Frohe Ostern.