From 12e61e1636681f300355b8f2e0f1d1630d9df233 Mon Sep 17 00:00:00 2001 From: zhanghan Date: Fri, 10 Dec 2021 09:34:56 +0800 Subject: [PATCH] add get user info and modify log output --- pkg/utils/os/cpu.go | 3 +- pkg/utils/os/disk.go | 5 ++- pkg/utils/os/firewall.go | 66 +++++++++++++++++----------------- pkg/utils/os/user.go | 78 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 116 insertions(+), 36 deletions(-) diff --git a/pkg/utils/os/cpu.go b/pkg/utils/os/cpu.go index b760e7f8..87eedec5 100644 --- a/pkg/utils/os/cpu.go +++ b/pkg/utils/os/cpu.go @@ -7,6 +7,7 @@ import ( "strconv" "strings" + "openeluer.org/PilotGo/PilotGo/pkg/logger" "openeluer.org/PilotGo/PilotGo/pkg/utils" ) @@ -44,7 +45,7 @@ func GetPhysicalCPU() int { num = strings.Replace(num, "\n", "", -1) cpunum, err := strconv.Atoi(num) if err != nil { - fmt.Println("获取cpu个数失败!") + logger.Error("获取cpu个数失败!") } return cpunum } diff --git a/pkg/utils/os/disk.go b/pkg/utils/os/disk.go index 2753e97f..b2ae6acb 100644 --- a/pkg/utils/os/disk.go +++ b/pkg/utils/os/disk.go @@ -1,9 +1,8 @@ package os import ( - "fmt" - "github.com/shirou/gopsutil/disk" + "openeluer.org/PilotGo/PilotGo/pkg/logger" ) type DiskIOInfo struct { @@ -31,7 +30,7 @@ func GetDiskUsageInfo() []DiskUsageINfo { diskusage := make([]DiskUsageINfo, 0) parts, err := disk.Partitions(true) if err != nil { - fmt.Printf("get Partitions failed, err:%v\n", err) + logger.Error("get Partitions failed, err:%v\n", err) return nil } for _, part := range parts { diff --git a/pkg/utils/os/firewall.go b/pkg/utils/os/firewall.go index 63083ad5..6017ebf9 100644 --- a/pkg/utils/os/firewall.go +++ b/pkg/utils/os/firewall.go @@ -1,57 +1,59 @@ package os import ( - "fmt" - "openeluer.org/PilotGo/PilotGo/pkg/utils" + "fmt" + + "openeluer.org/PilotGo/PilotGo/pkg/logger" + "openeluer.org/PilotGo/PilotGo/pkg/utils" ) type ZonePort struct { - Zone string - Port int + Zone string + Port int } func Restart() bool { - tmp, _ := utils.RunCommand("service firewalld restart") - if len(tmp) != 0 { - fmt.Println("重启防火墙失败!") - return false - } - return true + tmp, _ := utils.RunCommand("service firewalld restart") + if len(tmp) != 0 { + logger.Error("重启防火墙失败!") + return false + } + return true } func Config() bool { - tmp, _ := utils.RunCommand("firewall-cmd --list-all") - if len(tmp) != 0 { - fmt.Println("重启防火墙失败!") - return false - } - return true + tmp, _ := utils.RunCommand("firewall-cmd --list-all") + if len(tmp) != 0 { + logger.Error("获取防火墙配置失败!") + return false + } + return true } func Reload() bool { - tmp, _ := utils.RunCommand("firewall-cmd --reload") - if len(tmp) != 0 { - fmt.Println("更新防火墙失败!") - return false - } - return true + tmp, _ := utils.RunCommand("firewall-cmd --reload") + if len(tmp) != 0 { + logger.Error("更新防火墙失败!") + return false + } + return true } func Stop() bool { - tmp, _ := utils.RunCommand("service firewalld stop") - if len(tmp) != 0 { - fmt.Println("关闭防火墙失败!") - return false - } - return true + tmp, _ := utils.RunCommand("service firewalld stop") + if len(tmp) != 0 { + logger.Error("关闭防火墙失败!") + return false + } + return true } func DelZonePort(zp *ZonePort) string { //zone = block dmz drop external home internal public trusted work - tmp, _ := utils.RunCommand(fmt.Sprintf("firewall-cmd --permanent --zone=public --remove-port=%v/tcp", zp.Port)) - return tmp + tmp, _ := utils.RunCommand(fmt.Sprintf("firewall-cmd --permanent --zone=public --remove-port=%v/tcp", zp.Port)) + return tmp } func AddZonePortPermanent(zp *ZonePort) string { //zone = block dmz drop external home internal public trusted work - tmp, _ := utils.RunCommand(fmt.Sprintf("firewall-cmd --permanent --zone=public --add-port=%v/tcp", zp.Port)) - return tmp + tmp, _ := utils.RunCommand(fmt.Sprintf("firewall-cmd --permanent --zone=public --add-port=%v/tcp", zp.Port)) + return tmp } diff --git a/pkg/utils/os/user.go b/pkg/utils/os/user.go index cf1f67e0..926bb135 100644 --- a/pkg/utils/os/user.go +++ b/pkg/utils/os/user.go @@ -1 +1,79 @@ package os + +import ( + "bufio" + "fmt" + "os/user" + "strings" + + "openeluer.org/PilotGo/PilotGo/pkg/logger" + "openeluer.org/PilotGo/PilotGo/pkg/utils" +) + +// 获取当前用户信息 +type CurrentUser struct { + Username string + Userid string + GroupName string + Groupid string + HomeDir string +} + +// 获取所有用户的信息 +type AllUserInfo struct { + Username string + UserId string + GroupId string + Description string + HomeDir string + ShellType string +} + +func handleErr(err error) { + if err != nil { + fmt.Println(err) + } +} + +func GetCurrentUserInfo() CurrentUser { + u, err := user.Current() + handleErr(err) + userinfo := CurrentUser{ + Username: u.Username, + Userid: u.Gid, + GroupName: u.Name, + Groupid: u.Uid, + HomeDir: u.HomeDir, + } + return userinfo +} + +func GetAllUserInfo() []AllUserInfo { + tmp, err := utils.RunCommand("cat /etc/passwd") + if err != nil { + logger.Error("获取失败!%s", err) + } + reader := strings.NewReader(tmp) + scanner := bufio.NewScanner(reader) + var allUsers []AllUserInfo + for { + + if !scanner.Scan() { + break + } + line := scanner.Text() + line = strings.TrimSpace(line) + strSlice := strings.Split(line, ":") + users := AllUserInfo{ + Username: strSlice[0], + UserId: strSlice[2], + GroupId: strSlice[3], + Description: strSlice[4], + HomeDir: strSlice[5], + ShellType: strSlice[6], + } + allUsers = append(allUsers, users) + } + + return allUsers +} -- Gitee