質問: WebのブラウザからRaspberry Piのサーバーにアクセスした一般ユーザーに、音声とシリアル通信の権限を渡し操作を許可したいのですが・・・ 試したことは 音源の権限変更 ``` sudo chmod 666 /dev/snd/controlC0 sudo chmod 666 /dev/snd/pcmC0D0p ``` シリアル通信の権限変更 ``` sudo chmod 666 /dev/ttyACM0 ``` 上記で権限変更でき、目的の動作を確認できるのですが、リブートするたびにファイルが書き換えられて、元の状態の権限になっていることに気が付きました。 Raspberry Pi が初Linuxでサーバーを立てるのも初めてです。 どなたかわかりやすく教えていただけないでしょうか? Raspberry Pi3 jessie です。 よろしくお願いいたします。
回答: 一般論としては、パーミッションを変更するのではなく、ユーザーをデバイスファイルの所有グループに加えた方がよいです。 例えば`/dev/snd/controlC0`であれば ``` crw-rw---- 1 root audio 116, 0 Jan 20 23:12 controlC0` ``` のようになっていると思いますので、audioグループはこのデバイスを読み書きできます。ですので、audioグループにユーザーを追加すればそのユーザーがデバイスを読み書きできます。 ユーザーがどのグループに属しているかは`/etc/group`で管理されています。このファイルは直接編集せず、`vigr`コマンドを使って編集してください。上の例でaudioグループであれば audio:x:29:pi こんな行があるはずなので、末尾にカンマ区切りでユーザー(おそらくHTTPサーバの実行ユーザーになると思います)を書き足してください。 ただし、サーバが外部(インターネット)に公開されている場合は直接HTTPサーバの実行ユーザーに権限を与えるのは避け、デバイスにアクセスする部分は別のユーザーの権限で実行させたほうが安全です。