fix(bootstraper): adding system group management
This commit is contained in:
parent
a28563e8d6
commit
9bb4e93d65
|
@ -0,0 +1,49 @@
|
||||||
|
package templater
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"log"
|
||||||
|
|
||||||
|
"forge.cadoles.com/pcaseiro/templatefile/pkg/utils"
|
||||||
|
)
|
||||||
|
|
||||||
|
type SystemGroup struct {
|
||||||
|
GroupName string `json:"groupname"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SystemGroup) exists() (bool, error) {
|
||||||
|
_, _, err := utils.RunSystemCommand("getent", "group", sg.GroupName)
|
||||||
|
if err != nil {
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
|
return true, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SystemGroup) Manage() error {
|
||||||
|
exist, _ := sg.exists()
|
||||||
|
if exist {
|
||||||
|
log.Printf("\tGroup %s already exists", sg.GroupName)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return sg.Create()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SystemGroup) Create() error {
|
||||||
|
_, stdErr, err := utils.RunSystemCommand("groupadd", "-r", sg.GroupName)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("Group %s creation failed with error: %s %v", sg.GroupName, stdErr, err)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SystemGroup) Delete() error {
|
||||||
|
_, _, err := utils.RunSystemCommand("userdel", sg.GroupName)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SystemGroup) Update() error {
|
||||||
|
return nil
|
||||||
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
package templater
|
package templater
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
|
||||||
"forge.cadoles.com/pcaseiro/templatefile/pkg/utils"
|
"forge.cadoles.com/pcaseiro/templatefile/pkg/utils"
|
||||||
|
@ -31,10 +32,17 @@ func (su *SystemUser) Manage() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (su *SystemUser) Create() error {
|
func (su *SystemUser) Create() error {
|
||||||
_, _, err := utils.RunSystemCommand("useradd", "-b", su.Home, "-m", "-G", su.Group, su.UserName)
|
// Manage System Group
|
||||||
|
grp := SystemGroup{GroupName: su.Group}
|
||||||
|
err := grp.Manage()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_, stdErr, err := utils.RunSystemCommand("useradd", "-b", su.Home, "-m", "-N", "-g", su.Group, su.UserName)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("User %s creation failed with error: %s %v", su.UserName, stdErr, err)
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue