[go] go 언어의 exec 패키지를 사용하여 프로세스 실행 권한 설정하는 방법
Go 언어의 os/exec
패키지를 사용하면 외부 프로그램이나 스크립트를 실행할 수 있습니다. 이 패키지를 사용하여 실행되는 프로세스의 권한을 설정하는 방법을 살펴보겠습니다.
Step 1: exec.Command로 실행할 프로세스 설정
exec.Command
함수를 사용하여 실행할 프로세스를 설정합니다.
package main
import (
"fmt"
"os/exec"
)
func main() {
cmd := exec.Command("ls", "-l")
fmt.Println("cmd.Path:", cmd.Path)
fmt.Println("cmd.Args:", cmd.Args)
}
위의 예제에서는 ls -l
명령어를 실행할 준비를 합니다.
Step 2: 실행 권한 설정
실행할 프로세스의 권한을 설정하려면 cmd.SysProcAttr
를 사용합니다.
package main
import (
"fmt"
"os/exec"
"syscall"
)
func main() {
cmd := exec.Command("ls", "-l")
cmd.SysProcAttr = &syscall.SysProcAttr{
Credential: &syscall.Credential{
Uid: uint32(1000),
Gid: uint32(1000),
},
}
err := cmd.Run()
if err != nil {
fmt.Println("Error:", err)
}
}
위의 예제에서는 프로세스를 사용자 1000과 그룹 1000으로 실행하도록 설정했습니다.
위와 같은 방법으로 os/exec
패키지를 사용하여 실행 프로세스의 권한을 설정할 수 있습니다.
이렇게하면 Go 언어를 사용하여 실행되는 프로세스의 권한을 제어할 수 있습니다.