permissão negada ao redirecionar a saída do sudo sed [duplicado]

1

Estou tentando instalar o drupal de acordo com as instruções fornecidas neste tutorial: link e estou preso em um passo:

$ cd /etc/apache2/sites-available
$ sudo sed 's/www/www\/drupal/g' default > drupal
bash: drupal: Permission denied

As permissões para /var/www/drupal estão definidas para 777.

    
por Bodhidarma 09.02.2012 / 22:15

3 respostas

1

O tutorial não usa sudo e requer um shell de root. Você pode obter um shell de root com sudo -i .

Caso você prefira sudo , o redirecionamento é tratado pelo shell e não pelo comando sudo . Portanto, você não pode criar um arquivo em /etc/apache2/sites-available direcionando a saída como fez. De acordo com o manual sudo , você deve usar um subshell como:

$ cd /etc/apache2/sites-available
$ sudo sh -c "sed 's/www/www\/drupal/g' default > drupal"
    
por 09.02.2012 / 22:40
0

Aparentemente, as permissões em /etc/apache2/sites-available não são 777, e é para isso que você está escrevendo sua saída. O redirecionamento é processado separadamente do sudo e você não tem permissões de gravação nele. Agora, não há nada sobre /var/www/drupal , é para onde você está tentando escrever? Nesse caso, você pode usar su -c "sed 's/www/www\/drupal/g' default > /var/www/drupal" ou sed 's/www/www\/drupal/g' default | sudo tee drupal .

    
por 09.02.2012 / 22:31
0

Primeiro, você não está em /var/www/drupal/ . Você está tentando criar o arquivo drupal at /etc/apache2/sites-available/ . Se você quiser que o arquivo seja criado em /var/www/drupal :

sed 's/www/www\/drupal/g' default >/var/www/drupal/drupal

Caso contrário:

sed 's/www/www\/drupal/g' default | sudo tee drupal
    
por 09.02.2012 / 22:30