Raspbianでデバイスの読み取りと書き込み権限を永久に設定するには?

Raspbianでデバイスの読み取りと書き込み権限を永久に設定するには?

私はRaspbian(DebianベースのRaspberry Pi用のディストリビューション)を使用しています。

i2cを使用するスクリプトがあります。

通常、ルートだけがi2cに対する読み取りおよび書き込み権限を持ちます。

このコマンドを使用して、一般ユーザーに i2c r/w 権限を追加します。

# chmod a+rw /dev/i2c-*

ただし、再起動すると、これらのデバイスにデフォルトの権限が付与されます。

何ですか最良の方法私のi2cを一般ユーザーが永久に読み書きできるようにしますか?

Raspberry Piが起動した後、上記のコマンドを実行するためにinit.dにスクリプトを追加するよりも「エレガントな」方法はありますか?

答え1

以下を使用してこれを実行できます。ウデブ。たとえば、/etc/udev/rules.dというサフィックスを含むファイルを作成し、次の行を追加します。.ruleslocal.rules

ACTION=="add", KERNEL=="i2c-[0-1]*", MODE="0666"

MODE=0666rw は所有者、グループ、世界を表します。代わりに、または同時に実行できることは、ノードのGIDを指定することです。たとえば、次のようになります。

GROUP="pi"

その設定の代わりにこの値を使用すると、デフォルトのMODE0660(所有者とグループの場合はrw)が適用されますが、グループは有効になり、piユーザーはpirw権限を持ちます。OWNER同じ方法で指定することもできます。

==上記との違いに注意してください=。前者は何かが正しいことをテストすることであり、後者はそれを設定することです。=それらを混ぜることを忘れないでください==

この内容を適用するには再起動する必要があります。


「udevルールの作成」を参照

答え2

一部のデバイスグループには、ルートではなくグループ所有者がいます。これには、ディスク、入力、サウンド、tty、およびシリアルデバイスが含まれます。これを行うには、ユーザーをグループに追加して、デバイスグループ全体へのアクセスを提供できます。

/dev/ttyUSB0たとえば、ユーザーにアクセス権を提供しますpi。お使いのls -lデバイスを購入し、

crw-rw---- 1 root dialout 4, 64 Jan 19 01:36 /dev/ttyUSB0

グループなので、グループにdialout追加するとpidialout/etc/group

dialout:x:20:pi

その後、ユーザーはpiログアウトして再度ログインして新しいグループメンバーシップを有効にできます。

関連情報