Crumbforest Terminal Guide
Dieses Dokument erklärt die Nutzung und Konfiguration des Crumbforest-Terminals innerhalb des Docker-Setups.
Inhaltsverzeichnis
- Voraussetzungen
- Starten des Terminals
- Login-Menü
- Benutzerauswahl
- Editor (Nano) nutzen
- Mission starten
- Session-Wrapper verwenden
- Sudo-Konfiguration für Skripte
- Troubleshooting
1. Voraussetzungen
- Docker & Docker Compose installiert
- Repository geklont und im Projekt-Root
- Mindestens PHP 8.4 und Apache im Container
nano,bash,sudound 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
PATHkorrekt gesetzt ist. - Im Skript nutzt du:
bash exec bash --login -i - In jeder Session kannst du dann einfach
nano datei.txtausfü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 -iverwenden. mission: nicht eingeloggt: Immer per Wrapper (session_wrapper.sh) odersudostarten.- Tab-Completion fehlt:
~/.bashrcnicht eingelesen → siehe Login-Shell-Option.
Ende des Guides. Viel Spaß im Crumbforest! 🎉