Limita a execução do programa a uma lista de argumentos

1

Eu gostaria que meus usuários Unix só pudessem executar um comando específico insecurecommand com uma lista controlada de argumentos armazenados em um arquivo.

A única solução que encontrei neste momento é:

  1. Crie um novo grupo de segurança chamado cmdxg
  2. Limite a execução do comando para este grupo:

    chown root:cmdxg /.../insecurecommand
    chmod 750 /.../insecurecommand
    
  3. Crie um wrapper setgid, que executa o comando:

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

O único problema é que insecurecommand é executado com gid=cmdxd e não com o usuário real gid. No entanto, gostaria de evitar a execução do comando insecurecommand setgid.

Se no código do wrapper, eu volto para o gid real com seteuid (), ele não pode mais executar o insecurecommand porque o processo perdeu o cmdxg direito.

É uma maneira de executar um comando que precisa de direitos privilegiados de gide, mas com o gid real?

Talvez eu precise decompor a execução do programa?

- > primeiro carregue o binário com o gid eficaz privilegiado - > voltar para o gid real - > execute o programa

Mas como posso fazer isso?

Alguma idéia?

    
por user3787257 29.06.2014 / 09:47

0 respostas