Задать вопрос
  • Как получить группы, в которых состоит пользователь?

    @NortheR73
    системный инженер
    Я нашел func GroupIds пакета "os/user"
    вам нужен модуль/пакет/библиотека для Go для работы с LDAP/Active Directory...
    Далее в коде вы выполняете подключение к AD и LDAP-запрос с фильтром вида
    (&(objectClass=user)(sAMAccountName=yourUserName)(memberof=CN=YourGroup,OU=UsersOU,DC=YourDomain,DC=YourDomainExt))

    должен вернуться ненулевой результат, если конкретный пользователь (yourUserName) входит в конкретную доменную группу (YourGroup)
    Ответ написан
    Комментировать
  • Как получить группы, в которых состоит пользователь?

    Вот ответ для вашего конкретного случая в Windows.

    package main
    
    import (
    	"fmt"
    	"os/exec"
    	"strings"
    )
    
    func getGroups() ([]string, error) {
    	var groups []string
    
    	patch := "/groups"
    	cmd := exec.Command("whoami", patch)
    	output, err := cmd.Output()
    	if err != nil {
    		return nil, err
    	}
    
    	lines := strings.Split(string(output), "\n")
    	for _, line := range lines {
    		if strings.HasPrefix(line, "S-1-5-21") {
    			groups = append(groups, line)
    		}
    	}
    
    	return groups, nil
    }
    
    func main() {
    	groups, err := getGroups()
    	if err != nil {
    		fmt.Printf("Ошибка получения групп пользователя: %v\n", err)
    		return
    	}
    
    	fmt.Println("Группы пользователя:", groups)
    }
    Ответ написан