Execute comandos interpretados dentro do sudo

0

A questão é como executar comandos genéricos que podem conter; & amp; & amp; | < > < < > > $ e assim por diante dentro do sudo.

Possíveis soluções podem ser:

  1. Para usar intérpretes no sudo

sudo /bin/bash -c 'command ; command | ...'

ou

sudo -s <<< 'command ; command | ...'

Mas eu não tenho sudoer / bin / bash / bin / sh ou quaisquer outras permissões. Então isso me permite permissão negada.

  1. Eu também poderia usar algo assim:

sudo command ; sudo command

Mas o problema é que eu preciso de uma solução funcionando para qualquer comando dado como um argumento para minha função (ver contexto)

Algum contexto:

Estou escrevendo um wrapper Popen python que tem um sinalizador sudo = True / False. If sudo is true Deve executar qualquer string de comando no sudo (o que significa que os comandos podem conter; | < > & amp; & amp;)

    
por Andrew Onischuk 27.11.2014 / 21:08

1 resposta

0

Talvez escrever os comandos em um shell script, tornando-o executável e executá-lo com o sudo, faça o que você precisa.

No entanto, o que você está fazendo é muito perigoso. Permitir que a linha de comando potencialmente não confiável seja executada como raiz é um desastre esperando para acontecer. Procure por tipo de vulnerabilidade "injeção de shell". Então, talvez considere rever o que precisa ser feito e, em seguida, reprojetá-lo sem a necessidade de executar qualquer comando como sudo.

    
por sмurf 28.11.2014 / 00:08