Use sudo instead of a custom script
This commit is contained in:
@@ -71,8 +71,13 @@ func (c *vpnSession) baseHash(salt string, i int64) string {
|
||||
return fmt.Sprintf("%s%s%s%s", salt, c.Login, c.IP, i)
|
||||
}
|
||||
|
||||
func (c *vpnSession) AddRoute(script, ip string) error {
|
||||
cmd := exec.Command(script, "route", "replace", ip, "dev", c.dev)
|
||||
func (c *vpnSession) AddRoute(ip string) error {
|
||||
var cmd *exec.Cmd
|
||||
if os.Geteuid() == 0 {
|
||||
cmd = exec.Command("/bin/ip", "route", "replace", ip, "dev", c.dev)
|
||||
} else {
|
||||
cmd = exec.Command("/usr/bin/sudo", "/bin/ip", "route", "replace", ip, "dev", c.dev)
|
||||
}
|
||||
return cmd.Run()
|
||||
}
|
||||
|
||||
@@ -193,7 +198,7 @@ func (c *vpnSession) Auth(s *OpenVpnMgt) {
|
||||
ok = -10
|
||||
err = errIP
|
||||
} else {
|
||||
if err := c.AddRoute(s.ipRouteScript, ip); err != nil {
|
||||
if err := c.AddRoute(ip); err != nil {
|
||||
c.LogPrintln(err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user