![Ubuntu에서 bash 스크립트를 통해 '/etc/network/interfaces' 파일을 편집할 수 없습니다.](https://rvso.com/image/1344715/Ubuntu%EC%97%90%EC%84%9C%20bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%ED%86%B5%ED%95%B4%20'%2Fetc%2Fnetwork%2Finterfaces'%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%ED%8E%B8%EC%A7%91%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
가능한 중복:
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 명령을 입력하지 않고도 단순히 충분한 권한을 갖고 싶을 때가 있습니다. 루트를 기본 사용자로 사용하지 마십시오. 이를 사용하여 시스템을 설치하고 구성하는 것은 좋습니다.