É possível executar a cláusula «a menos que» como um usuário específico?

2

Histórico:

Estou atualizando nosso módulo de marionetes lxc para dar suporte à tecnologia emergente LXC sem precedentes.

O código que cria o contêiner é executado, a menos que o teste a seguir, se o contêiner existir, seja bem-sucedido: lxc-info -n ${lxcname} >/dev/null . Se executado como root, o lxc-info verifica o nome entre os contêineres raiz. Se invocado por um usuário normal, ele verifica a lista de contêineres sem privilégios armazenados para esse usuário específico.

Eu quero criar um recurso ao longo das linhas de (código ainda não testado):

#Creation of the container ${name}
  exec { "lxc-create of ${hostname}":
    command => "lxc-create -t download -n ${name} -- -d ubuntu -r ${release} -a amd64",
    user    => $user,
    group   => $group,
    timeout => 0,
    unless  => "lxc-info -n ${name}" #Should be executed as user ${user}, not root!
  }

Eu posso corrigir esse problema se eu alterar o último parâmetro para

unless  => "su -l ${user} -c 'lxc-info -n ${name}'"

mas não parece elegante. Existe alguma solução embutida no boneco para fazer um teste como outro usuário?

    
por Adam Ryczkowski 17.12.2014 / 11:11

1 resposta

2

Como Felix disse, o menos usa o mesmo usuário que o comando principal.

Em a documentação :

unless

... Note that this command follows the same rules as the main command

Isso já foi esclarecido na documentação: link

    
por 08.04.2015 / 16:16

Tags