1

私はUBUNTu 12.04を使用しています。PC のシリアル ポートを使用するプログラム (正確には Java プログラム) をユーザー モードで実行したいと考えています。シリアルポート /dev/ttyS0 を開くと、常にポートビジー例外がスローされますが、これはあまり正しくありません:

許可のためにポートを使用できないだけです。ポートは root / dialout に属します。ttyS0 のグループをユーザーが属するグループに手動で設定すると、うまく機能します。ただし、次の 2 つの欠点があります。

  • 再起動後、設定が失われ、再適用する必要があります
  • このプログラムは意図的に Java で作成されており、インストールの手間がなく、使いやすい (そしてクロスプラットフォーム) ことを目的としています。sudo chgrp を使用したり、dialout グループにグループを追加したり、/etc/rc に chgrp コマンドを追加するなどして、将来のユーザーを混乱させたくありません。

質問は次のとおりです。

ユーザー権限を持つプログラムが、ユーザーの要求を (過度に) 要求せずにシリアル ポートにアクセスできるようにするにはどうすればよいですか? Javaプログラムの内外のソリューションは大歓迎です:-)

乾杯、タリク

4

1 に答える 1

2

説明した場合は、ユーザーをダイヤルアウト グループに追加する必要があります。グループは、デバイス ファイルへの読み取り/書き込みアクセスなど、特定のアクセス権をユーザーに付与するためによく使用されます。

ソフトウェアを配布したい場合、簡単な解決策はありません。システムの管理者は、ユーザーとグループの関係を設定し、ユーザーがプログラムを実行するために必要な権限を持っていることを確認する責任があります。

于 2013-05-26T09:28:05.057 に答える