Skip to content

Commit 0c257a3

Browse files
[POA-1907] Update permissions of ec2 systemd files (#45)
* Added a new step in the file creation process to change the permission of files to 600, i.e., the file is only readable and writable to owners * This is to avoid exposure of sensitive data to other users. * Added the step in `templateUtils.go` instead of making it EC2-specific.
1 parent cbb0a2a commit 0c257a3

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

cmd/internal/ec2/add.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,8 @@ func configureSystemdFiles(projectID string) error {
216216
envFiledata.PostmanEnv = env
217217
}
218218

219-
err = util.GenerateAndWriteTemplateFile(envFileFS, envFileTemplateName, envFileBasePath, envFileName, envFiledata)
219+
// Generate and write the env file, with permissions 0600 (read/write for owner only)
220+
err = util.GenerateAndWriteTemplateFile(envFileFS, envFileTemplateName, envFileBasePath, envFileName, 0600, envFiledata)
220221
if err != nil {
221222
return err
222223
}
@@ -233,7 +234,8 @@ func configureSystemdFiles(projectID string) error {
233234
AgentInstallPath: agentInstallPath,
234235
}
235236

236-
err = util.GenerateAndWriteTemplateFile(serviceFileFS, serviceFileTemplateName, serviceFileBasePath, serviceFileName, serviceFileData)
237+
// Generate and write the service file, with permissions 0600 (read/write for owner only)
238+
err = util.GenerateAndWriteTemplateFile(serviceFileFS, serviceFileTemplateName, serviceFileBasePath, serviceFileName, 0600, serviceFileData)
237239
if err != nil {
238240
return err
239241
}

util/templateUtils.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ func GenerateAndWriteTemplateFile(
1414
templateName string,
1515
fileDirectory string,
1616
fileName string,
17+
filePermissions os.FileMode,
1718
data interface{},
1819
) error {
1920
// Parse the template file
@@ -29,16 +30,18 @@ func GenerateAndWriteTemplateFile(
2930
return errors.Wrapf(err, "Failed to create %s directory\n", fileDirectory)
3031
}
3132

32-
// Create the file
33-
file, err := os.Create(fileDirectory + fileName)
33+
// Create the file with the given permissions
34+
file, err := os.OpenFile(fileDirectory+fileName, os.O_RDWR|os.O_CREATE|os.O_TRUNC, filePermissions)
3435
if err != nil {
35-
return errors.Wrapf(err, "Failed to create %s file in %s directory\n", fileName, fileDirectory)
36+
return errors.Wrapf(err, "Failed to create %s file in %s directory with permissions %d\n", fileName, fileDirectory, filePermissions)
3637
}
38+
defer file.Close()
3739

3840
// Write the data to the file
3941
err = tmpl.Execute(file, data)
4042
if err != nil {
4143
return errors.Wrapf(err, "Failed to write values to %s file\n", fileName)
4244
}
45+
4346
return nil
4447
}

0 commit comments

Comments
 (0)