# kde-4.8.1 konsole kmenuedit

## bookwood

Hallo zusammen,

erstmal Danke an das Gentoo Team für den KDE Update auf 4.8.1. Alles funktioniert auf den ersten Blick 1a, bis auf die Konsole im Zusammenspiel mit KDE. Ich habe seit KDE 3 ein ssh remote shell unter Programme mit dem KDE Menu Editor definiert. Der funktionierte bisher immer so das ich den Menueintrag angeklickt habe und eine Konsole mit ssh root@bla.blub.de geöffnet wurde. Das funktioniert seit meinem Letzten Update immer noch, das Fenster geht auf und ich habe eine SSH Verbindung zu einem Remote Rechner. 

Klicke ich aber jetzt in der Konsole unten links auf das "Mach ein neues Fenster auf " Knöpfchen, ging früher eine weitere Shell auf - mit einer ssh Verbindung. Jetzt geht nur ein Fenster mit einer local shell und ich bin auf meinem Lokalen Rechner statt auf meinem Remote System.

Ist das ein Bug oder ein neues KDE Feature? Weis evtl jemand wie ich das alte Verhalten einstelle. 

Besten Dank im Vorraus -

  Jochen

----------

## firefly

scheinbar hat sich da was verändert. (Ich selbst verwende konsole nicht)

Unter "Settings"->"Configure Current Profile" kann man wohl im "General" Tab einstellen welches program geöffnet werden soll, wenn ein neuer Tab(oder beim ersten start einer konsolen instanz) geöffnet werden soll.

Eventuell kann man das alte verhalten so wieder herstellen, indem man für die ssh verbindung eine eigenes profil erzeugt. Und dann beim starten von konsole das profil angibt was geladen werden soll.

----------

## franzf

Dieser Befehl wird aber leider nur einmalig beim Start mit diesem Profil ausgeführt, neue Unterfenster sind wieder lokale Shells.

So wie ich das sehe, wurde das alte Verhalten entfernt. Wäre einen Bugreport auf bugs.kde.org wert, wenn es dir wichtig ist.

----------

## bookwood

Es scheint so als ob ein Suse User dieses KDE feature als Bug empfindet und das clonen, des mit der -e option definierten Kommandos, entfernt wurde. 

https://bugs.kde.org/show_bug.cgi?id=184788

So ein Kernschrott - jetzt muss ich immer in einer shell "ssh user@host" tippen, anstatt direkt los zuarbeiten. Ich habe einen neuen BUG aufgemacht

https://bugs.kde.org/show_bug.cgi?id=297852

und werde mich die Tage dran machen ein ebuild mit einem clone antipatch zu bauen (sozusagen einen patch patch  :Smile:  ) Evtl. gibt es ja noch weitere Admin's die über dieses Feature so denken wie ich.

----------

## firefly

 *bookwood wrote:*   

> Es scheint so als ob ein Suse User dieses KDE feature als Bug empfindet und das clonen, des mit der -e option definierten Kommandos, entfernt wurde. 
> 
> https://bugs.kde.org/show_bug.cgi?id=184788
> 
> So ein Kernschrott - jetzt muss ich immer in einer shell "ssh user@host" tippen, anstatt direkt los zuarbeiten. Ich habe einen neuen BUG aufgemacht
> ...

 

wenn es jemand so eine funktionalität als bug ansieht und andere als gewünschte funktion, schreit das fast danach diese funktionalität optional zu aktivieren/deaktivieren

----------

## franzf

 *firefly wrote:*   

> wenn es jemand so eine funktionalität als bug ansieht und andere als gewünschte funktion, schreit das fast danach diese funktionalität optional zu aktivieren/deaktivieren

 

https://projects.kde.org/projects/kde/kde-baseapps/konsole/repository/revisions/56acddac933b96c10c782a918a419f6aaf4b2702

 :Smile: 

----------

## bookwood

Hey, ich bin nicht der einzige Admin auf der Welt   :Laughing: 

Trotzdem blöd das ich jetzt bis auf das erscheinen von KDE 4.9.0 warten muss. Ich versuche es morgen mal mit 'nem einfachen Downgrade der Konsole - vielleicht klappt es ja - sonst bleibt mir ja noch der Antipatch. Es ist halt schade wenn gute Funktionen von KDE einfach weg programmiert werden - ich erinnere mich noch an die alten Zeiten wo die Konsole noch Drucken konnte. 

In dem Sinne   :Very Happy: 

----------

## franzf

Das ist der Patch 1:1 auf konsole-4.8.1 übertragen:

```
--- desktop/konsoleui.rc.org   2012-04-11 08:54:11.456297912 +0200

+++ desktop/konsoleui.rc   2012-04-11 08:54:16.598298259 +0200

@@ -5,6 +5,8 @@

         <Menu name="file"><text>File</text>

             <Action name="new-window"/>

             <Action name="new-tab"/>

+            <Action name="clone-tab"/>

+            <Separator/>

             <DefineGroup name="session-tab-operations"/>

             <!-- <Action name="remote-connection"/> !-->

             <Separator/>

--- src/MainWindow.cpp.org   2012-04-11 08:47:07.771265907 +0200

+++ src/MainWindow.cpp   2012-04-11 08:58:56.489319378 +0200

@@ -257,6 +257,13 @@

     _newTabMenuAction->setAutoRepeat( false );

     connect(_newTabMenuAction, SIGNAL(triggered()), this, SLOT(newTab()));

     collection->addAction("new-tab", _newTabMenuAction);

+    

+    action = collection->addAction("clone-tab");

+    action->setIcon( KIcon("tab-duplicate") );

+    action->setText( i18n("&Clone Tab") );

+    action->setShortcut( QKeySequence() );

+    action->setAutoRepeat( false );

+    connect( action , SIGNAL(triggered()) , this , SLOT(cloneTab()) );

 

     action = collection->addAction("new-window");

     action->setIcon( KIcon("window-new") );

@@ -401,6 +408,22 @@

     emit newSessionRequest(defaultProfile , activeSessionDir() , _viewManager);

 }

 

+void MainWindow::cloneTab()

+{

+    Q_ASSERT(_pluggedController);

+

+    Session* session = _pluggedController->session();

+    Profile::Ptr profile = SessionManager::instance()->sessionProfile(session);

+    if ( profile) {

+        emit newSessionRequest( profile , activeSessionDir() , _viewManager);

+    }

+    else {

+        // something must be wrong: every session should be associated with profile

+        Q_ASSERT(false);

+        newTab();

+    }

+}

+

 void MainWindow::newWindow()

 {

     Profile::Ptr defaultProfile = SessionManager::instance()->defaultProfile();

--- src/MainWindow.h.org   2012-04-11 08:47:16.027266526 +0200

+++ src/MainWindow.h   2012-04-11 08:48:22.636271553 +0200

@@ -159,6 +159,7 @@

 

     private slots:

         void newTab();

+        void cloneTab();

         void newWindow();

         void showManageProfilesDialog();

         void activateMenuBar();

@@ -198,6 +199,7 @@

         BookmarkHandler* _bookmarkHandler;

         KToggleAction* _toggleMenuBarAction;

         KActionMenu* _newTabMenuAction;

+        KActionMenu* _cloneTabMenuAction;

 

         QPointer<SessionController> _pluggedController;

 

```

ACHTUNG, UNGETESTET! Ich hab 4.8.2 am Laufen. Aber es wird nichts verwendet, was es in 4.8.1 nicht schon gäbe, von dem her sollte es funktionieren  :Smile: 

----------

## schmidicom

Aber ist das nicht auch ein Sicherheitsloch wenn die Konsole den Befehl aus "-e" jederzeit klonen kann?

Denn um den Befehl klonen zu können muss dieser doch im Speicher gehalten werden oder?

Und wenn darin dann ein Passwort oder andere relevante Informationen enthalten sind ist das vielleicht nicht so toll.

----------

## bookwood

@Franzf

Danke, probiere ich gleich mal aus

@schmidicom

 *schmidicom wrote:*   

> Aber ist das nicht auch ein Sicherheitsloch wenn die Konsole den Befehl aus "-e" jederzeit klonen kann?
> 
> Denn um den Befehl klonen zu können muss dieser doch im Speicher gehalten werden oder?
> 
> Und wenn darin dann ein Passwort oder andere relevante Informationen enthalten sind ist das vielleicht nicht so toll.

 

Es soll ein normales Kommando übergeben werden wie z.B htop, mc oder wie in meinem Falle "ssh user@host", keine Passwörter oder andere sensiblen Daten. Ausserdem kannst Du Dir die Prozessliste ausgeben lassen - da steht eh die ganze Befehlszeile drin, egal ob Du den Tab Klonst oder nicht.

Unter Unix können Prozesse nicht einfach so auf den Speicherbereich eines anderen Prozesses zugreifen - es sei denn es handelt sich um shared memory. Das gäbe sofort einen segmentation fault und der Prozess würde vom Kernel abgeschossen. Programme wie ssh-agent währen sonst viel zu gefährlich, den er hält z.B. das Password Deines Zertifikates im Speicher damit man beim Anmelden auf ein Remote System nicht immer das Passwort eingeben muss. 

http://de.wikipedia.org/wiki/Speicherschutz

http://de.wikipedia.org/wiki/Schutzverletzung

Wie man ein ssh login ohne Passwort umsetzt findest z.B. Du hier:

http://www.schlittermann.de/doc/ssh

----------

