Для вывода списка групп, в которых состоит конкретный пользователь используется команда groups.
При выполнении команды groups без аргументов, выводится список групп текущего пользователя.
# groups pingvinus adm cdrom sudo dip plugdev lpadmin sambashare
Можно указать имя пользователя, для которого нужно вывести список групп, в которых он состоит. Например, выведем группы, в которых состоит пользователь root.
# groups root root : root
Чтобы в Linux добавить существующего пользователя в группу используется команда usermod с ключами -a и -G группа. Например, добавим пользователя pingvinus в группу editorsgroup.
sudo usermod -a -G editorsgroup pingvinus
После выполнения данной команды пользователю pingvinus необходимо выйти и снова войти в систему. Можно воспользоваться командой su, чтобы войти от имени пользователя pingvinus в текущем сеансе.
# su - pingvinus # groups pingvinus adm cdrom sudo dip plugdev lpadmin sambashare editorsgroup
Удалим пользователя pingvinus из группы editorsgroup.
sudo gpasswd -d pingvinus editorsgroup
Чтобы изменения вступили в силу, нужно выйти и войти в систему.
Выведем список всех групп в текущей системе Linux.
cut -d: -f1 /etc/group | sort
Выведем список всех пользователей в текущей системе Linux.
cut -d: -f1 /etc/passwd
Обычно список довольно большой, так как содержит всех пользователей, включая пользователей, которые используются для запуска некоторых программ и служб.
root daemon bin sys sync games ... nobody pingvinus
Можно ограничить вывод только теми пользователями, для которых домашняя директория расположена в директории /home.
cat /etc/passwd | grep '/home' | cut -d: -f1
Результат значительно короче.
syslog ntp pingvinus