LINUX.ORG.RU

Определить пользователя, входящего в макс. число групп (shell)


0

0

В соседней теме я спрашивал, как отсортировать групы по числу пользователей. Для этого ищем число запятых в 4 поле etc/groups и сортируем по результату.
Теперь обратная задача. Как найти пользователя, входящего в наибольшее число групп, исключая root и виртуальных?
Задачи одной темы, но как сделать не пойму)

Ответ на: комментарий от sjinks

Что-то честно говоря не пойму, как здесь выбирается пользователь, входящий в максимальное число групп. Можете объяснить подробнее?

VitalySM
() автор топика
Ответ на: комментарий от VitalySM

/etc/group имеет вид

group_name:passwd:GID:user_list

cut -d : -f 4 /etc/group выбирает четвертое поле (user_list), sed 's/,/\n/g' заменяет запятые символом новой строки, grep -v ^$ убирает пустые строки, sort сортирует результат, uniq -c оставляет только уникальные записи и пишет, сколько раз встречалась каждая запись, sort -r сортирует результат по убыванию по полю «сколько раз встречалась каждая запись».

На выходе будет что-то вида

8 vladimir
1 logcheck

sjinks ★★★
()
Ответ на: комментарий от sjinks

спасибо!
по своей задаче исключил из списка пользователей юзера root добавлением grep -v «root» в конце
А как еще исключить виртуальных пользователей?

VitalySM
() автор топика
Ответ на: на правах зануды от beastie

Согласен :-)

Я grep оставлял для возможной фильтрации пользователей.

sjinks ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.