>백엔드 개발 >Golang >\'sudo go run main.go\'가 Ubuntu 16.04에서 실행 파일을 찾지 못하는 이유는 무엇입니까?

\'sudo go run main.go\'가 Ubuntu 16.04에서 실행 파일을 찾지 못하는 이유는 무엇입니까?

DDD
DDD원래의
2024-11-15 15:58:02708검색

Why does

"sudo go run main.go" 권한 이해

"sudo go run main.go"로 Go 프로그램을 실행하려고 할 때 Ubuntu 16.04에서는 $PATH 변수에 실행 파일이 없다는 오류가 발생할 수 있습니다. 이는 "sudo" 명령이 기본적으로 환경 변수를 지워서 "go" 바이너리를 찾을 수 없기 때문에 발생합니다.

문제 해결

이 문제를 해결하려면 문제가 발생하면 프로그램을 컴파일할 때 "sudo" 명령을 우회해야 합니다. 대신 "go build" 또는 "go install"을 사용하여 승격된 권한 없이 바이너리를 빌드하세요. 바이너리가 컴파일되면 "sudo"를 사용하여 높은 권한으로 실행할 수 있습니다.

단계별 지침

  1. 다음이 포함된 디렉터리로 이동합니다. "main.go".
  2. 바이너리를 컴파일하지 않고 컴파일합니다. sudo:

    • go build
    • 또는 -
    • go install
  3. 상승된 권한으로 바이너리 실행 :

    • sudo ./mycapt
    • 또는 -
    • sudo $GOPATH/bin/mycapt

설명

Sudo 없이 바이너리를 먼저 빌드하면 필요한 환경이 보장됩니다. $GOPATH 및 $GOROOT와 같은 변수가 올바르게 설정되었습니다. sudo로 바이너리를 실행하면 환경 변수를 방해하지 않고 적절한 권한이 부여됩니다.

이 방법은 환경 변수의 무결성을 유지하면서 네트워크 패킷을 캡처하는 데 필요한 권한을 효과적으로 부여합니다.

위 내용은 \'sudo go run main.go\'가 Ubuntu 16.04에서 실행 파일을 찾지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.