1
0

Now program must try to run as a user set in a config file.

init loggers from new config options.
This commit is contained in:
Alexander Andreev 2022-02-07 20:36:41 +04:00
parent 96512808a8
commit 43c52dd754
Signed by: Arav
GPG Key ID: 1327FE8A374CC86F

View File

@ -10,6 +10,8 @@ import (
"net/http"
"os"
"os/signal"
"os/user"
"strconv"
"syscall"
)
@ -23,19 +25,36 @@ func main() {
log.Fatalln(err)
}
logErr, err := logging.NewLogger(config.LogDir + "/error.log")
// Substitute user to the one in config
dwu, err := user.Lookup(config.User)
if err != nil {
log.Fatalln(err)
}
dwuid, err := strconv.Atoi(dwu.Uid)
if err != nil {
log.Fatalln(err)
}
if os.Getuid() != dwuid {
if err := syscall.Setuid(dwuid); err != nil {
log.Fatalln(err)
}
}
logErr, err := logging.NewLogger(config.Log.Error)
if err != nil {
log.Fatalln("failed to open error logger:", err)
}
defer logErr.Close()
logUpload, err := logging.NewLogger(config.LogDir + "/upload.log")
logUpload, err := logging.NewLogger(config.Log.Upload)
if err != nil {
log.Fatalln("failed to open upload logger:", err)
}
defer logUpload.Close()
logDownload, err := logging.NewLogger(config.LogDir + "/download.log")
logDownload, err := logging.NewLogger(config.Log.Download)
if err != nil {
log.Fatalln("failed to open download logger:", err)
}