Как получить основную группу пользователя?

15

Следующая команда выведет список всех групп someUser(основная группа и дополнительные группы):

groups someUser

Но есть ли способ получить только первичную группу?

user7681202
источник
Разве первичная группа не указана первой?
simlev

Ответы:

22

Попробуйте следующие команды

id -g

id -gn

Брюс
источник
Некоторый оффтоп, но для получения текущего имени пользователя используйте id -un.
userlond
10

Смотрите FreeBSD справочник (информация также действительны для Linux):

ID группы (GID)

Идентификатор группы (GID) - это номер, используемый для уникальной идентификации основной группы, к которой принадлежит пользователь. Группы - это механизм управления доступом к ресурсам, основанный на GID пользователя, а не на его UID. Это может значительно уменьшить размер некоторых файлов конфигурации и позволяет пользователям входить в несколько групп. Рекомендуется использовать GID 65535 или ниже, поскольку более высокий GID может нарушить работу некоторых программ.

Если это так, бег id <username>покажет gid=<primary group>:

id <username>
uid=1000(<username>) gid=1000(<username>) groups=1000(<username>),4(adm),24(cdrom),27(sudo)

Если вы хотите, чтобы команда возвращала только имя основной группы, смотрите man id:

   -g, --group
          print only the effective group ID

   -G, --groups
          print all group IDs

   -n, --name
          print a name instead of a number, for -ugG

Итак, id -gn <username>должен дать вам то, что вы хотите.

simlev
источник
Это должен быть принятый ответ. Спасибо :)
grrigore