Найти количество групп, назначенных пользователю
Есть ли способ узнать количество групп, назначенных пользователю в 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' и ':' в подсчете, который мы получаем. Наконец, мы получаем общее количество групп, к которым принадлежит пользователь!