найти количество групп, назначенных пользователю

найти количество групп, назначенных пользователю

Есть ли способ узнать количество групп, назначенных пользователю в Linux?

 as of right now i have:
 foo : foo bar apple users

Приложение, которое я использую, могло присвоить пользователю группу «пользователей Apple», но я не могу сказать, и когда я запустил

 groups foo | awk {print $6}

я получил

 users

Я не знаю, как узнать, сколько у меня пользователей.

решение1

Поскольку groupsвозвращается список групп, в которых находится ваша учетная запись, вы можете использовать следующее:

groups | wc -w

Функция wc -wподсчитает количество слов, возвращенных функцией groups.

решение2

Команда groups не учитывает группы с пробелами в своем выводе. Поэтому группа с пробелом в имени выводится так же, как две отдельные группы.

Я бы сделал это так:

 grep "apple users" /etc/group

Это должно вернуть что-то вроде

 apple users:x:1010:fred,barney,dino

решение3

Метод-1:

foo : foo bar пользователи apple (имя пользователя -> foo)

запустить => lid foo | wc -l

Выход: 4

Метод-2:

запустить => группы имя пользователя

Вывод: имя пользователя: имя пользователя группа1 группа2

=> имя пользователя группы | wc -w | xargs -I % expr % - 2

Вывод: 3 (Количество групп, к которым принадлежит пользователь)

foo : foo bar пользователи apple

запустить => группы foo | wc -w | xargs -I % expr % - 2

Выход: 4

Подсчитайте количество слов, которые возвращает groups, и вычтите 2, так как в полученном количестве есть лишние 'username' и ':'. Наконец, мы получаем общее количество групп, к которым принадлежит пользователь!

Связанный контент