diff --git a/zip/zip.go b/zip/zip.go index 84e974bce..6e412c956 100644 --- a/zip/zip.go +++ b/zip/zip.go @@ -656,9 +656,11 @@ func (z *ZipWriter) addFile(dest, src string, method uint16, emulateJar, srcJar UncompressedSize64: uint64(fileSize), } + mode := os.FileMode(0600) if executable { - header.SetMode(0700) + mode = 0700 } + header.SetMode(mode) err = createParentDirs(dest, src) if err != nil { diff --git a/zip/zip_test.go b/zip/zip_test.go index a37ae41e4..441dea3bd 100644 --- a/zip/zip_test.go +++ b/zip/zip_test.go @@ -62,7 +62,7 @@ func fh(name string, contents []byte, method uint16) zip.FileHeader { Method: method, CRC32: crc32.ChecksumIEEE(contents), UncompressedSize64: uint64(len(contents)), - ExternalAttrs: 0, + ExternalAttrs: (syscall.S_IFREG | 0600) << 16, } }