UserCommands: add field CreateUserHome
This commit is contained in:
parent
95e85e8b45
commit
99c622b69f
@ -223,11 +223,8 @@ func (command *Command) RunCmd(cmdCtxLogger zerolog.Logger, opts *ConfigOpts) ([
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return collectOutput(&cmdOutBuf, command.Name, cmdCtxLogger, command.OutputToLog), fmt.Errorf("error creating file %s/authorized_keys: %v", userSshDir, err)
|
return collectOutput(&cmdOutBuf, command.Name, cmdCtxLogger, command.OutputToLog), fmt.Errorf("error creating file %s/authorized_keys: %v", userSshDir, err)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
|
||||||
if err != nil {
|
|
||||||
return collectOutput(&cmdOutBuf, command.Name, cmdCtxLogger, command.OutputToLog), fmt.Errorf("error opening file %s/authorized_keys: %v", userSshDir, err)
|
|
||||||
}
|
|
||||||
f, err = os.OpenFile(fmt.Sprintf("%s/authorized_keys", userSshDir), 0700, os.ModeAppend)
|
f, err = os.OpenFile(fmt.Sprintf("%s/authorized_keys", userSshDir), 0700, os.ModeAppend)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return collectOutput(&cmdOutBuf, command.Name, cmdCtxLogger, command.OutputToLog), fmt.Errorf("error opening file %s/authorized_keys: %v", userSshDir, err)
|
return collectOutput(&cmdOutBuf, command.Name, cmdCtxLogger, command.OutputToLog), fmt.Errorf("error opening file %s/authorized_keys: %v", userSshDir, err)
|
||||||
|
@ -115,6 +115,8 @@ type (
|
|||||||
|
|
||||||
UserShell string `yaml:"userShell,omitempty"`
|
UserShell string `yaml:"userShell,omitempty"`
|
||||||
|
|
||||||
|
UserCreateHome bool `yaml:"userCreateHome,omitempty"`
|
||||||
|
|
||||||
SystemUser bool `yaml:"systemUser,omitempty"`
|
SystemUser bool `yaml:"systemUser,omitempty"`
|
||||||
|
|
||||||
UserPassword string `yaml:"userPassword,omitempty"`
|
UserPassword string `yaml:"userPassword,omitempty"`
|
||||||
|
@ -294,6 +294,7 @@ func getCommandTypeAndSetCommandInfo(command *Command) *Command {
|
|||||||
command.UserHome,
|
command.UserHome,
|
||||||
command.UserShell,
|
command.UserShell,
|
||||||
command.SystemUser,
|
command.SystemUser,
|
||||||
|
command.UserCreateHome,
|
||||||
command.UserGroups,
|
command.UserGroups,
|
||||||
command.Args)
|
command.Args)
|
||||||
case "modify":
|
case "modify":
|
||||||
|
@ -15,7 +15,7 @@ func (l LinuxUserManager) NewLinuxManager() *LinuxUserManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// AddUser adds a new user to the system.
|
// AddUser adds a new user to the system.
|
||||||
func (l LinuxUserManager) AddUser(username, homeDir, shell string, isSystem bool, groups, args []string) (string, []string) {
|
func (l LinuxUserManager) AddUser(username, homeDir, shell string, createHome, isSystem bool, groups, args []string) (string, []string) {
|
||||||
baseArgs := []string{}
|
baseArgs := []string{}
|
||||||
|
|
||||||
if isSystem {
|
if isSystem {
|
||||||
@ -38,6 +38,11 @@ func (l LinuxUserManager) AddUser(username, homeDir, shell string, isSystem bool
|
|||||||
baseArgs = append(baseArgs, args...)
|
baseArgs = append(baseArgs, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if createHome {
|
||||||
|
baseArgs = append(baseArgs, "-m")
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
args = append(baseArgs, username)
|
args = append(baseArgs, username)
|
||||||
|
|
||||||
cmd := "useradd"
|
cmd := "useradd"
|
||||||
|
@ -10,7 +10,7 @@ import (
|
|||||||
// UserManager defines the interface for user management operations.
|
// UserManager defines the interface for user management operations.
|
||||||
// All functions but one return a string for the command and any args.
|
// All functions but one return a string for the command and any args.
|
||||||
type UserManager interface {
|
type UserManager interface {
|
||||||
AddUser(username, homeDir, shell string, isSystem bool, groups, args []string) (string, []string)
|
AddUser(username, homeDir, shell string, createHome, isSystem bool, groups, args []string) (string, []string)
|
||||||
RemoveUser(username string) (string, []string)
|
RemoveUser(username string) (string, []string)
|
||||||
ModifyUser(username, homeDir, shell string, groups []string) (string, []string)
|
ModifyUser(username, homeDir, shell string, groups []string) (string, []string)
|
||||||
// Modify password uses chpasswd for Linux systems to build the command to change the password
|
// Modify password uses chpasswd for Linux systems to build the command to change the password
|
||||||
|
Loading…
x
Reference in New Issue
Block a user