私は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 権限を設定します。