プログラムに権限を付与する正しい方法

プログラムに権限を付与する正しい方法

職場には、より高いレベルの権限でタスク(IPパスの追加、Wi-Fi設定ファイルの設定、シリアルデバイスからの読み取り)を実行する必要がありますが、その「システムの他のタスクも開始できる「システム」(Python)エージェントがあります。プログラム、ファイルの読み取り/書き込み/ローカルデータベース。これまで、私は2つのオプションを知っています。

  1. 「デフォルト」ユーザーにより高いレベルの権限を追加し、一般ユーザーとして開始します。 「デフォルト」ユーザーは、エンジニアがログインしているユーザーです。
  2. 別の「テスト」ユーザーを作成し、これらの権限を持つ新しいグループを作成し、そのグループを「テスト」ユーザーに追加して、必要な権限を追加します。

私が知っている限り、オプション1はタスクを実行するための非常に「安全な」方法ではありません。
オプション2は、一般的なファイル権限と新しい端末の起動に困難があります(X11ディスプレイの問題)。これらのプログラムを実行すると、「テスト」ユーザーが使用され、デフォルトのユーザーはこれらのプログラムによって生成されたすべてのファイルにアクセスできません。さらに、「システム」はこのユーザーを自動的に設定できる必要があり、エージェントはUIを介して起動/停止できる必要があるため、「デフォルト」ユーザーとして起動する必要があり、パスワードが必要です。 「システム」ファイルに保存されます)

オプション2はそれほど価値がありますか、またはオプション1を選択する必要がありますか?また、この「システム」は職場の多くのコンピュータで使用されるので、これは私のパーソナルコンピュータだけではないことを指摘したいと思います。

ベストアンサー1

オペレーティングシステム関連の操作(ルーティング構成など)に対する権限を委任するには、ファイル権限を広範囲に変更する必要があります。 OTOH権限を持たないユーザーがデータファイルにアクセスできるように権限を設定することは、毎日行うことです。

プログラム許可

プログラムが実行される権限は、プログラムを呼び出すユーザーから継承されます。いくつかの例外がありますが、Linux / Unix(特にsetuid、MAC、および機能)についてもっと知るまでは、これらの例外を避ける必要があります。

ルーティングの変更を許可する権限を変更しようとすると、システムのセキュリティが損なわれる可能性があり、次回のアップグレードを適用すると変更が元に戻される可能性があります。

これら2つの異なるものには2つの異なるソリューションが必要です。

まず、ルーティングとWi-Fiの設定:これを行うには、sudoをrootとして設定します。可能であれば、動作を非対話型シェルスクリプトにパッケージ化してください。これはsudoバックドアを防ぐのに役立ちます。

「基本」ユーザーに

あなたのシステムでは、「デフォルトユーザー」が何を意味するのかわかりません。

データアクセス(つまり、Linuxディストリビューションによって維持されていないファイル)の場合は、さまざまな種類のアクセス権を持つ必要があるユーザーカテゴリを説明するモデルを定義し、標準グループを使用してそのアクセスを許可する必要があります。人間に似ていない対話型ユーザーアカウントを追加するのは間違ったパターンです。実際の既存ユーザーのグループを追加/削除します。

ヒント:chmod g+s $DIRNAME$ DIRNAMEで作成された新しいファイル/ディレクトリのグループ所有権は維持されます。

おすすめ記事