Skip to content

Commit 5b971c9

Browse files
fix(logger): permission settings
1 parent 8871174 commit 5b971c9

2 files changed

Lines changed: 24 additions & 3 deletions

File tree

backend/pkg/logger/base/logger.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"os"
66
"path"
77
"sync/atomic"
8+
"syscall"
89
"time"
910

1011
"github.com/Hyperloop-UPV/Hypervisor/pkg/abstraction"
@@ -59,7 +60,11 @@ func (sublogger *BaseLogger) CreateFile(filename string) (*os.File, error) {
5960
// Includes the direcory specified by the user
6061
baseFilename := path.Join(loggerHandler.BasePath, filename)
6162

62-
err := os.MkdirAll(path.Dir(baseFilename), os.ModePerm)
63+
// Mask to give permissions to the created file to everyone (including the parent directories)
64+
oldMask := syscall.Umask(0)
65+
defer syscall.Umask(oldMask)
66+
67+
err := os.MkdirAll(path.Dir(baseFilename), 0777)
6368
if err != nil {
6469
return nil, loggerHandler.ErrCreatingAllDir{
6570
Name: sublogger.Name,
@@ -68,7 +73,17 @@ func (sublogger *BaseLogger) CreateFile(filename string) (*os.File, error) {
6873
}
6974
}
7075

71-
return os.Create(path.Join(baseFilename))
76+
f, err := os.Create(baseFilename)
77+
if err != nil {
78+
return nil, err
79+
}
80+
81+
err = os.Chmod(baseFilename, 0777)
82+
if err != nil {
83+
return nil, err
84+
}
85+
86+
return f, nil
7287
}
7388

7489
// Create a base Logger with default values

backend/pkg/logger/status/logger.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"os"
66
"path"
77
"sync/atomic"
8+
"syscall"
89
"time"
910

1011
"github.com/Hyperloop-UPV/Hypervisor/pkg/abstraction"
@@ -57,14 +58,19 @@ func (sublogger *Logger) Start() error {
5758
}
5859

5960
func (sublogger *Logger) createFile() (*os.File, error) {
61+
6062
filename := path.Join(
6163
"logger",
6264
logger.Timestamp.Format(logger.TimestampFormat),
6365
"status",
6466
"status.csv",
6567
)
6668

67-
err := os.MkdirAll(path.Dir(filename), os.ModePerm)
69+
// Mask to give permissions to the created file to everyone (including the parent directories)
70+
oldMask := syscall.Umask(0)
71+
defer syscall.Umask(oldMask)
72+
73+
err := os.MkdirAll(path.Dir(filename), 0777)
6874
if err != nil {
6975
return nil, logger.ErrCreatingAllDir{
7076
Name: Name,

0 commit comments

Comments
 (0)