[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 언어를 사용하여 실행되는 프로세스의 권한을 제어할 수 있습니다.

참고 자료