sysfs ファイルに対する権限が拒否されました。

sysfs ファイルに対する権限が拒否されました。

私はRaspberry Piで遊んで、現在のシェルスクリプトとその引数を実行しているオンボードLEDの1つの色を変更したいと思います。

pi@raspberrypi:~/morpheus/scripts $ bash ./set-rgb-led.sh level 50 50 50

上記のコマンドを入力すると、次のメッセージが表示されます。

./set-rgb-led.sh: line 19: /sys/class/leds/morpheus:level:red/brightness: Permission denied
./set-rgb-led.sh: line 19: /sys/class/leds/morpheus:level:green/brightness: Permission denied
./set-rgb-led.sh: line 19: /sys/class/leds/morpheus:level:blue/brightness: Permission denied

私が実行している権限を確認するために、getfacl set-rgb-led.sh次のことを伝えます。

# file: set-rgb-led.sh
# owner: pi
# group: pi
user::rwx
group::--x
other::--x

このコマンドと同様の権限変更コマンドを試してみましたが、chmod +x正しいアクセス権を取得できないようです。ファイルを制御するために何が欠けていますか?

答え1

スクリプト自体には問題はありませんが、アクセスしようとしているファイルには問題はありません。つまり、/sysディレクトリの下にあるすべてのファイルとディレクトリ root(コマンドは表示されませんgetfacl)。

あなたができることは、スクリプトをrootとして実行したり、アクセスしたいファイルの権限を変更することです(ただし、これはまったくお勧めできません)。

答え2

注文する:

setfacl -m u:root:rwx /path/to/file/set-rgb-led.sh 

これで問題が解決します。 ACL を使用してルートに対する rwx 権限を設定します。

関連情報