Как составить список групп с gid в redhat?

42

Сначала я перечислил группы, используя:

groups 

Я добавил группу, используя

groupadd -g 300 oinstall
groupadd –g 500 dba

а потом, когда я делаю

groups 
root bin daemon sys adm disk wheel sfcb

Я не могу найти группы, которые я добавил. Как составить список групп с идентификатором группы? Кроме того, если я пытаюсь добавить это снова, это говорит, что группы уже присутствуют.

Kinkajou
источник

Ответы:

67

Команда groupsвыводит список групп, членом которых в данный момент является пользователь, а не все группы, доступные в системе. Вы можете искать группу по имени или gid, используя getentкоманду.

getent group oinstall
getent group 500

Чтобы показать все группы, просто оставьте свой поисковый запрос вне команды:

getent group
jordanm
источник
2
@ Kitex, потому что вы создали группу, но не являетесь ее членом. Вам нужно добавить своего пользователя в группу, затем выйти из системы и снова войти в нее, чтобы она появилась с помощью groupsкоманды.
Иордания
1
@kitex Я немного обновил формулировку, надеюсь, это поможет вам понять.
Иордания
2
@Kitex обновил ответ
Иордания
3
@kinkajou много профессионального опыта, а также много времени, проведенного на таких сайтах, как этот и поддержка IRC Linux. Я был профессионалом и энтузиастом около 8 лет. Я думаю, что быть энтузиастом - важная часть, потому что вы, скорее всего, помните вещи, которые вас волнуют.
Иордания
1
@kinkajou Я использовал Gnu / Linux для всех своих домашних вычислений. Рабочие столы, ноутбуки, малины-пи. Я использую его с 1991 года (изначально Gnu на Solaris, Dec, HP). Я продолжаю добавлять к моим знаниям; Не нужно проходить через него и начинать заново (как в Windows от Microsoft).
Ctrl-Alt-Delor
9

Вы можете перечислить группы с помощью getentили, если не присутствует, посмотрите в/etc/group

При выполнении команды GID является третьим значением в выводе, например:

$ getent group
man:x:15:
audio:x:63:
nobody:x:99:
users:x:100:
<--snipped-->
utmp:x:22:

Таким образом, чтобы перечислить только имена групп и их GID, используйте awkдля печати столбцов, которые вы хотите, как это:

$ getent group | awk -F ":" '{ print $1,$3 }'
man 15
audio 63
nobody 99
users 100
<--snipped-->
utmp 22

Смотрите также http://man7.org/linux/man-pages/man1/getent.1.html

В случае, если getentнет.

$ grep $group /etc/group

GID является 3-м значением в выходных данных. Например

$ grep users /etc/group
users:x:100:

Выше GID для пользователей группы равен 100. Чтобы получить только имя группы и GID, вы можете использовать awk и grep следующим образом:

$ cat /etc/group | awk -F ":" '{ print $1,$3 }' 
man 15
audio 63
nobody 99
users 100
<--snipped-->
utmp 22

Помните, что для систем, настроенных на использование внешней аутентификации (например, LDAP), все группы не будут присутствовать в файле / etc / group. Смотрите также http://www.cyberciti.biz/faq/understanding-etcgroup-file/

M_dk
источник
6
Группы не всегда хранятся в /etc/group. Они могут храниться в NIS, LDAP и т. Д.
Иордания
1
Не работайте с ldap group, используйте getent group.
MUY Бельгия