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

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

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

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

 groups foo | awk {print $6}

я получил

 users

Я заблудился от того, как узнать, сколько у меня пользователей

2 ответа

Решение

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

groups | wc -w

wc -w будет считать количество слов, возвращаемых groups,

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

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

 grep "apple users" /etc/group

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

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

Способ-1:

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

запустить => крышка фу | туалет

Выход: 4

Способ-2:

run => groups username

Вывод: имя пользователя: имя пользователя group1 group2

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

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

foo: пользователи яблочного бара foo

run => groups foo | wc -w | xargs -I % expr % - 2

Выход: 4

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

Другие вопросы по тегам