プログラムの実行をパラメータリストに制限する

プログラムの実行をパラメータリストに制限する

insecurecommand私はUnixユーザーがファイルに保存された制御された引数のリストを使用してのみ特定のコマンドを実行できるようにしたいと思います。

これまで私が見つけた唯一の解決策は次のとおりです。

  1. 名前付きの新しいセキュリティグループを作成します。cmdxg
  2. コマンドの実行をこのグループに制限します。

    chown root:cmdxg /.../insecurecommand
    chmod 750 /.../insecurecommand
    
  3. 次のコマンドを実行する setgid ラッパーを作成します。

    ls -al /.../mywrapper
    -rwxr-sr-x 1 root cmdxg /.../mywrapper
    

唯一の問題は、insecurecommandユーザーの実際の gidgid=cmdxdではなく、ユーザーの実際の gid として実行されることです。しかし、insecurecommandsetgidコマンドを実行したくありません。

ラッパーコードでseteuid()を使用して実際のgidを返すと、プロセスは権限を失ったinsecurecommandため実行できなくなります。cmdxg

特権的なgid権限が必要ですが、実際のgidを持つコマンドを実行する方法はありますか?

たぶんプログラムの実行を中止する必要がありますか?

-> 特権有効な gid を使用して最初にバイナリファイルをロードする -> 実際の gid を返す -> プログラムを実行する

しかし、どうすればいいですか?

どんなアイデアがありますか?

ベストアンサー1

おすすめ記事