Исправление функционала повышения привилегий
All checks were successful
Pre-commit / pre-commit (push) Successful in 5m12s
Create Release / changelog (push) Successful in 3m8s

This commit is contained in:
2025-09-21 15:04:42 +03:00
parent 42f0d5e575
commit ef41d682a1
3 changed files with 99 additions and 59 deletions

View File

@@ -19,7 +19,6 @@ package utils
import (
"os"
"os/exec"
"os/user"
"github.com/leonelquinteros/gotext"
"github.com/urfave/cli/v2"
@@ -33,40 +32,10 @@ func IsNotRoot() bool {
return os.Getuid() != 0
}
// EnuseIsPrivilegedGroupMember проверяет, что пользователь является членом привилегированной группы (wheel)
// EnuseIsPrivilegedGroupMember проверяет, что пользователь является членом привилегированной группы (wheel/sudo)
// DEPRECATED: используйте CheckUserPrivileges() из utils.go
func EnuseIsPrivilegedGroupMember() error {
// В CI пропускаем проверку группы wheel
if os.Getenv("CI") == "true" {
return nil
}
// Если пользователь root, пропускаем проверку
if os.Geteuid() == 0 {
return nil
}
currentUser, err := user.Current()
if err != nil {
return err
}
privilegedGroup := GetPrivilegedGroup()
group, err := user.LookupGroup(privilegedGroup)
if err != nil {
return err
}
groups, err := currentUser.GroupIds()
if err != nil {
return err
}
for _, gid := range groups {
if gid == group.Gid {
return nil
}
}
return cliutils.FormatCliExit(gotext.Get("You need to be a %s member to perform this action", privilegedGroup), nil)
return CheckUserPrivileges()
}
func RootNeededAction(f cli.ActionFunc) cli.ActionFunc {