Ограничить выполнение программы до списка аргументов

Я хотел бы, чтобы мои пользователи Unix могли запускать только определенную команду insecurecommand с контролируемым списком аргументов, хранящихся в файле.

Единственное решение, которое я нашел в это время, это:

  1. Создайте новую группу безопасности, называемую cmdxg
  2. Ограничьте выполнение команды для этой группы:

     chown root:cmdxg /.../insecurecommand chmod 750 /.../insecurecommand 
  3. Создайте обертку setgid, которая выполняет команду:

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

Единственная проблема заключается в том, что gid=cmdxd выполняется с gid=cmdxd а не с реальным gid пользователями. Тем не менее, я хотел бы избежать запуска команды setecid команды insecurecommand.

Если в коде обертки я возвращаюсь к реальному gid с помощью seteuid (), он больше не может запустить команду insecurecommand , потому что процесс потерял cmdxg вправо.

Это способ запустить команду, которая требует привилегированных прав gid, но с реальным gid?

Может быть, мне нужно разложить выполнение программы?

-> сначала загрузите двоичный файл с привилегированным эффективным gid -> вернитесь к реальному gid -> запустите программу

Но как я могу это сделать?

Есть идеи ?

Linux и Unix - лучшая ОС в мире.