sudo sed 출력을 리디렉션할 때 권한이 거부되었습니다.

sudo sed 출력을 리디렉션할 때 권한이 거부되었습니다.

중복 가능성:
쓰기 권한이 없는 파일로 표준 출력을 리디렉션합니다.

이 튜토리얼에 제공된 지침에 따라 drupal을 설치하려고 합니다. http://how-to.linuxcareer.com/how-to-install-drupal-7-on-ubuntu-linux 한 단계에서 막혔습니다.

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

권한은 /var/www/drupal777로 설정되어 있습니다.

답변1

sudo이 자습서에서는 루트 셸을 사용하지 않으며 필요합니다. 를 사용하여 루트 쉘을 얻을 수 있습니다 sudo -i.

를 선호하는 경우 sudo리디렉션은 sudo명령이 아닌 셸에 의해 처리됩니다. 따라서 /etc/apache2/sites-available이전처럼 부팅 출력에서 ​​파일을 생성 할 수 없습니다 . sudo매뉴얼 에 따르면 , 다음과 같은 서브쉘을 사용해야 합니다:

$ cd /etc/apache2/sites-available
$ sudo sh -c "sed 's/www/www\/drupal/g' default > drupal"

답변2

분명히 권한은 /etc/apache2/sites-available출력을 작성하는 777이 아닙니다. 리디렉션은 별도로 처리되며 sudo쓰기 권한이 없습니다. 자, 거기에는 아무것도 없습니다 /var/www/drupal. 거기에 글을 쓰실 건가요? 그렇다면 su -c "sed 's/www/www\/drupal/g' default > /var/www/drupal"또는 를 사용할 수 있습니다 sed 's/www/www\/drupal/g' default | sudo tee drupal.

답변3

우선, 당신은 여기 없습니다 /var/www/drupal/. drupal에 파일을 생성 하려고 합니다 /etc/apache2/sites-available/. 다음 위치에 파일을 생성하려는 경우 /var/www/drupal:

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

그렇지 않으면:

sed 's/www/www\/drupal/g' default | sudo tee drupal

관련 정보