Crumbforest Terminal Guide

Dieses Dokument erklärt die Nutzung und Konfiguration des Crumbforest-Terminals innerhalb des Docker-Setups.

Inhaltsverzeichnis

  1. Voraussetzungen
  2. Starten des Terminals
  3. Login-Menü
  4. Benutzerauswahl
  5. Editor (Nano) nutzen
  6. Mission starten
  7. Session-Wrapper verwenden
  8. Sudo-Konfiguration für Skripte
  9. Troubleshooting

1. Voraussetzungen

  • Docker & Docker Compose installiert
  • Repository geklont und im Projekt-Root
  • Mindestens PHP 8.4 und Apache im Container
  • nano, bash, sudo und weitere Tools im Image installiert (Dockerfile-Setup)

2. Starten des Terminals

Im Projekt-Verzeichnis:

# Container bauen und starten
docker-compose build
docker-compose up -d

# Shell im App-Container (Port 8080)
docker exec -it <app-container> bash --login -i

Zum Öffnen des webbasierten Terminal via ttyd (Port 7780) genügt im Browser:

http://localhost:7780

3. Login-Menü

Beim Start des Terminal-Skripts (/scripts/terminal_login.sh) erscheint:

🌟 Willkommen im Crumbforest Terminal!

1) 📝 Erste Mission starten
2) 🧪 Terminal erkunden
3) ❌ Beenden

4. Benutzerauswahl

Nach Auswahl von „Terminal erkunden“ wird mit login das interne Login aufgerufen:

🔑 Login extern in Arbeit
👤 Wähle Benutzer:
1) root
2) kruemel
3) jupiter
4) heimkind

Durch Eingabe der Nummer wechselt man direkt in die Home-Shell des entsprechenden Users.

5. Editor (Nano) nutzen

Nano ist im Image installiert (Pfad: /usr/bin/nano). Wichtig:

  • Shell immer als Login- und Interactive-Shell starten, damit PATH korrekt gesetzt ist.
  • Im Skript nutzt du:
    bash exec bash --login -i
  • In jeder Session kannst du dann einfach nano datei.txt ausführen.

6. Mission starten

Das Kommando mission hängt von geladenen Sitzungsdaten ab und verlangt ggf. Root-Rechte.

Variante A: Session-Wrapper direkt nutzen

/scripts/session_wrapper.sh /usr/local/bin/mission

Variante B: mission per sudo

sudo mission

Variante C: Menü-Option anpassen

In terminal_login.sh unter Punkt 1:

- /usr/local/bin/mission
+ exec /scripts/session_wrapper.sh /usr/local/bin/mission

7. Session-Wrapper verwenden

Der Wrapper lädt Auth-Daten und führt das Skript mit korrekten Rechten aus.

Pfad: /scripts/session_wrapper.sh

Beispiel:

/scripts/session_wrapper.sh /usr/local/bin/mission

8. Sudo-Konfiguration für Skripte

In der Dockerfile legst du fest:

RUN echo 'www-data ALL=(ALL) NOPASSWD: /scripts/create_linux_user.sh' > /etc/sudoers.d/crumbforest
RUN echo 'kruemel ALL=(ALL) NOPASSWD: /usr/local/bin/mission' >> /etc/sudoers.d/crumbforest

Dadurch dürfen die Benutzer die jeweiligen Skripte ohne Passwort ausführen.

9. Troubleshooting

  • Nano nicht gefunden: Shell nicht als Login/Interactive gestartet → exec bash --login -i verwenden.
  • mission: nicht eingeloggt: Immer per Wrapper (session_wrapper.sh) oder sudo starten.
  • Tab-Completion fehlt: ~/.bashrc nicht eingelesen → siehe Login-Shell-Option.

Ende des Guides. Viel Spaß im Crumbforest! 🎉