Shel-Skriptdatei kann nicht ausgeführt werden, Berechtigung verweigert

Shel-Skriptdatei kann nicht ausgeführt werden, Berechtigung verweigert

Ich habe eine Shell-Skriptdatei, im Grunde eine Setup-Datei zur Installation von Xilinx-Tools. Der Name der Datei ist xsetup

Bildbeschreibung hier eingeben

Außerdem habe ich danach seine Berechtigung überprüft.

chmod  777 xsetup

Bildbeschreibung hier eingeben

Tatsächlich ist die Berechtigung des gesamten Ordners (in dem sich mein xsetup befindet) wie folgt: (Der Dateizugriff habe ich für alle auf Lesen und Schreiben eingestellt, wird in diesem Screenshot nicht angezeigt) Bildbeschreibung hier eingeben

Beim Versuch, die Datei auszuführen, treten jedoch Fehler auf:

[root@sulaptop xilinx]# sh xsetup
xsetup: line 30: ./bin/lin/xsetup: Permission denied
[root@sulaptop xilinx]# bash xsetup 
xsetup: line 30: ./bin/lin/xsetup: Permission denied
[root@sulaptop xilinx]# 

Warum erhalte ich diesen Berechtigungsfehler, wenn ich bereits als Root angemeldet bin? Hier ist der Inhalt dieses Skripts:

#! /bin/sh
export PATH || exec /bin/sh "$0" $argv
# Get the path to this exec
setuploc=`dirname "$0"`

unset LANG
platform=`uname -s`

# run setup executable depending on different platform
if [ "$platform" = "Linux" ]
then
    machineType=`uname -m`; # Get the machine type
    if [ "$machineType" = "x86_64" ]
    then
    # 64 bit
        if [ -f "$setuploc/bin/lin64/xsetup" ]
        then
            "$setuploc/bin/lin64/xsetup" $*
        else
            if [ -f "$setuploc/bin/lin/xsetup" ]
            then
                "$setuploc/bin/lin/xsetup" $*
            else
                echo "Product is not supported on \"$platform\" platform."
            fi            
        fi
    else
        if [ -f "$setuploc/bin/lin/xsetup" ]
        then
            "$setuploc/bin/lin/xsetup" $*
        else
            echo "Product is not supported on \"$platform $machineType\" platform."
        fi
    fi
else
    echo "Un-supported platform: $platform"
fi

Linie Nr. 30 ist die erste

"$setuploc/bin/lin/xsetup" $*

vom Boden

Plattform

Fedora 17, 64 Bit, da ich ein Flag mit lm habe

grep lm /proc/cpuinfo:

 lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm 

Antwort1

Sie haben die Berechtigungen für geändert /home/msz/xilinx/xsetup. Das von Ihrem Skript aufgerufene verschachtelte Skript ist /home/msz/xilinx/bin/lin/xsetupjedoch . Korrigieren Sie die Berechtigungen für die richtige Datei.

verwandte Informationen