Ubuntu에서 bash 스크립트를 통해 '/etc/network/interfaces' 파일을 편집할 수 없습니다.

Ubuntu에서 bash 스크립트를 통해 '/etc/network/interfaces' 파일을 편집할 수 없습니다.

가능한 중복:
sudo 권한이 거부되었습니다

bash 스크립트를 통해 /etc/network/interfaces를 편집해야 하는데 아래와 같은 작업을 수행하고 있습니다...

sudo echo something > /etc/network/interfaces

이 줄을 실행하면 아래와 같은 오류가 발생합니다. bash: /etc/network/interfaces: Permission denied

하지만 일부 편집기로 동일한 파일을 편집하면 완벽하게 작동합니다...예:

sudo nano /etc/network/interfaces

위에서 이 파일을 편집하겠습니다.

답변1

이 질문에 대한 답변은 이미 이 사이트 어딘가에 나와 있지만 찾지 못했습니다.

그러나 기본적으로는 다음과 같습니다.

sudo nano /etc/network/interfaces시작하다나노 /etc/네트워크/인터페이스uid 0으로. nano는 uid 0에서 실행되고 /etc/network/interfaces에 쓸 수 있는 권한을 갖기 때문입니다.

sudo echo something > /etc/network/interfaces시작하다뭔가를 반향하다uid 0으로. 해당 부분은 성공합니다. 출력은 >/etc/network/interfaces`로 리디렉션됩니다. 그러나 이 리디렉션은 귀하의 계정으로 수행됩니다. 그리고 그 사람은 해당 위치에 쓸 수 있는 권한이 없습니다.


대신 이것을 시도해 보세요:
sudo bash -c "echo something > /etc/network/interfaces"

bash를 uid 0으로 실행하고 bash가 전체 명령을 uid 0으로 실행하도록 해야 합니다.

아니면 단순히 su -뿌리를 내리는 것입니다. 루트로 항상 실행하는 것은 권장되지 않지만, 모든 줄 앞에 sudo 명령을 입력하지 않고도 단순히 충분한 권한을 갖고 싶을 때가 있습니다. 루트를 기본 사용자로 사용하지 마십시오. 이를 사용하여 시스템을 설치하고 구성하는 것은 좋습니다.

관련 정보