私は、私がシリアルデバイスにアクセスできるように私がWeb環境で持っている権限を昇格させたいという状況があります。ファイルアクセスのためのWeb環境での特権昇格
特定のケースでは、/dev/ttyUSB[0-9]
にあるモデムを設定するためのWebインターフェイスがあります。
ゼロ以上のモデムは、エンドユーザーによって接続されます。私は/sys/devices
を読んで、いくつかのATコマンドを使ってモデムと話すことによって、USBワイヤレスモデムであることを識別できるいくつかのソフトウェアを書いています。
ように私には、デバイスを開いて、何かをできるようにしたいと思います。問題はpyserial
このないことである
ser = serial.Serial(tty, baudrate=115200, timeout=10)
ser.write('AT+CGSN\r\n')
imei = ser.readline()
:portstrが/dev/ttyUSB0
あるシリアルポートを開き、self.fd = os.open(self.portstr, os.O_RDWR|os.O_NOCTTY|os.O_NONBLOCK)
を、それはそれをしません特権を持たないnobody
ユーザーとします。
このシステムのシリアルポートはroot:uucpが所有し、0660(つまりrw-rw----
)に設定されています。
nobody
のように、devでファイルを開くためにできるだけ少ない権限を持つべきユーザのための最良の方法は何ですか?私が検討していきます
アイデア:
- が
sudo
を使用してサブプロセスで物事を行います。 - ソフトウェアの別のAPIや片を用い
/dev/
(udevのは高く評価されて使用して適切にこれを行う方法について!) - 内のファイルのパーミッションを変更する私は考慮されていません。
これはおそらくこれまでに提案された最も実行可能なアイデアです。 – Jerub