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.