Parcourir la source

fix using rsync if running sftpgo as non-root user (#1535)

Signed-off-by: Jerome Küttner <j.kuettner@mittwald.de>
JK il y a 1 an
Parent
commit
2bbd8b3a5f
1 fichiers modifiés avec 3 ajouts et 1 suppressions
  1. 3 1
      internal/sftpd/cmd_unix.go

+ 3 - 1
internal/sftpd/cmd_unix.go

@@ -18,12 +18,14 @@
 package sftpd
 
 import (
+	"os"
 	"os/exec"
 	"syscall"
 )
 
 func wrapCmd(cmd *exec.Cmd, uid, gid int) *exec.Cmd {
-	if uid > 0 || gid > 0 {
+	isCurrentUser := os.Getuid() == uid && os.Getgid() == gid
+	if (uid > 0 || gid > 0) && !isCurrentUser {
 		cmd.SysProcAttr = &syscall.SysProcAttr{}
 		cmd.SysProcAttr.Credential = &syscall.Credential{Uid: uint32(uid), Gid: uint32(gid)}
 	}