소켓 바인딩 권한 부여
This commit is contained in:
@ -153,7 +153,11 @@ func prepareProcessLaunch(storageRoot string, req *shared.StartProcessRequest) *
|
||||
|
||||
if err == nil && fi.IsDir() {
|
||||
exefile := "./" + path.Clean(strings.TrimPrefix(req.Args[0], "/"))
|
||||
os.Chmod(path.Join(verpath, exefile), 0777)
|
||||
err = set_permission(path.Join(verpath, exefile))
|
||||
if err != nil {
|
||||
logger.Println("set_permission failed :", err)
|
||||
return nil
|
||||
}
|
||||
|
||||
exef, _ := os.Executable()
|
||||
cmd := exec.Command(path.Join(path.Dir(exef), verpath, exefile), req.Args[1:]...)
|
||||
|
||||
21
client/set_permission_linux.go
Normal file
21
client/set_permission_linux.go
Normal file
@ -0,0 +1,21 @@
|
||||
//go:build client && linux
|
||||
|
||||
package client
|
||||
|
||||
import (
|
||||
"os"
|
||||
"os/exec"
|
||||
)
|
||||
|
||||
func init() {
|
||||
file, _ := os.OpenFile("setcap.sh", os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0777)
|
||||
file.Write([]byte("sudo setcap 'cap_net_bind_service=+ep' $1"))
|
||||
file.Sync()
|
||||
file.Close()
|
||||
}
|
||||
|
||||
func set_permission(path string) error {
|
||||
os.Chmod(path, 0777)
|
||||
cmd := exec.Command("/bin/bash", "./setcap.sh", path)
|
||||
return cmd.Run()
|
||||
}
|
||||
7
client/set_permission_windows.go
Normal file
7
client/set_permission_windows.go
Normal file
@ -0,0 +1,7 @@
|
||||
//go:build client && windows
|
||||
|
||||
package client
|
||||
|
||||
func set_permission(path string) error {
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user