Я знаю, что есть /etc/group
файл, в котором перечислены все группы пользователей.
Я хотел бы знать, есть ли простая команда, чтобы вывести список всех имен групп пользователей, несмотря на разбор /etc/group
файла, читаемого в мире . Я хочу создать веб-страницу администратора, которая перечисляет имена групп учетных записей Linux.
Ответы:
Чтобы получить список всех локальных групп, которым назначены пользователи, используйте эту команду:
Для более инфоэтики> группы Unix , Cut команды , команда сортировки
источник
cut
- это другая команда, которая извлекает определенный столбец из входных данных. Здесь я извлекаю поле 1, где поля разделены:
Если вы хотите, чтобы все группы были известны системе, я бы рекомендовал использовать
getent group
вместо разбора/etc/group
:Причина в том, что в сетевых системах группы могут не только читать из
/etc/group
файла, но также получать через LDAP или «Желтые страницы» (список известных групп происходит из файла локальной группы плюс группы, полученные в этих случаях через LDAP или YP).Если вам нужны только имена групп, вы можете использовать:
источник
getent group | cut -d: -f1 | sort
getent group | cut -d: -f1 | sort | cat -n
.В Linux, macOS и Unix для отображения групп, к которым вы принадлежите, используйте:
которая эквивалентна
groups
утилите, которая устарела в Unix (согласно руководству Unix ).В macOS и Unix эта команда
id -p
предлагается для обычного интерактивного взаимодействия.Объяснение параметров:
источник
id -Gn someusername
возвращает список групп для указанного пользователя.id -Gnz | xargs -0 -I% echo %
перечислит каждую группу в отдельной строке. Это полезно, если в именах групп есть пробелы.groups
устарел? Есть источники? Я искал "устаревшие команды unix groups", но ничего не нашел.groups
.