Login
Newsletter
Mo, 29. September 2003, 22:40

Ein X11-Kommando als Root zwischendurch

Wer möchte nicht mal eben eine X-Anwendung lokal als Root ausführen.

Nur leider ist das immer richtig lästig, weil da immer einige Kommandos fällig sind:

xhost +localhost
su -
export DISPLAY=:0
xeyes :)

Oder auch:

ssh -X root@localhost

Nachdem mir das mittlerweile etwas lästig wird, habe ich mich an die wichtigste Administratorenpflicht (Faulheit) erinnert und ein kleines Programm geschrieben, das es etwas vereinfacht:

#!/usr/bin/perl

# Programmname: xrooted

use Tk;

Tk::CmdLine->SetArguments();

my $main = Tk::MainWindow->new(-title => "ROOTed");

my $cmd;
$entry=$main->Entry(-textvariable => \$cmd )->pack();
$entry->focus();

my $exit;
$main->bind('<Return>' => sub { $exit="execute"; $main->destroy();} );
$main->bind('<Escape>' => sub { $exit="cancelled"; $main->destroy();} );

MainLoop;

print $exit."\n";
if $exit eq "execute") {
 # Komischerweise ist DISPLAY nach ssh -X auf $HOSTNAME:10.0, deswegen der Umweg

 system('xhost +localhost');
 system('ssh -X root@localhost DISPLAY=:0.0 \;. /etc/profile \; '. "$cmd");
}

Dieses Skript schaltet als erstes den aktuellen X-Server für alle Benutzer von localhost frei. Danach wird eine SSH-Sitzung zum Benutzer root auf dem aktuellen Rechner hergestellt.

Wer das Ganze ohne Passworteingabe haben möchte, kann den öffentlichen Schlüssel des Benutzers zu den zugelasssenen Schlüsseln von root hinzufügen:

su -
Passwort:
cat ~MeinBenutzer/.ssh/id_dsa.pub >>.ssh/authorized_keys2

oder

cat ~MeinBenutzer/.ssh/id_rsa.pub >>.ssh/authorized_keys2

oder

cat ~MeinBenutzer/.ssh/identity.pub >>.ssh/authorized_keys

je nach Schlüsseltyp.

So, das Ganze kann aber noch angenehmer werden. Ich bin einer, der gerne unter KDE arbeitet, und eine Sache gefällt mir ganz gut: Die direkte Kommandoausführung mit Alt+F2. Also ist es doch ganz bequem, das genauso einzubinden. Da habe ich mal Alt+F3 genommen. Diese Kombination ist zwar schon belegt, aber ich habe sie noch nie gebraucht. Also einfach im KDE-Kontrollzentrum rausschmeissen.

Dann mit kmenuedit eine Verknüpfung irgendwo anlegen, wo dann etwa folgendes ausgeführt wird:

/usr/local/bin/xrooted --geometry 0x0+484+384

Die Option --geometry sorgt dafür, daß das Programm bei einer Auflösung von 1024x768 ungefähr in der Mitte erscheint. So, jetzt noch die Tastenkombination zuweisen, und fertig.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten