Есть ли команда для перечисления всех имен групп Unix?

Я знаю, что есть файл /etc/group, в котором перечислены все группы пользователей.

Я хотел бы знать, есть ли простая команда для перечисления всех имен групп пользователей, несмотря на разбор мирно читаемого файла /etc/group. Я готов создать веб-страницу администратора, в которой перечислены имена групп учетных записей Linux.

Ответ 2

Если вы хотите, чтобы все группы были известны системе, я бы порекомендовал использовать getent вместо разбора /etc/group. В сетевых системах группы могут не только читать из файла /etc/group но и получать их через LDAP или "Желтые страницы", то есть список известных групп происходит из файла локальной группы плюс группы, полученные через LDAP или YP.

getent group предоставит вам список всех групп в том же формате, который использует файл /etc/group.

Если вы хотите только имена групп, getent group | cut -d: -f1 getent group | cut -d: -f1 выполнит работу (так же, как и выше).

Ответ 3

В Linux, macOS и Unix для отображения групп, к которым вы принадлежите, используйте:

id -Gn

которая эквивалентна утилите groups которая устарела в Unix (согласно руководству Unix).

В macOS и Unix для нормальной интерактивной работы предлагается id -p команды id -p.

Объяснение параметров:

-G, --Groups - вывести все идентификаторы группы

-n, --name - печатать имя вместо числа, для -ugG

-p - сделать вывод понятным для человека.