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:
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