ユーザーの許可なしにユーザーとしてプログラムを実行しますか?

ユーザーの許可なしにユーザーとしてプログラムを実行しますか?

ルートで実行するのが恐ろしいプログラム(脆弱性がある可能性があります)がありますが、他のプログラムと同じように機能が機能しないようにユーザーの実行権限を設定したくありません。

最初に思い浮かぶのは、ルートで実行することです。(プログラムルートディレクトリ:ユーザー):

#!/bin/sh
chmod 750 program && su - user -c program; chmod 700 program

2番目の考えは、そのプログラムに対してのみユーザーを作成することですが、新しいユーザーが1つのプログラムに対してのみ権限を持ち、他のすべてのプログラムへのアクセスを拒否する権限を設定することを見たことはありません。また、プログラムがGUIを使用している場合、X11アクセスに問題がある可能性があります。

プログラムを非特権で実行したい(定期的)ユーザーですが、他のプロセスや他の人(もちろんルートは含まれていません)によってプログラムを実行したくありません。


たとえば、スクリーンショットプログラムがありますが、ブラウザにウイルスが入らずに自分で利用できるようにするにはどうすればよいですか?

これは言葉ではありません。ブラウザウイルスがプロセスを実行できる場合は、同じ機能を持つプログラムをダウンロードしたり、機能自体を実装したりするために必要なものがすべて揃っています。

最初に登場するのは、suidビットを使用してプログラムをインストールする場合は、それをインストールするにはrootアクセスが必要であることです。これは、ブラウザを介して侵入したがrootアクセスを持っていないウイルスがプログラムを使用できることを意味します。ユーザーアカウントでプログラムの実行が許可されていない場合、ウイルスはそのプログラムを実行せず、rootアクセスなしではプログラムをインストールできず、使用することもできません。


あるいは、私だけが実行できるように(ラッパーやパスワード、ルートなどでsudo経由で)キーストロークをシミュレートするプログラムがありますが、ウイルスや他のプログラム/プロセスは実行できません。

答え1

プログラムに対して特別な作業を行う必要はありません。 root は、説明したように、su や sudo など、好きなユーザーとしてプログラムを実行できます。ただし、ユーザーはプログラムを実行する必要があります。したがって、あなたが望むのは、他のユーザーにプログラムを実行させることはできませんが、そのユーザーがあなたのプログラムを実行することを許可しないことです。

ターゲットユーザー(または特にプログラム自体)が実行されている間にコピーを作成できるため、完全な「権限の変更、実行、再変更」も無駄になっているようです。あるいは、単にバックグラウンドに入って幸せに終了し、すでにバックグラウンドで実行されているので、ファイル権限に気を付ける必要はありません。

少なくともLinuxシステムでは、デフォルトでは権限がありませんが、多くの操作を実行してはいけないデーモンを実行するために使用される「nobody」ユーザーがいるのが一般的です。これらのユーザーは複数のユーザーである可能性がありますが、次の理由で保護したい項目について本当に考える必要があるかもしれません。

ルートで実行するのが恐ろしいプログラム(脆弱性がある可能性があります)がありますが、他のプログラムのようにその機能を使用できないようにユーザーの実行権限を設定したくありません。

無意味。他のプログラムにも同じセキュリティ問題があるか、同じプログラムをビルドできます。一体何でも実行できる能力と、通常のシェルの半分だけがインストールされていれば、コンピュータに完全なリモートシェルサービスを構築できるはずです。

これはちょっと似ています。

私は乗客がこのブランドのネジを飛行機に持ち歩くことを望んでいません。このネジには品質管理の問題があり、飛行機でネジをこのゴミに交換し始めるとどうなりますか?

問題は、乗客が損傷したネジにアクセスできるかどうかではなく、ドライバーで翼を持ち上げることができるかどうかです。

あなたはここで間違った結末を取得しようとしています。 (必ずしも素晴らしいわけではありませんが)Unix権限の概念により、ユーザーは常に混乱を招いたり、自分のファイルを公開したりできます。任意のソフトウェアを実行できる場合は、損傷から保護することはできません。

ユーザーが自分の範囲を超えたダメージからシステムを保護できます。ただし、実行可能ファイルを実行するのを防ぐのではなく(どうせユーザーができることだけを実行できます)、そのユーザーで実行されている項目が破損しないようにすることが重要です。これがファイル権限の用途、SELinuxのサポート機能などです。

また、プログラムがGUIを使用している場合、X11アクセスに問題がある可能性があります。

X11 クライアントが X11 サーバーにアクセスできるようにすると、デフォルトではゲームは終了します。たとえば、すべてのキーストロークを合成できます。端末を開き、rm -rf /と入力します。


したがって、実際には、自分が念頭に置いているセキュリティ境界が何であるかはよくわかりません。


たとえば、スクリーンショットプログラムがありますが、ブラウザにウイルスが入らずに自分で利用できるようにするにはどうすればよいですか?

これは言葉ではありません。ブラウザウイルスがプロセスを実行できる場合は、同じ機能を持つプログラムをダウンロードしたり、機能自体を実装したりするために必要なものがすべて揃っています。どちらもマルウェアで比較的一般的です。もう一度禁止特定実行ファイルは実際に何もないあなたのシステムを保護するため。

関連情報