mirror of
https://github.com/caddyserver/caddy.git
synced 2024-12-27 06:03:48 +03:00
cmd: upgrade: inherit the permissions of the original executable (#4160)
This commit is contained in:
parent
dbe164d98a
commit
2aefe15686
1 changed files with 5 additions and 1 deletions
|
@ -577,6 +577,10 @@ func cmdUpgrade(_ Flags) (int, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return caddy.ExitCodeFailedStartup, fmt.Errorf("determining current executable path: %v", err)
|
return caddy.ExitCodeFailedStartup, fmt.Errorf("determining current executable path: %v", err)
|
||||||
}
|
}
|
||||||
|
thisExecStat, err := os.Stat(thisExecPath)
|
||||||
|
if err != nil {
|
||||||
|
return caddy.ExitCodeFailedStartup, fmt.Errorf("retrieving current executable permission bits: %v", err)
|
||||||
|
}
|
||||||
l.Info("this executable will be replaced", zap.String("path", thisExecPath))
|
l.Info("this executable will be replaced", zap.String("path", thisExecPath))
|
||||||
|
|
||||||
// get the list of nonstandard plugins
|
// get the list of nonstandard plugins
|
||||||
|
@ -654,7 +658,7 @@ func cmdUpgrade(_ Flags) (int, error) {
|
||||||
|
|
||||||
// download the file; do this in a closure to close reliably before we execute it
|
// download the file; do this in a closure to close reliably before we execute it
|
||||||
writeFile := func() error {
|
writeFile := func() error {
|
||||||
destFile, err := os.OpenFile(thisExecPath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0770)
|
destFile, err := os.OpenFile(thisExecPath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, thisExecStat.Mode())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("unable to open destination file: %v", err)
|
return fmt.Errorf("unable to open destination file: %v", err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue