*nix 환경에서 작업할 때 사용자를 대신하여 외부 명령을 실행해야 하는 경우가 종종 있습니다. 다른 사용자. 전통적으로 이는 "su" 또는 "bash" 명령을 사용하여 수행됩니다. 그러나 Go의 os/exec 패키지를 사용하여 이 작업을 수행하는 더 안전하고 효율적인 방법이 있습니다.
다른 사용자로 외부 명령을 실행하는 핵심은 적절한 자격 증명을 설정하는 것입니다. 이는 syscall.Credential 구조체를 사용하여 수행할 수 있습니다.
cmd := exec.Command(command, args...) cmd.SysProcAttr = &syscall.SysProcAttr{} cmd.SysProcAttr.Credential = &syscall.Credential{Uid: uid, Gid: gid}
syscall.Credential 구조체의 Uid 및 Gid 필드를 원하는 사용자 및 그룹 ID로 설정하면 외부 명령이 적절한 ID로 실행됩니다. 특권.
위 내용은 Go에서 다른 사용자로 외부 명령을 어떻게 실행할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!