headcrash
Goto Top

Automatische Anmeldung als root (!) und abarbeitung von StartScript unter Ubuntu 8.10 Server

Hallo zusammen,
bevor die ersten Sicherheitsfragen angemäkelt werden möchte ich gleich klarstellen das mir die konsequenzen einer automatischen root anmeldung bewusst sind.
Die Installation des UbuntuServrs ist jeddoch dazu gedacht als LiveCD zu dienen (also als Werkzeug) hierfür ist es nicht erwünscht sich manuell anzumelden.

Da die im Startscript funktionen genutzt werden die root Rechte vorrausstzen ist es zudem zu automatisierungszwecken nötig das ganze per script zu lösen.
Meine Fragen im einzelnen:

- Wie ist es möglich direkt bei Systemstart als root eingelogt zu werden?
- Wo und wie ist ein script abzulegen welches nach der automatischen anmeldung ebenfalls automatisch startet
und ein choice (1ählen sie 1. oder 2.) ermöglicht?


Danke schonmal !

Headcrash

Content-Key: 107137

Url: https://administrator.de/contentid/107137

Printed on: April 25, 2024 at 00:04 o'clock

Member: theton
theton Jan 26, 2009 at 15:30:25 (UTC)
Goto Top
Hatte für sowas mal einen Workaround gemacht.

#include <unistd.h>

int main()
{
  execlp( "login", "login", "-f", "root", 0);  
  return 0;
}

Dieses kompilieren und z.B. in /usr/sbin ablegen. Danach die /etc/inittab bearbeiten und den Eintrag für tty1 ändern.

c1:2345:respawn:/sbin/agetty -n -l /usr/sbin/autologinroot 38400 vc/1 linux

Die Abarbeitung der Skripte kann man dann z.B. der /root/.bash_profile überlassen. agetty muss natürlich installiert sein. Theoretisch sollte es aber auch möglich sein das Programm direkt als Getty-Ersatz zu verwenden. Hab ich aber noch nicht ausprobiert.

Allerdings bleibt damit auf tty1 immer root eingeloggt. Das sollte zwar remote kein Problem sein, stellt aber ein Sicherheitsrisiko dar, wenn jemand physisch an den Server kommt, weil derjenige damit sofort eine Rootshell offen hat.
Member: headcrash
headcrash Jan 26, 2009 at 15:32:33 (UTC)
Goto Top
Was meinst du denn mit kompellieren? Das script ausführbar machen?


Sicherheitstechnisch wird keine Probleme geben - das sich der rechner nach barbeitung seiner Aufgaben onehin ausschalten soll!

Ich werds mal ausprobieren!

headcrash
Member: headcrash
headcrash Jan 28, 2009 at 12:50:59 (UTC)
Goto Top
Genrell müsste das doch auch irgendwie funktionieren wenn man beim start


sudo su -l
passwort *automatisch eingetragen*


eingibt oder?
wie würde sowas ablaufen?

headcrash
Member: theton
theton Jan 28, 2009 at 13:03:21 (UTC)
Goto Top
Mit 'expect' sollte sowas gehen.
Member: headcrash
headcrash Jan 28, 2009 at 15:45:36 (UTC)
Goto Top
könntest du dir auch vorstellen wie?

Headcrash
Member: theton
theton Jan 28, 2009 at 16:34:57 (UTC)
Goto Top
Du nutzt einfach die Autologin-Funktion der GUI, lässt dort automatisch ein Terminal starten und in diesem führst du z.B. über die .bash_profile des Users ein expect-Skript aus, das den sudo-Login (bzw. die Passwort-Eingabe dafür) durchführt. Die oben genannte Lösung dürfte aber vermutlich einfacher zu bewerkstelligen sein.
Member: headcrash
headcrash Jan 28, 2009 at 19:53:58 (UTC)
Goto Top
ok. Autologin mit gui wär kein problem - ich habe bei diesem Projekt aber keine Gui zur Verfügung (Ubuntu Server, ohne gui).

Nach der Lektüre der Manpage von expect würde ich auch sagen das die obere Lösung deutlich einfacher ist, habe aber noch zwei fragen.

1: was meinst du mit "Dieses kompilieren" - als was wohin?
2: unter Ubuntu existiert keine etc/inittab - wohin sollen die Änderungen dann?

Headcrash
Member: theton
theton Jan 28, 2009 at 20:06:17 (UTC)
Goto Top
Bei dem oben gezeigten Code, handelt es sich um C-Code. Dieser muss kompiliert werden. Also...

- den Code in einer Datei 'autologin.c' abspeichern
- auf der Konsole in den Ordner wechseln, in der die autologin.c liegt und 'gcc -o autologin autologin.c' aufrufen

Das daraus resultierende Binary 'autologin' kann dann als Getty-Ersatz verwendet werden.

Ubuntu benutzt Upstart anstatt des traditionellen Init-Systems. Die Konfigurationen für die Terminals finden sich daher in '/etc/event.d/tty*'.