Obtendo permissão negada erro

0

Eu escrevi um script bash e ele é executado em segundo plano, dentro desse script eu usei o seguinte comando:

sshpass -p prakash123 ssh -t -p $1 prakash@localhost './update_script.sh > /update.out 2> /update.err < /dev/null | echo $! > /update.pid &'

Está funcionando bem. Mas eu quero mudar a localização do comando /update.out , /update.err e /update.pid So modified para isso:

sshpass -p prakash123 ssh -t -p $1 prakash@localhost './update_script.sh > /pra/log/update.out 2> /pra/log/update.err < /dev/null | echo $! > /pra/log/update.pid &'

Agora estou recebendo o erro de permissão negada.

Porque eu mudei o caminho dos arquivos de saída. Não tenho certeza, mas acho que preciso conceder a permissão de super usuário como su ou sudo antes do sshpass

Então, como posso alterar o caminho de /update.out , /update.err e /update.pid deste arquivo do comando acima.?

    
por Prakash V Holkar 08.04.2014 / 08:10

1 resposta

1

No primeiro comando, você está escrevendo a saída para um local onde você tem acesso de gravação, então está tudo bem.

Agora, o diretório /pra não existe por padrão, portanto, suponho que você o criou usando o acesso root. Então, para escrever, você precisa usar o acesso root também. Basta adicionar sudo ao comando como

sudo sshpass -p prakash123 ssh -t -p $1 prakash@localhost './update_script.sh > /pra/log/update.out 2> /pra/log/update.err < /dev/null | echo $! > /pra/log/update.pid &'

Mas, em vez de fazer isso, sugiro que você grave em um diretório em $HOME dir e conceda rwx------ permission (ou seja, leitura / gravação / execução para você e nenhuma permissão para outros). tem que usar sudo.

    
por Registered User 08.04.2014 / 10:49