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