X-Git-Url: https://ruderich.org/simon/gitweb/?p=nsscash%2Fnsscash.git;a=blobdiff_plain;f=file.go;h=e06a9bce335ccc4e4444e5f8ea9502d27df09eba;hp=0857dd50f14dde2fa1d0a7507fbe9e3ac17ad499;hb=0cc987b1bcb7b16da4f46d84d216df3f6ef457e1;hpb=6383e468f1d5b281159cd46d800204a1aa718cd2 diff --git a/file.go b/file.go index 0857dd5..e06a9bc 100644 --- a/file.go +++ b/file.go @@ -89,7 +89,8 @@ func fetchFile(file *File, state *State) error { t = zero // force download } - status, body, err := fetchIfModified(file.Url, &t) + status, body, err := fetchIfModified(file.Url, + file.Username, file.Password, file.CA, &t) if err != nil { return err } @@ -171,15 +172,16 @@ func deployFile(file *File) error { defer os.Remove(f.Name()) defer f.Close() - // Apply permissions/user/group from the target file, use Stat instead - // of Lstat as only the target's permissions are relevant + // Apply permissions/user/group from the target file but remove the + // write permissions to discourage manual modifications, use Stat + // instead of Lstat as only the target's permissions are relevant stat, err := os.Stat(file.Path) if err != nil { // We do not create the path if it doesn't exist, because we // do not know the proper permissions return errors.Wrapf(err, "file.path %q must exist", file.Path) } - err = f.Chmod(stat.Mode()) + err = f.Chmod(stat.Mode() & ^os.FileMode(0222)) // remove write perms if err != nil { return err }