

WebのブラウザからRaspberry Piのサーバーにアクセスした一般ユーザーに、音声とシリアル通信の権限を渡し操作を許可したいのですが・・・

試したことは

音源の権限変更

[code]

    sudo chmod 666 /dev/snd/controlC0
    sudo chmod 666 /dev/snd/pcmC0D0p
    
[/code]

シリアル通信の権限変更

[code]

    sudo chmod 666 /dev/ttyACM0
    
[/code]

上記で権限変更でき、目的の動作を確認できるのですが、リブートするたびにファイルが書き換えられて、元の状態の権限になっていることに気が付きました。

Raspberry Pi が初Linuxでサーバーを立てるのも初めてです。  
どなたかわかりやすく教えていただけないでしょうか？

Raspberry Pi3 jessie です。

よろしくお願いいたします。


CC BY-SA 3.0
2018-01-30T11:17:26.830
41327
2018-01-30T13:05:00.073
2018-01-30T12:48:58.593
19110
27209
question
linux raspberry-pi raspbian
Raspberry Piの音源とシリアル通信の権限を一般ユーザーに開放したい


一般論としては、パーミッションを変更するのではなく、ユーザーをデバイスファイルの所有グループに加えた方がよいです。

例えば`/dev/snd/controlC0`であれば

[code]

    crw-rw----  1 root audio 116,  0 Jan 20 23:12 controlC0`
    
[/code]

のようになっていると思いますので、audioグループはこのデバイスを読み書きできます。ですので、audioグループにユーザーを追加すればそのユーザーがデバイスを読み書きできます。

ユーザーがどのグループに属しているかは`/etc/group`で管理されています。このファイルは直接編集せず、`vigr`コマンドを使って編集してください。上の例でaudioグループであれば

audio:x:29:pi

こんな行があるはずなので、末尾にカンマ区切りでユーザー（おそらくHTTPサーバの実行ユーザーになると思います）を書き足してください。

* * *

ただし、サーバが外部(インターネット）に公開されている場合は直接HTTPサーバの実行ユーザーに権限を与えるのは避け、デバイスにアクセスする部分は別のユーザーの権限で実行させたほうが安全です。


CC BY-SA 3.0
2018-01-30T13:05:00.073
41330
2018-01-30T13:05:00.073
5793
41327
answer