ubuntuusers.de

shell scripts als sudo ausführen

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

Lminator

Anmeldungsdatum:
8. April 2011

Beiträge: 8

Hallo, Ich verwende Ubuntu 10.10 mit dem mitgelieferten Terminal. ich weiß das man normalerweise shell scripts als sudo mit

sudo sh dateiname

ausführt.

Geht aber nicht bei mir.

der Befehl:

sh dateiname

geht. Hab alle varianten ausprobiert:

sudo sh ./dateiname

sudo sh ./dateiname.sh

sudo ./dateiname.sh

sudo dateiname.sh

sudo /dateiname.sh

sudo /dateiname

nix geht.

Anzumerken wäre: Das script ist der aufruf für das Installationsprogramm von MAtlab. Ich muss superuser sein, um dann ein Verzeichniss in /usr anlegen zu können. Wichtig wäre noch, dass die datei auf einer gemounteten iso datei liegt.

Könnt ihr mir weiterhelfen? Kann ich auch nach aufruf des scripts mit dem Befehl

sh dateiname

welcher ja funktioniert, irgentwie noch an die benötigten rechte kommen?

PS: Die Fehlermeldung z.B bei

sudo sh dateiname

lautet: sh: Can't open intall

Vielen Dank für eure Hilfe

kopf-basher

Anmeldungsdatum:
10. April 2010

Beiträge: 110

Probier mal

1
2
chmod a+x DATEINAME.sh
./DATEINAME.sh

allerdings darf die shebang in der ersten zeile des skripts nicht fehlen: #!/bin/sh

Lminator

(Themenstarter)

Anmeldungsdatum:
8. April 2011

Beiträge: 8

Das geht leider auch nicht. Vielleicht sollte ich sagen dass ich ziemlicher ubuntu anfänger bin. Achja, die datei heißt install und sie ist vom typ application/x-shellscript. lg

Antiqua Team-Icon

Avatar von Antiqua

Anmeldungsdatum:
30. Dezember 2008

Beiträge: 4534

bist du im Terminal überhaupt in dem Ordner, wo das Script liegt (also im /media/cdrom oder wo auch immer die CD gemountet ist)?

Am besten, du zeigst uns mal die Ausgabe von

mount && echo "----------" && pwd

Lminator

(Themenstarter)

Anmeldungsdatum:
8. April 2011

Beiträge: 8

Ja, eigentlich schon:

elmar@ubuntu:~/virtual-drives/1$ ls install
install

Um dieses install script, wie gesagt ein Shell-Skript (application/x-shellscript) geht es.

Das ist die Antwort:

elmar@ubuntu:~/virtual-drives/1$ sudo sh install
[sudo] password for elmar: 
sh: Can't open install

Aber eben wie schon gesagt mit

elmar@ubuntu:~/virtual-drives/1$ sh install
Preparing installation files ...
Installing ...

geht es.

Das ist die Ausgabe bei dem mount Befehl:

elmar@ubuntu:~$ mount && echo "-----------" && pwd
/dev/loop0 on / type ext4 (rw,errors=remount-ro,commit=0)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
/dev/sda1 on /host type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
none on /var/lib/ureadahead/debugfs type debugfs (rw,relatime)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/elmar/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=elmar)
fuseiso on /home/elmar/virtual-drives/1 type fuse.fuseiso (rw,nosuid,nodev,user=elmar)
-----------
/home/elmar

Antiqua Team-Icon

Avatar von Antiqua

Anmeldungsdatum:
30. Dezember 2008

Beiträge: 4534

hm... ne Wubi-Install, aber das dürfte nicht das Problem sein.

Zeig mal

head --lines=40 ~/virtual-drives/1/install

Lminator

(Themenstarter)

Anmeldungsdatum:
8. April 2011

Beiträge: 8

Erst mal vielen Dank für die Hilfe!

Hier die Antwort:

elmar@ubuntu:~$ head --lines=40 ~/virtual-drives/1/install
#!/bin/sh
#
# Name:
#    install -  script file for invoking the Multi-platform installer on Linux.
#
#    Usage: install [-h|help]"
#                              [-javadir <directory>] | [-root <directory>] |"
#                              [-test] | [-v|-verbose]"
#                              -h|-help        - Display arguments."
#                              -test           - Don't actually run the java
#                                                command (only useful with -v)."
#                              -v|-verbose     - Display settings."
#                              -javadir <directory>       - Override default java root directory."
#                              -root <directory>          - Override default DVD root directory."
#
#              The default settings when no override inputs are supplied are: "
#              -root = <directory containing this script>/../"
#              -javadir = <root>/java/jre/$ARCH/jre'
#
#
# Copyright 2009-2010 The MathWorks, Inc.
#__________________________________________________________________________
#
    arg0_=$0
#
#
    trap "exit 1" 1 2 3 15
#
#========================= archlist.sh (start) ============================
#
# usage:        archlist.sh
#
# abstract:     This Bourne Shell script creates the variable ARCH_LIST.
#
# note(s):      1. This file is always imbedded in another script
#
# Copyright 1997-2007 The MathWorks, Inc.
# $Revision: 1.1.6.3 $  $Date: 2007/11/12 22:52:47 $
#----------------------------------------------------------------------------
#

Was ist eigentlich ein Wubi-install?

lg

Lminator

(Themenstarter)

Anmeldungsdatum:
8. April 2011

Beiträge: 8

Ahh, Wubi-install gefunden... Ja, mein Ubuntu ist ein Wubi install... Aber was hat das mit meinem Problem zu tun? lg

Antiqua Team-Icon

Avatar von Antiqua

Anmeldungsdatum:
30. Dezember 2008

Beiträge: 4534

Lminator schrieb:

Ja, mein Ubuntu ist ein Wubi install... Aber was hat das mit meinem Problem zu tun?

wie ich oben schon schrub, vermutlich nichts (schwören würd ich das allerdings nicht). Wubi ist ein unsäglicher Quell von komischen Fehlern und eigentlich nur zum ausprobieren gedacht und keinesfalls für mehr als das. Eines der Dinge, für die Canonical/Ubuntu gesteinigt gehört.

Aber zurück zum Thema:

versuchen wir mal die Brechstange (jede Zeile nacheinander eingeben):

sudo -i                           # dauerhaft zu root werden
cd /home/elmar/virtual-drives/1/  # ins Verzeichnis wechseln
./install                         # der aktuellen Shell das Script vorwerfen

bitte die Ausgaben hier rein, ausser es funktioniert jetzt.

xrolly

Avatar von xrolly

Anmeldungsdatum:
26. September 2007

Beiträge: 4322

Wohnort: NRW; 51° 39′ N, 7° 21′ O

Antiqua schrieb:

Eines der Dinge, für die Canonical/Ubuntu gesteinigt gehört.

😀 Beweise ❓

Lminator

(Themenstarter)

Anmeldungsdatum:
8. April 2011

Beiträge: 8

Ich denke ich habe das Problem gefunden:

Ich kann als root nicht auf die iso zugreifen:

elmar@ubuntu:~$ sudo -i
root@ubuntu:~# cd /home/elmar/virtual-drives/1/
-bash: cd: /home/elmar/virtual-drives/1/: Keine Berechtigung

Ich kann bis ins Verzeichnis /home/elmar/virtual-drives/ zugreifen. Sobald ich dann aber auf das Virtuelle Laufwerk 1 zugreifen möchte, kann ich dass als root nicht:

root@ubuntu:~# cd /home/elmar/virtual-drives/
root@ubuntu:/home/elmar/virtual-drives# cd 1
-bash: cd: 1: Keine Berechtigung

Ich verwende AcetoneISO zum mounten der Iso Dateinen.

Kann man da die Zugriffsrechte irgendwie einstellen?

Das_Wort

Anmeldungsdatum:
23. Dezember 2009

Beiträge: 5269

Wohnort: /dev/null

chmod!

gib einfach mal im Terminal

man chmod

ein. man steht für Mannual (Page)

Falls du es gerne auf deutsch hast: Einfach das Paket manpages-de installieren.

Ach und grafisch und im Wiki chmod geht natürlich auch.

Hmmm aber als Root nicht zugreifen? Das ist ein Paradox in sich 😀

Antiqua Team-Icon

Avatar von Antiqua

Anmeldungsdatum:
30. Dezember 2008

Beiträge: 4534

du könntest das ISO "normal" als root mounten und nicht mit AcetonISO (das ich nicht kenne).

sudo -i                                         # root-shell
mkdir -p /mnt/iso                               # Ordner erstellen
mount -o loop /pfad/zum/matlab.iso /mnt/iso     # statt /pfad/zum/matlab.iso natürlich den echten Pfad mit dem richtigen Namen!!!
cd /mnt/iso                                     # ins Verzeichnis wechseln
ls -al install                                  # schauen, ob das Install-Script da ist, wenn ja, dann ...
sh ./install                                    # die Install anschmeissen

Antiqua Team-Icon

Avatar von Antiqua

Anmeldungsdatum:
30. Dezember 2008

Beiträge: 4534

OffToppic /
xrolly schrieb:

Antiqua schrieb:

Eines der Dinge, für die Canonical/Ubuntu gesteinigt gehört.

😀 Beweise ❓

Beweise für meine Meinung??? Da muss dir leider meine persönliche aber unbestechliche Aussage reichen... 😈
... aber such mal im Forum einfach nach Wubi.
/ OffToppic

Lminator

(Themenstarter)

Anmeldungsdatum:
8. April 2011

Beiträge: 8

@Antiqua:

Vielen Dank erst mal, konnte das Problem lösen. Und zwar folgendermaßen:

elmar@ubuntu:/mnt$ sudo mount -o loop ~/Mathworks.Matlab.R2010b.UNIX.ISO-TBE/matu20Xb.iso /mnt/iso
elmar@ubuntu:/mnt$ cd iso
elmar@ubuntu:/mnt/iso$ ./install
Preparing installation files ...
Installing ...

Hab dabei auch noch was nettes gelernt, und zwar das ~/ in der Root shell nicht mehr mein Homeverzeichnis beschreibt.

root@ubuntu:~# mount -o loop ~/Mathworks.Matlab.R2010b.UNIX.ISO-TBE/matu20Xb.iso /mnt/iso
/root/Mathworks.Matlab.R2010b.UNIX.ISO-TBE/matu20Xb.iso: Datei oder Verzeichnis nicht gefunden

Vielen Dank an alle, die sich mit dem Problem beschäftigt haben

MFG

Antworten |