今日、私は興味深いシナリオに直面しました(少なくともLinux初心者の私にとって)。ドローンをLinux PCに接続しました。ドローン構成ソフトウェア(Betaflight)をドローンに接続できません。クイックGoogle検索で問題を解決しました。デフォルトでは、ドローンをUSBケーブルで接続すると、ファイルが作成され、権限が付与され/dev/ttyUSB0
ます660
。ファイルの所有者はroot
、ファイルのグループはですuucp
。したがって、簡単な解決策は、このファイルを666
。
r
このファイルの権限を追加しました。w
みんな、これはとてもそうだと思います。あるいは、uucp
それは重要なグループなので、愚かなように見えるBetaflightをグループに追加したり、悪いように見えるsudoで実行したりすることができると思いました。
この問題を処理する正しい方法は何ですか?論理的には、rw
Betaflightがこの特定のファイルにアクセスできるように特別にルールを追加するのが妥当です。 「Linux方式」とは何か疑問に思います。私はランダムなアプリケーションが私のOSに過度にアクセスしたくないし、どんなアプリケーション/ユーザーも特定のファイルにアクセスしたくありません。
ベストアンサー1
Unix&Linux へ Andrzej を歓迎します。
付与する権限を最小限に抑えるには、以下をお勧めします。
- 専用グループを作成します(名前を指定します
drone
)。addgroup drone
/dev/ttyUSB0
グループに変更drone
:chgrp drone /dev/ttyUSB0
- ドローン設定ソフトウェア(と呼ばれる
/usr/bin/foo
)をこのグループに変更し、drone
このsetgid
ビットを有効にします。chgrp drone /usr/bin/foo; chmod g+s /usr/bin/foo
other
構成ソフトウェアの実行を無効にし、user1
ファイルACLを使用してそれを実行するための専用ユーザー(私たちが呼び出す)権限を付与するオプションがあります。chmod o-x /usr/bin/foo; setfacl -m u:user1:r-x /usr/bin/foo
sudo
3と4は、専用ユーザーがグループとして構成ソフトウェアを実行できるようにする使用に置き換えることができますdrone
。以下を追加できます/etc/sudoers
。
user1 ALL=(:drone) /usr/bin/foo
次に、次のように使用しますuser1
。sudo -g drone foo