staging.inyokaproject.org

skript zeilenweise ausführen?

Status: Ungelöst | Ubuntu-Version: Ubuntu 10.10 (Maverick Meerkat)
Antworten |

kaputtnik

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 9245

Hi,

gibt es eine Möglichkeit ein Skript nur Zeilenweise ausführen zu lassen? Ich kann mich erinnern, das es bei Batch-Dateien unter Win so einen Parameter gab... irgendwie "command -y BATCHDATEI" oder so... (man ist das lange her). Auf jeden Fall wurde dann jede Zeile der Batch-Datei vor der Ausführung angezeigt und gefragt, ob man diese ausführen möchte. Gibnt es so was auch für Shell-Skripte?

Hintergrund: Der Artikel Samsung-Laserdrucker ist nicht mehr aktuell und ich wollte ihn überarbeiten. Habe den für meinen Drucker angeblich passenden Treiber heruntergeladen, jedoch funktioniert die Installation über das beiliegende Skript setup.sh (siehe Anhang) nicht. Leider gibt es keinerlei Fehlermeldungen oder sonstige Hinweise...

Starte ich das Skript ohne sudo erscheint folgende Meldung:

Please enter the root Password:
Passwort:
su: Fehler bei der Authentifizierung

Starte ich es mit sudo passiert gar nichts.

2. Anhang: Zum Installationsskript gehörige README.txt

Danke für Tipps
kaputtnik

setup.sh (6.4 KiB)
Download setup.sh
README.txt (2.5 KiB)
Download README.txt

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Hi kaputtnik,

das Skript arbeitet intern mit xsu und su und setzt dabei einen gültigen root- Account voraus.
Das hat Ubuntu natürlich normalerweise nicht zu bieten. Und das liefert auch die Fehlermeldung, weil Du eben keinen User "root" mit gültigem Passwort hast.

Nun könntest Du diesen Account natürlich extra dafür anlegen, aber das würde ich besser nicht tun - weil Du damit ein sehr sinnvolles Sichheitsmerkmal von Uby (eben, dass es keinen User "root" gibt den man hacken könnte) außer Kraft setzt.

Wenn es mit sudo davor geht, prima. - Wenn nicht ... hmmm.

Überhaupt scheint das Ding eher für Red Hat und dessen Verwandte zugeschnitten zu sein. Man müsste also auch die Pfade nochmal überprüfen.
(zumal unter Maverick, wo vieles anders ist)

Zum debuggen kannst Du ja mal bash -v setup.sh probieren. (→ man bash) Wenn Dich das mit zu viel Info vollschmeißt, ist das einfügen von einzelnen (eigenen) debug-echos wahrscheinlich sinnvoller.

LG,

track

John_W

Anmeldungsdatum:
10. Juli 2010

Beiträge: Zähle...

Ich empfehle bash -x statt bash -v, da kann man Ausgabe und Befehl deutlich leichter auseinander halten.

Eventuell wäre der Bash Debugger dabei nutzbar: http://bashdb.sourceforge.net/

deadtronic

Anmeldungsdatum:
18. Februar 2010

Beiträge: 762

Also was root angeht: Durch die return-Zeile etwas unter

# this happens if xsu/su execs setup.sh but it still doesn't have root rights

rennt der bei mir einfach durch. Hängen bleiben tut der erst bei dem Check auf zwei Dateien

"setup.data/bin/$os/$arch/$libc/$setup
# ...
setup.data/bin/$os/$arch/$setup

Die werden bei dir wahrscheinlich vorhanden sein. Aber was gibt es denn für Ordner in /setup.data/bin? Vielleicht kannst du die Treiber aus diesen Ordnern installieren, das Skript sieht nämlich so aus als ob es nichts anderes macht als root-Rechte zu holen, libc zu überprüfen und die richtige Platform herauszusuchen.

kaputtnik

(Themenstarter)

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 9245

deadtronic schrieb:

Aber was gibt es denn für Ordner in /setup.data/bin?

$ ls -lR setup.data/bin
setup.data/bin:
insgesamt 4
drwxr-xr-x 3 kaputtnik kaputtnik 4096 2005-03-22 01:02 Linux

setup.data/bin/Linux:
insgesamt 4
drwxr-xr-x 3 kaputtnik kaputtnik 4096 2004-12-06 09:56 ppc

setup.data/bin/Linux/ppc:
insgesamt 2564
drwxr-xr-x 2 kaputtnik kaputtnik    4096 2004-12-06 09:56 glibc-2.1
-rwxr-xr-x 1 kaputtnik kaputtnik 1432252 2004-12-06 09:56 setup
-rwxr-xr-x 1 kaputtnik kaputtnik 1176288 2004-12-06 09:56 uninstall

setup.data/bin/Linux/ppc/glibc-2.1:
insgesamt 1004
-rwxr-xr-x 1 kaputtnik kaputtnik 992020 2004-12-06 09:56 setup.gtk
-rwxr-xr-x 1 kaputtnik kaputtnik  28572 2004-12-06 09:56 xsu

Da sind einige Setup-dateien...

Vielleicht kannst du die Treiber aus diesen Ordnern installieren, das Skript sieht nämlich so aus als ob es nichts anderes macht als root-Rechte zu holen, libc zu überprüfen und die richtige Platform herauszusuchen.

Jo... und es installiert eine Oberfläche zur Druckerverwaltung.

kaputtnik

(Themenstarter)

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 9245

Achso... und danke an alle Poster die sich aufgrund des schlechten Threadtitels trotzdem dieser Sache angenommen haben ☺

Nach weiteren Recherchen ist es wohl so, das das Setup-Skript unter Ubuntu einfach nur mist ist ☹ Unverständlicherweise, da Ubuntu doch eine der verbreitetsten Linuxdistris ist.

Irgendeine Chance, das Skript auf sudo umzuswitchen? Dann könnte man das den Leuten von Samsung um die Ohren hauen 😊

Ansonsten eben nicht, und man lebt mit dem splix-treiber ja auch recht gut ☺

Nochmals Dank
kaputtnik

deadtronic

Anmeldungsdatum:
18. Februar 2010

Beiträge: 762

kaputtnik schrieb:

Jo... und es installiert eine Oberfläche zur Druckerverwaltung.

Verdammt, ich hatte vergessen zu sagen eine

-rwxr-xr-x 1 kaputtnik kaputtnik 1432252 2004-12-06 09:56 setup

zu starten. 😉 Vielleicht ist es ein Versuch Wert, die einfach mal (mit sudo) zu starten? Aber keine Garantie darauf, was dann passiert. 😛

Das Skript macht aber auch nix anderes als das Teil auf Platte zu kopieren und chmod'en:

      # Try to run the binary ($setup_bin)
      # The executable is here but we can't execute it from CD
      # NOTE TTimo: this is dangerous, we also use $setup to store the name of the try_run
      setup="$HOME/.setup$$"
      rm -f "$setup"
      cp "$setup_bin" "$setup"    
      chmod 700 "$setup"    

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7529

ich hab mir das script nicht angeschaut, aber wenn es so stark red hat abhängig ist, müsste man dann halt mal ggf. in den sauren Apfel beissen, Red Hat in einer VM installieren, dort das Setup ausführen und dann verfolgen welche Dateien es wo hin geschrieben hat. Vielleicht ist es einfacher, die Dateien selber an den richtigen Ort zu bringen (ein .deb dafür zu basteln) als durch so ein verkorkstes Script durchzusteigen. Interessante Frage ist natürlich auch unter welcher Lizenz das Zeug vertrieben wird und ob man das überhaupt so umpacken (und dann weitergeben) darf. Wenn man es weitergeben darf lohnt sich vielleicht auch zu schauen ob das nicht schon irgendein netter (internationaler) Ubuntu-User nicht schon übernommen hat, bevor man sich selber die Arbeit macht...

kaputtnik

(Themenstarter)

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 9245

John W schrieb:

Ich empfehle bash -x statt bash -v, da kann man Ausgabe und Befehl deutlich leichter auseinander halten.

Eventuell wäre der Bash Debugger dabei nutzbar: http://bashdb.sourceforge.net/

Danke, das sind zumindest Lösungsansätze für meine Threadfrage. ☺

Was die Sache mit dem Samsungtreiber angeht, habe ich jetzt doch einen anderen Treiber gefunden, der sich anstandslos installieren lässt. Dieser stammt zwar auch von der Samsung-Seite, ich habe einfach einen anderen Druckertyp angegeben. Da es aber ein "unified"-Treiber ist, wurde auch mein Drucker erkannt. Der zugehörige Einstellungsdialog wurde sogar sehr brav unter /opt installiert ☺

@ deadtronic: Ja, das andere Setup habe ich auch versucht per sudo zu starten. Natürlich in einer VM 😉

Gruß und Dank
kaputtnik

Antworten |