Nach dist-upgrade Änderung der Berechtigungen?

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Zusammen

    Soeben habe ich seit längerem mein System mal mit sudo apt-get disk-upgrade aktualisiert und habe nun das Problem das einige meiner Scripte (anscheinend nur die welche GPIO Pins ansprechen), welche ich vorher aus meinem Userspace mit dem Benutzer Pi ausgeführt habe nur noch als sudo ausführen kann.

    Hier ein Beispiel

    Code
    pi@raspberrypi ~/bin $ ls -l raspiAmp*
    -rwxr-xr-x 1 pi pi 184 Aug 16 10:54 raspiAmpoff.sh
    -rwxr-xr-x 1 pi pi 184 Aug 16 10:54 raspiAmpon.sh

    Beim ausführen als Pi

    Code
    pi@raspberrypi ~/bin $ raspiAmpoff.sh
    /home/pi/bin/raspiAmpoff.sh: line 4: /sys/class/gpio/gpio17/value: Permission denied
    pi@raspberrypi ~/bin $ ./raspiAmpoff.sh
    ./raspiAmpoff.sh: line 4: /sys/class/gpio/gpio17/value: Permission denied

    Inhalt

    Code
    ~/bin $ cat raspiAmpoff.sh
    #!/bin/bash
    
    
    # Skript um den Wert 0 an den GPIO Pin 17 zu senden um ueber die daran angeschlossene Relaiskarte einen Verstaerker auszuschalten.
    echo "0" > /sys/class/gpio/gpio17/value

    Berechtigungen aus /sys/class/gpio/

    Code
    pi@raspberrypi /sys/class/gpio $ ls -l
    total 0
    -rwxrwx--- 1 root gpio 4096 Sep  5 17:46 export
    lrwxrwxrwx 1 root gpio    0 Sep  5 17:46 gpio17 -> ../../devices/platform/soc/3f200000.gpio/gpio/gpio17
    lrwxrwxrwx 1 root gpio    0 Jan  1  1970 gpiochip0 -> ../../devices/platform/soc/3f200000.gpio/gpio/gpiochip0
    -rwxrwx--- 1 root gpio 4096 Jan  1  1970 unexport

    und von dem Unterverzeichnis gpio17

    Code
    pi@raspberrypi /sys/class/gpio/gpio17 $ ls -l
    total 0
    -rw-r--r-- 1 root root 4096 Sep  5 18:06 active_low
    lrwxrwxrwx 1 root root    0 Sep  5 18:06 device -> ../../../3f200000.gpio
    -rw-r--r-- 1 root root 4096 Sep  5 17:46 direction
    -rw-r--r-- 1 root root 4096 Sep  5 18:06 edge
    lrwxrwxrwx 1 root root    0 Sep  5 18:06 subsystem -> ../../../../../../class/gpio
    -rw-r--r-- 1 root root 4096 Sep  5 18:06 uevent
    -rw-r--r-- 1 root root 4096 Sep  5 17:54 value

    Was kann ich tun um wieder mit dem Benutzer Pi Werte zu übergeben und warum werden Berechtigungen bei einem Update geändert?

    Danke und Grüsse

    #EDIT Gerade nich festgestellt, die Soundausgabe über Kodi per PulseAudio funktioniert auch nicht mehr :-/

    Einmal editiert, zuletzt von PiBorg (5. September 2015 um 18:24)

  • Soeben habe ich seit längerem mein System mal mit sudo apt-get disk-upgrade aktualisiert

    Big Fail.

    "apt-get upgrade" aktualisiert nur die bereits installierten Pakete.

    "apt-get dist-upgrade" installiert aber auch andere Pakete. "dist" steht für "Distribution" und soll eigentlich nur genutzt werden um zum Beispiel von Debian5 auf Debian6 zu aktualisieren. Macht das nur wenn ihr wisst was ihr tut. Eigentlich ist nur "upgrade" nötig!

    Hast du darauf geachtet welche Pakete installiert/aktualisiert werden? Sowas sollte man auch immer kontrollieren.


    und habe nun das Problem das einige meiner Scripte (anscheinend nur die welche GPIO Pins ansprechen), welche ich vorher aus meinem Userspace mit dem Benutzer Pi ausgeführt habe nur noch als sudo ausführen kann.

    Prüfe 3 Dinge:
    - Wem gehören die Dateien/Ordner in: /sys/class/gpio/
    - In welchen Gruppen ist der Benutzer 'pi': id
    - GPIO unexport'en also disablen und erneut aktivieren. Rechte erneut prüfen.

    Inhalt

    Code
    ~/bin $ cat raspiAmpoff.sh
    #!/bin/bash
    
    
    # Skript um den Wert 0 an den GPIO Pin 17 zu senden um ueber die daran angeschlossene Relaiskarte einen Verstaerker auszuschalten.
    echo "0" > /sys/class/gpio/gpio17/value

    Das Script solltest du erweitern. Prüfe erst ob der gpio überhaupt aktiviert wurde, falls nicht aktivieren. Erst anschließend value setzen:

    Bash
    #!/bin/bash
    
    
    if [ ! -f /sys/class/gpio/gpio17/value ]; then
        echo 17 > /sys/class/gpio/export
        echo out > /sys/class/gpio/gpio17/direction
    fi
    
    
    echo 0 > /sys/class/gpio/gpio17/value
  • Wie immer vielen Dank. Da auch meine Soundkarte keinen Ton mehr von sich gibt und ich Nachwehen mal lieber aus dem Weg gehe, spiele ich mal lieber mein Backup ein. Das Scriptchen werde ich in jedem Fall erweitern :thumbs1:

    Zu deiner Frage


    Zitat

    Hast du darauf geachtet welche Pakete installiert/aktualisiert werden? Sowas sollte man auch immer kontrollieren.

    Eigentlich schon, bin immer recht vorsichtig, waren überiegend bekannte Pakete wie zB raspi-config usw.

    Ein dist-upgrade habe ich ausgeführt, weil Kodi bei einem enfachen ugrade nicht aufgelistet wurde, gehalten habe ich mich diese Anleitung

    http://michael.gorven.za.net/

    Zitat

    Updating
    Both Raspbian and Kodi can be updated using normal Debian mechanisms such as
    apt-get
    :
    # sudo apt-get update
    # sudo apt-get dist-upgrade

    Ich mach mal einen Restore und versuche mal nur Kodi zu aktualisieren...
    Automatisch zusammengefügt:

    So nach einem Restore und der Aktualisierung von Kodi läuft alles wieder wie es soll. Wen es interessiert die ursprünglichen Berechtigungen für die Dateien im Verzeichnis /sys/class/gpio/gpio17 waren

    Code
    pi@raspberrypi /sys/class/gpio/gpio17 $ ls -l
    total 0
    -rwxrwx--- 1 root gpio 4096 Sep  5 19:31 active_low
    lrwxrwxrwx 1 root gpio    0 Sep  5 19:31 device -> ../../../3f200000.gpio
    -rwxrwx--- 1 root gpio 4096 Sep  5 19:31 direction
    -rwxrwx--- 1 root gpio 4096 Sep  5 19:31 edge
    lrwxrwxrwx 1 root gpio    0 Sep  5 19:31 subsystem -> ../../../../../class/gpio
    -rwxrwx--- 1 root gpio 4096 Sep  5 19:31 uevent
    -rwxrwx--- 1 root gpio 4096 Sep  5 19:36 value

    Einmal editiert, zuletzt von PiBorg (5. September 2015 um 19:42)

  • meigraph hat hier ein bisschen Quatsch erzählt, dist-upgrade ist KEIN Distributions-Update sondern das, was das normale GUI-basierte Update von Ubuntu etc auch immer macht!

    apt-get update -> Paketlisten aktialisieren
    apt-get upgrade -> Pakete aktualisieren wenn es neuere Pakete gibt, und dafür keine weiteren Änderungen vorgenommen werden müssen
    apt-get dist-upgrade -> Alle installierten Pakete aktualisieren, auch wenn dafür andere (nicht manuell ausgewählte) Pakete entfernt werden.

    Quelle: manpage von apt-get (man apt-get)

    das distributions-upgrade hat extra-programme, in Ubuntu z.B. do-release-upgrade die anderen habe ich nicht im Kopf

  • Horroreyes: Zustimmung! ;)


    apt-get upgrade -> Pakete aktualisieren wenn es neuere Pakete gibt, und dafür keine weiteren Änderungen vorgenommen werden müssen

    ... und das kann in Einzelfällen zu Inkompatibilitäten führen. Hab' ich früher öfters erlebt.


    apt-get dist-upgrade -> Alle installierten Pakete aktualisieren, auch wenn dafür andere (nicht manuell ausgewählte) Pakete entfernt werden.

    Aus meiner Sicht die 'richtige' Lösung. Bei mir läuft seit Jahren auf Debian-Systemen ausschließlich
    "apt-get update && apt-get dist-upgrade"
    und das zur vollsten Zufriedenheit. Man wünscht sich ja kompromisslos den aktuellen Stand aller Pakete.

    Gruß, mmi

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!