이 글에서는 주로 Linux의 sudo 네트워크 권한에 대한 자세한 설명을 소개합니다. 필요한 친구는
Linux
네트워크 프록시가 설정된 서버의 sudo 네트워크 권한에 대한 자세한 설명을 참조하세요. up, 현재 사용자로 실행 네트워크 접속에는 문제가 없는데, sudo를 통해 명령을 실행하면 "no network connect" 오류가 발생합니다.
Background
네트워크 프록시가 설정된 서버의 경우 현재 사용자로 네트워크 접속을 수행하는데는 문제가 없으나, sudo를 통해 명령을 실행하면 "no network connect" 오류가 발생합니다.
일반 권한 하에서는 wget이 성공합니다.
# wget https://github.com --2016-12-08 09:00:43-- https://github.com/ Connecting to 109.105.113.200:8080... connected. Proxy request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: ‘index.html' 2016-12-08 09:01:03 (1.33 KB/s) - ‘index.html' saved [25692] 使用sudo命令后,连接失败。 # sudo wget https://github.com --2016-12-08 09:01:41-- https://github.com/ Resolving github.com (github.com)... failed: Name or service not known. wget: unable to resolve host address ‘github.com'
Solution
이러한 상황이 발생하는 이유는 sudo 명령을 사용하여 일반 사용자가 슈퍼유저 권한으로 도구를 사용할 수 있도록 허용하지만 환경변수를 상속하지 않기 때문입니다. 네트워크 프록시 설정은 http_proxy 및 https_proxy와 같은 환경 변수를 설정하여 수행됩니다. 따라서 sudo 이후에는 네트워크 프록시가 손실되어 당연히 네트워크 연결이 없습니다. 이 문제를 해결하려면 sudo의 구성 파일을 수정해야 합니다. sudo 구성 파일을 수정하는 특별한 명령과 방법이 있습니다
sudo 구성 파일에 Defaults env_keep += "http_proxy https_proxy"를 추가하세요. 이 줄은 sudo 명령을 사용할 때 나중에 나열된 환경 변수를 저장한다는 것을 나타냅니다.
아아아아위 내용은 Linux에서 sudo 네트워크 권한에 대한 샘플 코드 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!