Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Fehlermeldung beim Aufrufen von Midnight Commander

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
caracenos
Newbie
Newbie
Beiträge: 6
Registriert: 14. Nov 2004, 17:21

Fehlermeldung beim Aufrufen von Midnight Commander

Beitrag von caracenos »

Hallo in die Runde,

wenn ich den mc mit meinem Usernamen aufrufe, ist alles in Ordnung. Sobald ich aber mit su den mc aufrufen will, erscheint er zwar und ich kann ihn auch bedienen, jedoch erhalte ich folgende Fehlermeldung:

"# mcedit
Xlib: connection to ":0.0" refused by server
Xlib: Invalid XDM-AUTHORIZATION-1 key (failed key comparison)"

Da offensichtlich alles funktioniert, kann ich die Fehlermeldung einfach ignorieren?

Aufgefallen ist mir diese Warnung beim Versuch eine .netrc zu erstellen. Sie läßt sich zwar einrichten, jedoch beim ftp-Aufruf wird sie wohl nicht herangezogen, denn ich muss weiterhin loginnamen und password eingeben. Tippfehler schließe ich aus, da mehrmals überprüft und bei manueller Eingabe funktioniert es ja auch. - Aber wahrscheinlich ist dies eine andere Frage und ich sollte sie in einem anderen Forum stellen :-)

Würde mich freuen, wenn mir jemand auf die Sprünge helfen könnte.

Liebe Grüße
C.
gaw
Hacker
Hacker
Beiträge: 464
Registriert: 28. Sep 2004, 16:33

Beitrag von gaw »

Eigentlich ist es ein Skarileg in einem Linux Konsole Forum den mc überhaupt zu erwähnen, insbesondere da heutige shells wesentlich mächtiger sind als ein Fake des Norton Commander aus seligen DOS-Zeiten.
Das Problem was du schilderst hat aber vermutlich nichts mit dem Dateimanager zu tun, der mit verschiedenen Compiler für diverse MODULA Implementierungen um den Befehlsnamen konkurriert, ansonsten könnte ich dir kaum antworten, da ich den mc nicht benutze.

Dein Problem beschreibt die Berechtigung wenn du auf der Konsole unter root-Rechten arbeitest ein x-Programm zu starten. ich nehme an in dem Moment in dem der mc unter root-Rechten auf X zugreift kommt es zu den Fehlermeldungen. Dein laufender X-Server unter den Benutzerrechten des Users unter dem du dich eingeloggt hast erlaubt nicht das andere User auf ihn zugreifen. Dass lässt sich einstellen, ist aber anhängig von der SuSE-Distribution die du benutzt.

Leider ändern die Entwickler der SuSE-Distribution bei manchen neuen Distribution den Authentifizierungsmechanismus ein wenig. Du kannst das mit xterm testen. Öffne eine Konsole und gib xterm ein, dann öffnet sich ein xterm auf dem windowmanager.
Melde dich als su an und gibst wieder su ein, dann erhältst du eine Fehlermeldung. Um trotzdem unter X als root arbeiten zu können reichte bis zur 9.0 folgende Befehlssequenz:
otto@maschine:~>xhost localhost
su
password:*******
maschine:/home/otto#>mc

Damit erlaubt der User otto, das andere Benutzer (eben auch root) local auf den X-Server zugreifen dürfen. Anschließend kannst du als root X-Programme starten. Unter 9.1 haben die SuSE-Entwickler diese schnelle Lösung abgestellt und ihr eigenes Programm sux vorgestellt mit den ein User X Programme von der Konsole aus starten soll. (Ein Schelm wer böse Absichten bei solchen Nickelichkeiten vermutet, etwa um sux zu etablieren und sich damit von anderen Distrubutionen abzusetzen.....). Auf jeden Fall existiert immer eine Möglichkeit, wie bei allen anderen SuSE-Distributionen vorher auch, den vorherigen Zustand wieder herzustellen. Damit also xhost +localhost unter 9.1 funktioniert muss in
/etc/sysconfig/displaymanager
die Variable die den Port 6000 öffnet freigeschaltet werden:

Code: Alles auswählen

 DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN="yes" 
Wenn du dich nicht mit einem xdm, gdm oder kdm direkt auf X einloggst sondern klassisch auf einer Konsole und dann mit startx den X-Server startest darfts du zudem nicht vergessen die Datei .xserverinit in dein Home-Verzeichnis zu kopieren.

Eine andere Möglichkeit besteht darin mit xauth den Benutzer root anzumelden. Das ganze ist sicherer als xhost +localhost und funktioniert so:
otto@maschine:~>xauth extract keyfile $DISPLAY
otto@maschine:~>su
password:
machine:/home/otto # xauth merge /home/otto/keyfile
machine:/home/otto # export $DISPLAY=:0.0
machine:/home/otto # mc
Wenn dann der mc X-Programme starten will, sollte es funktionieren.

mfG
gaw
Benutzeravatar
Martin Breidenbach
Ultimate Guru
Ultimate Guru
Beiträge: 5632
Registriert: 26. Mai 2004, 21:33
Wohnort: N 50.17599° E 8.73367°

Beitrag von Martin Breidenbach »

gaw hat geschrieben:Eigentlich ist es ein Skarileg in einem Linux Konsole Forum den mc überhaupt zu erwähnen, insbesondere da heutige shells wesentlich mächtiger sind als ein Fake des Norton Commander aus seligen DOS-Zeiten.
AUA. Da hast Du jetzt aber eines meiner Lieblingstools schwer beleidigt ;)

Ich stamme ja selber aus seligen DOS-Zeiten.

Ich habe vor laaanger Zeit mal einen kurzen Ausflug ins Import/Export-Geschäft gemacht aber mit Modula konnte ich mich einfach nicht anfreunden.
Nicht Böse sein ! Der Onkel macht doch nur Spaß !
caracenos
Newbie
Newbie
Beiträge: 6
Registriert: 14. Nov 2004, 17:21

Fehlermeldung beim Aufrufen von Midnight Commander

Beitrag von caracenos »

Hallo,

tja, als Neuling hat man es schwer - mal findet man nicht das richtige Forum, mal stellt man die falschen Fragen ;-)

Aber meine benutzte Suseversion (9.1) hätte ich schon mitteilen können. Da muss sich mir noch etwas Disziplin angewöhnen.
gaw hat geschrieben: Eine andere Möglichkeit besteht darin mit xauth den Benutzer root anzumelden. Das ganze ist sicherer als xhost +localhost und funktioniert so:
otto@maschine:~>xauth extract keyfile $DISPLAY
otto@maschine:~>su
password:
machine:/home/otto # xauth merge /home/otto/keyfile
machine:/home/otto # export $DISPLAY=:0.0
machine:/home/otto # mc
Diese Möglichkeit habe ich gewählt und einige interessante Meldungen erhalten:
caracenos@linux:~> xterm
caracenos@linux:~> xauth extract keyfile $DISPLAY
caracenos@linux:~> su
Password:
linux:/home/caracenos # xauth merge /home/caracenos/keyfile
linux:/home/caracenos # export $DISPLAY=:0.0
bash: export: `:0.0=:0.0': not a valid identifier
linux:/home/caracenos # mc

Dann habe ich unter dem root-Fenster nochmals probiert und zweimal verschwand das Root-Befehlsfenster und ich erhielt ungefähr so eine Meldung (Sitzung root beendet mit Konsole 1). Genau weiß ich es nicht mehr, da auch dieses Fenster nach kurzer Zeit verschwand. Beim dritten Versuch wurde meinem Wunsch entsprochen, den mc zu öffnen und ich erhielt auch keine Fehlermeldung mehr. Das habe ich nun ein einige Mal probiert und es funktioniert einwandfrei.

Jetzt aber nochmals die Frage: Kann ich die Meldungen des bash.... not a valid identifier und die root-Beendigungsmeldung gefahrlos ignorieren?

Herzlichen Dank für die Hilfe

C

mfG
gaw
gaw
Hacker
Hacker
Beiträge: 464
Registriert: 28. Sep 2004, 16:33

Beitrag von gaw »

Die Meldung
bash: export: `:0.0=:0.0': not a valid identifier
erhältst du wahrscheinlich deshalb, weil du ein Leerzeichen zuviel eingegeben hast.
Beispiel:

falsch!
export $DISPLAY =:0.0
statt
richtig!
export $DISPLAY=:0.0
Die Fehlermeldung zeigt dir, dass du etwas eingegeben hast mit dem die bash nichts anfangen kann.

Das Leerzeichen dient der bash als Trennzeichen (solange man ihr kein anderes gibt, steht in älteren Kommandoshells in der Umgebungsvariabeln IFS, wird in neueren Shells aus Sicherheitsgründen bei jedem Befehl automatisch auf space gesetzt). Daher sollte man sie nicht willkürlich in seinen Kommandozeilen verstreuen. Sie trennen Befehlsnamen von Optionen, und Parametern. Zuweisungen erfolgen stets ohne Leerzeichen nach dem Schema:
Variable=Wert


mfg
gaw
Zuletzt geändert von gaw am 21. Nov 2004, 18:38, insgesamt 1-mal geändert.
gaw
Hacker
Hacker
Beiträge: 464
Registriert: 28. Sep 2004, 16:33

Beitrag von gaw »

Martin Breidenbach hat geschrieben:
gaw hat geschrieben:Eigentlich ist es ein Skarileg in einem Linux Konsole Forum den mc überhaupt zu erwähnen, insbesondere da heutige shells wesentlich mächtiger sind als ein Fake des Norton Commander aus seligen DOS-Zeiten.
AUA. Da hast Du jetzt aber eines meiner Lieblingstools schwer beleidigt ;)

Ich stamme ja selber aus seligen DOS-Zeiten.

Ich habe vor laaanger Zeit mal einen kurzen Ausflug ins Import/Export-Geschäft gemacht aber mit Modula konnte ich mich einfach nicht anfreunden.
Ich arbeite eigentlich selten mit Modula. Ich hab nur einmal einem Professor einer Universität eine Linux-Maschine eingerichtet, der viel mit Modula arbeitete. Als ich dann modula starten wollte wurde es Nacht, genauer midnight. Den mc alias midnight commander nannte ich dann um in

Code: Alles auswählen

mc_very_old_data_file_manager_with_no_sense_on_this_machine 
und hatte nie wieder Probleme mit Namenskollisionen......;-)

mfg
gaw
Benutzeravatar
Martin Breidenbach
Ultimate Guru
Ultimate Guru
Beiträge: 5632
Registriert: 26. Mai 2004, 21:33
Wohnort: N 50.17599° E 8.73367°

Beitrag von Martin Breidenbach »

gaw hat geschrieben:mc_very_old_data_file_manager_with_no_sense_on_this_machine
Ich hasse Dich :lol:
Nicht Böse sein ! Der Onkel macht doch nur Spaß !
gaw
Hacker
Hacker
Beiträge: 464
Registriert: 28. Sep 2004, 16:33

Beitrag von gaw »

Also dass halte ich für übertrieben, das Linux System so umzustricken, dass ich den mc als "Ich hasse dich" laufen lassen kann......;)


mfG
gaw
towo
Moderator
Moderator
Beiträge: 3726
Registriert: 15. Feb 2004, 16:42
Wohnort: Nimritz
Kontaktdaten:

Beitrag von towo »

Bei SuSE reicht ein sux zum switchen, dann kommt auch die Meldung nicht mehr!
Signatur nach Diktat spazieren gegangen

Bild
gaw
Hacker
Hacker
Beiträge: 464
Registriert: 28. Sep 2004, 16:33

Beitrag von gaw »

Das steht oben schon was ich davon halte.

mfG
gaw
wbast
Newbie
Newbie
Beiträge: 17
Registriert: 13. Jul 2004, 12:53
Wohnort: Saarbrücken

Beitrag von wbast »

gaw hat geschrieben:Die Meldung
bash: export: `:0.0=:0.0': not a valid identifier
erhältst du wahrscheinlich deshalb, weil du ein Leerzeichen zuviel eingegeben hast.
Beispiel:

falsch!
export $DISPLAY =:0.0
statt
richtig!
export $DISPLAY=:0.0
Die Fehlermeldung zeigt dir, dass du etwas eingegeben hast mit dem die bash nichts anfangen kann.
Netter Versuch aber leider total daneben
statt :
export $DISPLAY=xyz
sollte er lieber:
export DISPLAY=xyz
die Bash geht nämlich noch vor 'export ' über die Befehlszeile
und ersetzt gnadenlos $DISPLAY mit dem was in $DISPLAY steht.
in diesem Falle ':0.0'. D.h. der export-Befehl sieht folgendes:
export :0.0=:0.0 und das ist ja wohl nicht das was der Vorposter haben wollte. Deshalb merken:
export nie in $.;-)
Antworten