• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

*.jar auf root-Ebene öffnen und enthaltene Datei bearbeiten

Miccovin

Member
Moin Forum,

folgendes Problem:
Ich will eine *.jar-Datei öffnen, eine dort drin enthaltene xul-Datei bearbeiten, dies abspeichern und die geänderte *.jar natürlich auch so geändert abspeichern.

*.jar ist ein zip-Format, also kann ich das mit Ark öffnen.
Die *.xul öffne ich von Ark aus mit einem Editor (Kate). Wenn ich Änderungen vornehme und diese abspeichern will - passiert .....NICHTS. Weder die xul noch die jar übernimmt irgendeine Änderung. es kommt auch keinerlei Fehlermeldung.

Konkret handelt es sich um folgende Datei:
/usr/lib/firefox/chrome/toolkit.jar

Richtig, dafür brauche ich root-Rechte, also öffne ich Konqueror als Admin und öffne darüber dann mit Ark die Datei. Brauche ich noch für das Öffnen mit Ark Admin-Rechte (und wenn, ja: wie geht das) oder wie kriegt man das sonst hin??

Gruss
Mic


OpenSuse 10.3 mit xfce
 

whois

Ultimate Guru
Hi

Hast du schon mal versucht im krusader root Modus bzw. Systemverwaltungsmodus das zu machen.

cu
 
OP
M

Miccovin

Member
Also ich hab den krusader dann mal installiert und über die Konsole als root ausgeführt.
Das Ergebnis ist aber genau das gleiche wie mit dem konqueror (was mich nicht weiter verwundert...), da ich dann halt über den Krusader die *.jar mit Ark öffne, ab da ist alles genauso, ich kann also nichts abspeichern. :?:
 

whois

Ultimate Guru
Hi

Du weisst aber schon das dies eine Java Datei ist?
Lies dir das mal bitte durch. :wink:

http://www.rz.uni-hohenheim.de/anw/programme/prg/java/tutorials/javainsel4/javainsel_25_002.htm

cu
 
OP
M

Miccovin

Member
nö, wusst ich nicht, aber unter WinXP war das auch nie ein Problem: jar mit WinRar öffnen, Datei bearbeiten, alles abspeichern, fertig. Nur hier unter Linux ist das so ein Krampf.

Ich habs jetzt aber dann doch hingekriegt, indem ich die jar entpackt, bearbeitet und wieder gepackt hab. Glaub ich. Danke.
 
OP
M

Miccovin

Member
Ja, Du bist mein Held :D - darfst mir aber gerne zeigen, wie ich das auf der Konsole mache, allerdings brauche ich dann jeden Befehl bis ins kleinste, da ich mich da Null auskenne.

Und wie gesagt: mit der XP-Gui ist es überhaupt kein Krampf gewesen. Nein, ich werde trotzdem bei Linux bleiben. :roll:
 

derMani

Hacker
Ohoh, hier sind noch einige Verständnisprobleme zu klären ;)

Sorry, aber das ganze ist nicht wirklich ein Krampf, sondern gehört zum Konzept des dahinter liegenden Sicherheitssystems!

Wie du schon richtig erkannt hast, musst du die Datei mit Root-Rechten bearbeiten.

Code:
rbe-linux:/usr/lib/firefox/chrome # ls -l toolkit.jar
-rw-r--r-- 1 root root 1889837 12. Feb 11:31 toolkit.jar

Daran kannst du erkennen, dass die Datei dem User root gehört und die Gruppenzugehörigkeit ebenfalls "root" ist.
Nur der User Root darf die datei Bearbeiten, der Rest darf die Datei nur lesend verwenden.

Das bedeutet, dass du als normaler User halt die Datei nicht verändern darfst. Unter Windows XP ist man standardmäßig mit Administratorrechten angemeldet, demzufolge hast du auch vollen Systemzugriff.
Adminrechte per Default sind aber der Hauptgrund warum XP so verwundbar ist gegenüber Angreifern / angreifenden Programmen. Relativ einfach kann das "feindlich" gesinnte Programm die sensiblen Administratorrechte erlangen, der Benutzer muss nur (unfreiwillig) das entsprechende Programm öffnen.

Wenn du unter Unix eine Systemdatei oder mit Root-Rechten versehene Datei bearbeiten möchtest, musst du dir erst eine Erlaubnis dafür verschaffen.

Dafür gibt es mehrere Möglichkeiten.

Drücke ALT+F2 und gib dort ein

Code:
kdesu ark

Damit wird Ark mit Root-Rechten gestartet. Kdesu führt das angegebene Programm nun mit Root-Rechten aus. Das funktioniert also eigentlich mit jedem Programm.

Du kannst das ganze auch über die Konsole erreichen. Starte entweder eine Systemverwaltungs-Konsole oder gib auf der Shell den Befehl

Code:
su

ein - dann bist du als root angemeldet.

Code:
ark /usr/lib/firefox/chrome/toolkit.jar

öffnet dir dann ebenfalls das Archiv mit Root-Rechten.

Denk dran, nach dem Arbeiten auf Konsole mit Root-Rechten solltest du stets die root-Umgebung durch den Befehl

Code:
exit

verlassen.

Hier gibt's mehr Infos

http://wiki.linux-club.de/opensuse/Root
 
OP
M

Miccovin

Member
Hallo derMani,

das was Du zu den root-Rechten erläutert hast, ist mir schon so in etwa klar. Halbwegs ;)

Ich glaube aber, das das Problem hier auf anderer Ebene liegt: Ich will über Ark ein anderes Programm (Editor) starten, mit dem dann die Datei bearbeitet werden soll, die sich im Archiv befindet und was ich alles nur als root bearbeiten darf. Bisher habe ich immer den Konqueror als root gestartet. Wenn ich nun mit diesem root-Konqueror die jar-Datei mit Ark öffne, scheint Ark keine root-Rechte zu haben, oder? Und wenn ich dann auch noch aus diesem mit zweifelhaften Rechten ausgestattetem Ark heraus eine xul-Datei mit einem Editor öffne, scheint dieser Editor noch viel weniger root-Rechte zu haben. Genau hier scheint das Problem zu liegen. Glaube ich jedenfalls...

Gruss
Mic
 

derMani

Hacker
Miccovin schrieb:
Wenn ich nun mit diesem root-Konqueror die jar-Datei mit Ark öffne, scheint Ark keine root-Rechte zu haben, oder?
Falsch.
Kannst du überprüfen mit

Code:
ps -aux

in diesem Fall sieht man gerade mein frisch aus dem Root-Konqueror gestartetes Ark:

Code:
root      9783  1.7  1.4  32020 14528 ?        S    13:30   0:00 ark [kdeinit] -caption Ark -i


Miccovin schrieb:
Und wenn ich dann auch noch aus diesem mit zweifelhaften Rechten ausgestattetem Ark heraus eine xul-Datei mit einem Editor öffne, scheint dieser Editor noch viel weniger root-Rechte zu haben. Genau hier scheint das Problem zu liegen. Glaube ich jedenfalls...
Gruss
Mic

Es gibt keine zweifelhaften Rechte... ;-) ... auch nicht weniger rechte...
entweder man hat root rechte oder halt nicht ;)

Zur Überprüfung hier hilft auch ps -aux

Hab mal die colorpicker.xml aus Ark heraus mit kate geöffnet.

Code:
root      9794  8.5  2.3  39888 23880 ?        S    13:32   0:00 kate /tmp/kde-root/arkBJpBL7/content/global/bindings/colorpicker.xml

Dein festgestelltes Problem hat weniger mit Root-Rechten zu tun, als mit einem Ark-Problem. Ich konnte im Test zwar Dateien zur *.jar hinzufügen, aber keine bearbeiten (auch wenn ich den Eigentümer der Datei und die Dateirechte zuvor geändert habe).

Entweder ist das ganze nun ein Ark-Bug, sprich das Programm macht an der Stelle was falsch, oder die *.jar-Datei erwartet einfach von den Dateien eine entsprechende Prüfsumme, so dass man sie gar nicht verändern kann wenn diese Prüfsumme abweicht. Du kannst ja mal einen entsprechenden Bug-Report für Ark eröffnen und gucken was bei rum kommt.

Was du dagegen machen kannst weißt du ja bereits... entpacken -> editieren und wieder verpacken.

Gruß
Mani
 
OP
M

Miccovin

Member
ok, danke, das hat sehr geholfen. Gut, das zu wissen.

Mir ist vorhin eingefallen, dass ich das unter XP zB mit 7zip oder auch Izarc nicht machen konnte (also Datei aus einem Packprogramm heraus öffnen, bearbeiten und da drin abspeichern). Das ging nur mit Winrar - daher hatte ich dann auch relativ schnell Winrar benutzt.

Ich werde mich also mal nach einem anderen Packprogramm umgucken, das das kann. Falls ihr eines wisst, sagt bitte Bescheid :)
 
OP
M

Miccovin

Member
ok, ich will das installieren und schon fangen die Probleme an für mich als Linux-Noob :)

ich hab die rpm downgeloaded, in der Konsole (als root) erscheint dann bei folgendem Befehl dieses:
User-OpenSuse:/home/user/Programme/KArchiver # rpm -Uhv karchiver-3.4.2.b4-1.i586.rpm
error: Failed dependencies:
libaudio.so.2 is needed by karchiver-3.4.2.b4-1.i586
libexpat.so.0 is needed by karchiver-3.4.2.b4-1.i586
devel(libart_lgpl_2) is needed by karchiver-3.4.2.b4-1.i586
devel(libaudio) is needed by karchiver-3.4.2.b4-1.i586
devel(libDCOP) is needed by karchiver-3.4.2.b4-1.i586
devel(libdl) is needed by karchiver-3.4.2.b4-1.i586
devel(libexpat) is needed by karchiver-3.4.2.b4-1.i586
devel(libfam) is needed by karchiver-3.4.2.b4-1.i586
devel(libfontconfig) is needed by karchiver-3.4.2.b4-1.i586
devel(libfreetype) is needed by karchiver-3.4.2.b4-1.i586
devel(libgcc_s) is needed by karchiver-3.4.2.b4-1.i586
devel(libICE) is needed by karchiver-3.4.2.b4-1.i586
devel(libidn) is needed by karchiver-3.4.2.b4-1.i586
devel(libjpeg) is needed by karchiver-3.4.2.b4-1.i586
devel(libkdecore) is needed by karchiver-3.4.2.b4-1.i586
devel(libkdefx) is needed by karchiver-3.4.2.b4-1.i586
devel(libkdesu) is needed by karchiver-3.4.2.b4-1.i586
devel(libkdeui) is needed by karchiver-3.4.2.b4-1.i586
devel(libkio) is needed by karchiver-3.4.2.b4-1.i586
devel(libkparts) is needed by karchiver-3.4.2.b4-1.i586
devel(libkwalletclient) is needed by karchiver-3.4.2.b4-1.i586
devel(liblcms) is needed by karchiver-3.4.2.b4-1.i586
devel(libm) is needed by karchiver-3.4.2.b4-1.i586
devel(libmng) is needed by karchiver-3.4.2.b4-1.i586
devel(libpng) is needed by karchiver-3.4.2.b4-1.i586
devel(libqt-mt) is needed by karchiver-3.4.2.b4-1.i586
devel(libSM) is needed by karchiver-3.4.2.b4-1.i586
devel(libstdc++) is needed by karchiver-3.4.2.b4-1.i586
devel(libX11) is needed by karchiver-3.4.2.b4-1.i586
devel(libXcursor) is needed by karchiver-3.4.2.b4-1.i586
devel(libXext) is needed by karchiver-3.4.2.b4-1.i586
devel(libXft) is needed by karchiver-3.4.2.b4-1.i586
devel(libXinerama) is needed by karchiver-3.4.2.b4-1.i586
devel(libXrandr) is needed by karchiver-3.4.2.b4-1.i586
devel(libXrender) is needed by karchiver-3.4.2.b4-1.i586
devel(libXt) is needed by karchiver-3.4.2.b4-1.i586
devel(libz) is needed by karchiver-3.4.2.b4-1.i586
Muss ich den ganzen Krams nachinstallieren oder liegt das daran, dass ich OpenSuse und nicht Debian etc. hab, wofür das Paket eigentlich ist.

Ich könnte auch noch eine karchiver-3.4.2.b4.tar.bz2 installieren...aber wie das gehen soll, da bitte ich um Erbarmen...
 

derMani

Hacker
Miccovin schrieb:
Muss ich den ganzen Krams nachinstallieren oder liegt das daran, dass ich OpenSuse und nicht Debian etc. hab, wofür das Paket eigentlich ist.

Ich könnte auch noch eine karchiver-3.4.2.b4.tar.bz2 installieren...aber wie das gehen soll, da bitte ich um Erbarmen...

Das ist schon ein Widerspruch, da du eine *.rpm-Datei geladen hast und keine *.deb.
Debian-Systeme installieren *.deb Dateien, openSUSE verwendet rpm als Paketmanager.
Da du die *.rpm-Datei ohne dein RPM-Frontend Yast2, APT oder Smart installierst, werden die Abhängigkeiten nicht automatisch aufgelöst, sprich automatisch installiert und heruntergeladen. Jetzt müsstest du von Hand die entsprechenden Bibliotheken/Programme nachinstallieren.

Das Programm scheint u.a. ziemlich "outdated" zu sein, die letzte Version erschien für kde 3.4. Ich würde es nicht mehr verwenden wollen.
Warscheinlich benutzt das Programm, genau wie ARK, einfach nur die dahinterliegenden Konsolenprogramme (unzip, unrar, usw... ) und dient diesen lediglich als Frontend.

Hier gibt's noch eine Übersicht über Archivierungs-Programme für KDE

http://www.kde-apps.org/index.php?xcontentmode=272&PHPSESSID=d73cc6d178ffe39fa58bc2f36f06ba05

Vor *.tar.gz-Archiven brauchst du keine Angst zu haben! In seinem Linux-Leben stößt man immer mal wieder auf solche Archive. Möchte man ein Programm installieren von dem man nur ein solches Archiv erhalten hat, sollte man wissen, dass sich meistens der Quelltext des Programmes dahinter verbirgt. Das ist der große Unterschied zur RPM.
In einer RPM sind meist bereits kompilierte, ausführbare Binärdateien enthalten, die nur noch an ihre entsprechende Stelle kopiert werden müssen. Hat man sich hingegen die Quellen eines Programmes gezogen, muss man es selbst noch kompillieren, sprich den Quelltext (Hochsprache) des Programms in Maschinensprache übersetzen.

Wie das geht kannst du hier erfahren
http://wiki.linux-club.de/opensuse/Software_aus_dem_Quelltext_Installieren/Deinstallieren

Man sollte eine *.rpm-Datei (wenn vorhanden) grundsätzlich vorziehen, da man mit der Installation aus dem Quelltext heraus, den Paketmanager der Distribution umgeht.

Nun stellt sich noch die Frage ob sich der gesamte Aufwand überhaupt lohnt, schließlich muss man ja wohl nicht sehr häufig Änderungen an irgendwelchen /usr/lib/firefox/chrome/*.jar - Archiven vornehmen.

Im Normalfall erledigt Ark seinen Auftrag absolut super und anstandslos

Gruß
Mani
 
OP
M

Miccovin

Member
Dass man RPM auch mir Yast installieren kann, wusste ich noch gar nicht. Warum steht davon nichts auf der rpm-Wiki-Seite? Ich habe es bis jetzt immer über die Konsole gemacht, weil ich nicht weiss, wie ich das sonst machen soll. Ich war froh, dass ich immerhin diesen Weg hingekriegt hab. Aber dadurch muss ich den Befehl immer wieder mal nachgucken, da ich dann doch nicht sooo oft was als RPM installiere. Naja, vielleicht finde ich das ja gleich noch raus, wie das mit Yast gehen soll..

Auf *.tar.gz-Archive habe ich übrigens nicht wirklich Lust. Ich kann zwar mit dem PC besser umgehen als meine Oma, aber an dem Krams habe ich mich schon öfter versucht (siehe auch Forensuche) - und es hat nie geklappt. Dazu kommt noch, dass ich als Download des geilen KArchivers eine *.tar.bz2-Datei bekommen habe. Dann wollte ich die Installationsanweisungen dazu auf der KArchiver-Homepage durchgehen, aber der geht in Punkt 1 natürlich von einer *.tar.gz-Datei aus. Weshalb ich dann in der Konsole auch gleich eine Fehlermeldung bekam, mit der ich natürlich nichts anfangen konnte.

Aber was solls, ich glaube, das Teil kann eh nicht das, wonach ich suche (sonst stände es bestimmt in der Beschreibung drin), insofern lasse ichs damit halt und gucke mich mal nach was anderem um. Denn ich bastele öfter an den Firefox-Dateien rum - da wäre ein fähiges Proggi schon praktisch.
 

derMani

Hacker
Du hast mich wohl falsch verstanden, bei JEDER Softwareintallation mit Yast2 werden natürlich RPM-Dateien installiert. Diese RPM-Dateien sind aber nicht einzelne, lokale Dateien, sondern werden aus einem Software-Repository heruntergeladen und installiert. Dabei spielt es nun keine Rolle ob das Repository auf einer CD/DVD Platz findet (openSUSE DVD) oder sich auf irgendeinem Webserver im Internet befindet.

Das Frontend zu RPM (in diesem Falle YaST2) lädt alle notwendingen Dateien aus dem Internet und installiert es dann mit Hilfe von RPM.
RPM alleine kann keine Abhängigkeiten auflösen und nachinstallieren.

Aber da du ja scheinbar auf Klicken und so stehst, verrate ich dir noch einen Klick zum Installieren von RPM-Dateien. Auf dem Konqueror heraus kannst du auch einzelne RPM-Dateien mit Hilfe von Yast2 installieren.

Probiere es aus, starte Konqueror und wähle eine RPM-Datei an. Dann öffnet sich im Konqueror ein Unterfenster wo du den Punkt "Paket mit YaST installieren" findest.
Leider wirst du dann keine weiteren Ausgaben geliefert bekommen, ob evt. was schiefgelaufen ist, aber grundsätzlich funktioniert diese Technik recht gut.

Auch deine *.tar.gz bzw *.tar.bz2-Archive kannst du doch klickend verarbeiten. Also ich weiß ja nicht wie du das so machst, aber ich klicke im Konqueror dort einfach mit der rechten Maustaste drauf und wähle "Hier entpacken" ...
 
Oben