fix: file permissions

This commit is contained in:
Markus Pesch 2021-04-11 13:37:32 +02:00
parent 2ef390bd8f
commit e7d5a6b92b
Signed by: volker.raschek
GPG Key ID: 852BCC170D81A982
1 changed files with 20 additions and 4 deletions

24
main.go
View File

@ -9,6 +9,7 @@ import (
"os"
"os/user"
"path/filepath"
"strconv"
"strings"
"github.com/spf13/cobra"
@ -51,7 +52,7 @@ Label:
func createAutorizationFile(authorizedKeyFile string) error {
err := os.MkdirAll(filepath.Dir(authorizedKeyFile), 700)
err := os.MkdirAll(filepath.Dir(authorizedKeyFile), 0700)
if err != nil {
return err
}
@ -207,10 +208,10 @@ func rootCmd(cmd *cobra.Command, args []string) error {
userAuthorizedKeys = addSSHKeys(userAuthorizedKeys, etcAuthorizedKeys)
}
return writeSSHKeysFile(userAuthorizedKeyFile, userAuthorizedKeys)
return writeSSHKeysFile(user, userAuthorizedKeyFile, userAuthorizedKeys)
}
func writeSSHKeysFile(authorizedKeyFile string, sshKeys []*sshKey) error {
func writeSSHKeysFile(u *user.User, authorizedKeyFile string, sshKeys []*sshKey) error {
if err := createAutorizationFile(authorizedKeyFile); err != nil {
return err
}
@ -221,7 +222,22 @@ func writeSSHKeysFile(authorizedKeyFile string, sshKeys []*sshKey) error {
}
defer f.Close()
return writeSSHKeys(f, sshKeys)
err = writeSSHKeys(f, sshKeys)
if err != nil {
return err
}
uid, err := strconv.Atoi(u.Uid)
if err != nil {
return err
}
gid, err := strconv.Atoi(u.Gid)
if err != nil {
return err
}
return os.Chown(authorizedKeyFile, uid, gid)
}
func writeSSHKeys(w io.Writer, sshKeys []*sshKey) error {