User im homeverzeichnis chrooten...

Hallo zusammen,

und zwar habe ich vor einem zweiten Linuxler sshzugang zu geben damit er seine gameserver starten kann. D.h. er muss in einen ordner 5 rein und z.B. ./7_gameserver -f gameserver.cfg z.b. ausführen können, sowie python nutzen können, mehr nicht. Mehr soll er auch nicht können. lshell kommt nicht in Frage da man damit offenbar keine Binärdateien ausführen kann.

Wie lässt sich das realisieren? Ich habe nur ziemlig veraltete Tutorials zu dem Thema chroot gefunden.

Wäre demjenigen unsagbar dankbar der mir ein brauchbares Tutorial zukommen lässt.

Es geht um Debian SID (ja sid :P)

MfG,
Alex
 
Du kannst in der sshd_config das chroot-Verzeichnis für Gruppen oder User festlegen.

Match Group Gruppe_deiner_User
ChrootDirectory %h

genaueres kannst du unter man sshd_config nachlesen.

Um welche Distribution geht es denn genau?
 
Auch wenn es evtl Overloadet ist, wenn er wirklich nur den einen Befehl ausführen ist auf der Shell. Kannst doch was hardgecodest Webseitenbasierendes nutzen.

Code:
<?php system("./7_gameserver -f gameserver.cfg");?>
 
Du kannst in der sshd_config das chroot-Verzeichnis für Gruppen oder User festlegen.

Match Group Gruppe_deiner_User
ChrootDirectory %h

genaueres kannst du unter man sshd_config nachlesen.

Um welche Distribution geht es denn genau?

Debian sid hab ich oben ergänzt (php5.5 etc.)

Match User user
ChrootDirectory /direkter/pfad
habe ich genutzt,
habe in /direkter/pfad/bin/ bash, python und ls gepackt und den lib ordner in /direkter/pfad/lib (32bit server)

Dennoch wird er sofort rausgekickt. Hmmm.
Habe ich vllt einen falschen shellpfad genutzt? habe einmal /bin/bash und einmal /direkter/pfad/bin/bash versucht, wobei ersteres bei einem chroot ja richtig sein dürfte?

Ich würde das ja eher über ein RBAC-System wie SELinux oder über ACLs lösen.

Ist vermutlich eine nette Sache, danke für den Denkanstoß, aber für einen einzigen weiteren User solchen Aufwand zu betreiben ist fragwürdig.

Auch wenn es evtl Overloadet ist, wenn er wirklich nur den einen Befehl ausführen ist auf der Shell. Kannst doch was hardgecodest Webseitenbasierendes nutzen.

Code:
<?php system("./7_gameserver -f gameserver.cfg");?>

Das würde gerade bei der Statusabfrage der Gameserver mehrere Minuten dauern, bei Python vielleicht eine millisekunde.

Danke für die vielen bisherigen Anregungen :).
Geht im generellen um einen Gameserverhost, der sich an meinen Servern finanziell beteiligt um da Gameserver, Website mit mysql(ist schon erledigt) und einen python masterserver(der die Gameserver nach last aufteilt, neustartet etc) laufen zu lassen.
 
Die Statusabfrage haben wir früher einfach geschaut ob der Prozess noch läuft (die PID legen ja die gängisten Webserver in einer datei ab), gleichzeitig per Socket geschaut ob noch eine Verbindung da ist, sollte auch nur paar Sekunden dauern und kann dann als "Server Status wird abgefragt" getan werden.

Wenn da bedarf steht schau ich mal alte Backups durch, mal schauen was sich da noch finden lässt :)
 
Wenn es einfach darum geht, dass er sich nicht so einfach durchs Dateisystem hangeln soll:

Code:
chmod 711 /
chmod 711 /home
chmod 711 /lib32
...
chmod 700 /root -R

711 = rwx--x--x

Mit x auf einem Ordner kann man ihn noch betreten und die Dateien direkt ansprechen, jedoch nicht auflisten.
 
Zurück
Oben