Script executado como outro usuário do root cria arquivos no diretório errado (root)

0

Estou executando um script básico de uma perspectiva raiz que inicia um programa no script

su -c "sh /home/user2/script.sh" -m user2

O problema é que o programa iniciado por este script, enquanto executado como user2 , ainda está tentando criar arquivos em /root/.config/ , que é claro falha porque não é permitido por user2 .

Estou fazendo algo errado? Existe outra maneira melhor de realmente alterar o usuário no script, digitar a senha do usuário e iniciar o programa?

    
por NaturalBornCamper 16.09.2017 / 00:47

1 resposta

2

Se você usar o parâmetro -m com su , ele passará seu ambiente atual para o comando ou shell que está sendo executado. Em particular, a variável $HOME será configurada para seu valor no shell de chamada e não determinada pelo usuário invocado.

Portanto, se você estiver logado como root , $HOME será /root e permanecerá assim ao executar script.sh sob su -m . A menos que haja outras partes do ambiente que você deseja preservar, você pode simplesmente omitir o -m da chamada su .

    
por 16.09.2017 / 11:09

Tags