permissão negada usando sudo

1

Eu tenho um alias no meu arquivo .bashrc que executa um arquivo python executável assim:

alias my-command="sudo -u apache /path/to/file.py"

Quando executo my-command , ele solicita minha senha sudo e, em seguida, executa o arquivo .py.

No entanto, o script python grava em um arquivo de log que somente o apache tem permissão para gravar. Quando executo o my-command , ele diz Permission denied quando tenta gravar nesse arquivo.

Quando executo sudo -u apache /path/to/file.py diretamente, o script é executado corretamente.

O que estou fazendo de errado aqui? Seria melhor alterar meu alias para:

my-command="/path/to/file.py"

e, em seguida, execute:

sudo -u apache my-command
    
por ajon 26.03.2014 / 16:02

2 respostas

2

A questão tinha a ver com caminhos relativos. Eu estava executando o alias my-command do meu diretório inicial. Meu script python estava escrevendo em um arquivo relativo ao diretório de trabalho. Quando eu corri o comando diretamente (sem o alias) eu estava rodando a partir do local do script python, então esse era o diretório de trabalho, então o script tinha permissão para escrever no arquivo.

Então, quando eu executo o comando alias do diretório correto, tudo funcionou como esperado.

    
por 26.03.2014 / 17:18
0

Se você quiser que o alias funcione, certifique-se de que o usuário e o grupo tenham as permissões corretas para executar esse arquivo. Você também quer ter certeza de que o mesmo usuário está tentando executar o alias, por exemplo. para ser usuário foo e seu .bashrc é para usuário de barra. Eu tive esse problema uma vez que eu defini as permissões corretas que funcionou para mim

    
por 26.03.2014 / 16:57