Как посмотреть кто входит в группу linux
Перейти к содержимому

Как посмотреть кто входит в группу linux

  • автор:

Список групп пользователя Linux

В операционных системах семейства Linux у пользователя есть основная группа, а также определённое количество дополнительных групп. Это удачное, стратегически продуманное решение. С помощью этих групп можно давать пользователю доступ к нужным файлам в системе, не давая ему прав владельца этими файлами и не открывая для них общий доступ.

Более подробно про использование групп читайте в статье группы в Linux, а в этой заметке мы поговорим о том, как посмотреть список групп пользователя Linux.

Список групп пользователя Linux

Вы можете посмотреть список групп пользователя Linux двумя основными способами. Это команда id, которую мы уже разбирали в статье о том, как узнать id пользователя Linux, и команда groups. Чтобы вывести всю информацию о пользователе, используйте id:

Чтобы вывести только список групп текущего пользователя, необходимо использовать опцию -G:

Команда выводит идентификаторы групп, если вы хотите получить их имена, то необходимо добавить опцию -n:

Если надо узнать список групп для определённого пользователя, просто передайте его имя в качестве параметра:

id -Gn имя_пользователя

Следующий вариант просмотра списка групп — команда groups:

И точно также можно узнать группу пользователя Linux, передав его имя команде:

Ещё можно посчитать количество групп, в которых состоит пользователь Linux:

Выводы

Как видите, всё очень просто. Вы можете буквально с помощью одной команды посмотреть группы пользователей Linux, причём не только для текущего пользователя, а для всех, кто вас интересует. Если у вас остались вопросы, спрашивайте в комментариях!

Как вывести список групп в Linux

В Linux группа — это совокупность пользователей. Основная цель групп — определить набор привилегий, таких как разрешение на чтение, запись или выполнение для данного ресурса, которые могут быть совместно использованы пользователями внутри группы. Пользователи могут быть добавлены в существующую группу, чтобы использовать предоставляемые ею привилегии.

В этом руководстве объясняется, как показать все группы, в которые входит пользователь. Мы также объясним, как составить список всех членов группы.

Группы Linux

Пользователь может принадлежать к двум типам групп:

  • Первичная группа или группа входа в систему — это группа, которая назначается файлам, создаваемым пользователем. Обычно имя основной группы совпадает с именем пользователя. Каждый пользователь должен принадлежать ровно к одной основной группе.
  • Вторичная или дополнительная группа — используется для предоставления определенных привилегий набору пользователей. Пользователь может быть участником нуля или нескольких вторичных групп.

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

Есть несколько способов узнать, к каким группам принадлежит пользователь.

Основная группа пользователей хранится в /etc/passwd а дополнительные группы, если таковые имеются, перечислены в /etc/group .

Один из способов найти группы пользователей — перечислить содержимое этих файлов с помощью cat , less или grep . Другой более простой вариант — использовать команду, цель которой — предоставить информацию о пользователях и группах системы.

Использование команды groups

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

groups

Первая группа — это основная группа.

john adm cdrom sudo dip plugdev lpadmin sambashare

Чтобы получить список всех групп, к которым принадлежит конкретный пользователь, укажите имя пользователя для команды groups в качестве аргумента:

groups linuxize

Как и раньше, первая группа является первичной.

linuxize : linuxize sudo

Используя команду id

Команда id выводит информацию об указанном пользователе и его группах. Если имя пользователя не указано, отображается информация для текущего пользователя.

Например, чтобы получить информацию о пользователе linuxize вы должны ввести:

id linuxize

Команда покажет идентификатор пользователя ( uid ), основную группу пользователя ( gid ) и вторичные группы ( groups ) пользователя.

uid=1001(linuxize) gid=1001(linuxize) groups=1001(linuxize),27(sudo) 

Чтобы напечатать только имена вместо чисел, используйте параметр -n . Опция -g выведет только основную группу и -G все группы.

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

id -nG
john adm cdrom sudo dip plugdev lpadmin sambashare 

Список всех участников группы

Чтобы getent group список всех членов группы, используйте команду getent group за которой следует имя группы.

Например, чтобы узнать членов группы с именем « developers , воспользуйтесь следующей командой:

getent group developers

Если группа существует, команда напечатает группу и всех ее членов:

developers:x:126:frank,mary 

Если нет вывода, это означает, что группа не существует.

Список всех групп

Чтобы просмотреть все группы, присутствующие в системе, просто откройте файл /etc/group . Каждая строка в этом файле представляет информацию для одной группы.

less /etc/group

Другой вариант — использовать команду getent которая отображает записи из баз данных, настроенных в файле /etc/nsswitch.conf включая базу данных group которую мы можем использовать для запроса списка всех групп.

Чтобы получить список всех групп, введите следующую команду:

getent group

Вывод такой же, как при отображении содержимого файла /etc/group . Если вы используете LDAP для аутентификации пользователя, getent отобразит все группы как из файла /etc/group и из базы данных LDAP.

Вы также можете использовать awk или cut для печати только первого поля, содержащего имя группы:

getent group | awk -F: '< print $1>'
getent group | cut -d: -f1

Выводы

В этом руководстве вы узнали, как найти группы, членом которых является пользователь. Те же команды применимы для любого дистрибутива Linux, включая Ubuntu, CentOS, RHEL, Debian и Linux Mint.

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

Как узнать группы пользователей Linux

Как узнать группы пользователей Linux

Этот быстрый совет научит вас, как найти группы, к которым принадлежит пользователь Linux.

Группы являются неотъемлемой частью базовой безопасности файловой системы Linux. Если вы знаете о разрешениях для файлов в Linux, вы уже знаете, что группы играют огромную роль в ограничении и разрешении доступа к файлам только для желаемых пользователей.

Идея состоит в том, чтобы собрать пользователей в группу на основе их ролей. Таким образом, вы можете легко установить разрешения для предполагаемых групп пользователей. Например, пользователи в группах sudo могут запускать команды с привилегиями суперпользователя, в то время как другие пользователи не могут.

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

Проверьте группу пользователей в командной строке Linux

Чтобы узнать, к каким группам принадлежит ваша учетная запись, просто используйте эту команду:

groups

Это покажет все группы, к которым вы принадлежите.

andreyex@destroyer:~$ groups andreyex adm cdrom sudo dip plugdev lpadmin sambashare kvm

Как видите, пользователь andreyex принадлежит к группам andreyex, sudo, adm и нескольким другим группам.

Мы используем Ubuntu в этой статье, и Ubuntu создает группу с тем же именем, что и пользователь. Вот почему вы видите пользователя andreyex, принадлежащего к группе andreyex.

Узнайте группы других пользователей в Linux

Вы только что научились видеть группы, к которым принадлежите. Как насчет проверки групп других пользователей в вашей системе?

Вы, наверное, уже знаете, как составить список пользователей в Linux. Когда вы знаете имя пользователя, вы можете найти, к какой группе оно принадлежит, используя команду groups следующим образом:

groups имя_пользователя

Очевидно, вам придется заменить имя_пользователя в приведенной выше команде на имя другого пользователя.

andreyex@destroyer:~$ groups masterkey masterkey : masterkey sudo

Вы также можете проверить группы из более чем одного пользователя одновременно

groups user_1 user_2 user_3

Выходные данные будут отображать информацию о группах для каждого пользователя в отдельных строках:

andreyex@destroyer:~$ groups andreyex masterkey andreyex adm cdrom sudo dip plugdev lpadmin sambashare kvm masterkey : masterkey sudo

Вы можете видеть, что получение групповой информации о пользователе является простой задачей. Это может пригодиться во многих ситуациях, и мы позволим вам испытать их самостоятельно.

Надеюсь, этот небольшой совет помог вам составить список групп пользователей в Linux. Вы также можете прочитать о проверке членов группы в Linux.

Если у вас есть вопросы или предложения, пожалуйста, не стесняйтесь использовать раздел комментариев.

Сведения о пользователях и группах в Linux

img

В этой статье рассмотрим, как управлять учетными записями пользователей и групп в Linux. Также посмотрим различные базы данных, в которых хранится информация о пользователях и группах и что такое теневые пароли.

Изначально в Linux было 2 файла /etc/password и /etc/group . В первом файле хранилось:

password и group

Имя_пользователя : пароль : uid : gid : сведения (поле предназначено для персональных данных) : домашняя_папка : командная оболочк(которая запускается при входе пользователя в систему)

Во втором файле хранилось:

имя_группы : пароль : gid : члены_группы

У группы может быть пароль, но данную функцию очень редко, кто использует, в таком случае пароль будет запрашиваться при смене членства в группе. Данные файлы плохи тем, что у всех пользователей системы, по умолчанию, есть права на чтение. Такие права необходимы потому, что разные пользователи, разные демоны и сервисы обращаются к данным файлам, чтобы брать оттуда информацию. Соответственно в этих файлах хранился пароль пользователя, хотя и в зашифрованном виде, но с помощью различных методов криптографии подбора можно было воспользоваться данным паролем, потому что у всех пользователей был на эти файлы доступ.

Поэтому был создан механизм теневых паролей. Были созданы вот такие 2 файла: /etc/shadow и /etc/gshadow . И к этим двум файлам имеет полный доступ только пользователь root . Следовательно, теперь в файлах passwd и group указываются не пароли, а специальные символы, говорящие что пароли были перенесены в файлы shadow и gshadow .

shadow и gshadow

В новом файле shadow хранится побольше информации о пароле пользователя. Это:

  • Логин
  • Пароль
  • Время после смены пароля – это если пароль сбрасывался после времени установки системы
  • Минимальный срок действия пароля — как часто можно менять пароль, если, например, стоит 5 дней, то пароль можно менять не чаще, чем раз в 5 дней.
  • Максимальный срок действия пароля – максимальное количество дней, по прошествии которых обязательно необходимо сменить пароль.
  • Срок предупреждения – за сколько дней до истечения пароля система предупредит о том, что необходимо сменить пароль.
  • Время работы с истекшим паролем – это параметр позволяет указанное число дней работать с истекшим паролем.
  • Срок для блокировки пароля – данный параметр отвечает за время жизни самого пароля, например, пароль будет работать 100 дней, после этого заблокируется.

Соответственно данные параметры можно при необходимости задавать при создании учетной записи пользователя и паролей. Если провести аналогию с операционной системой Windows, то подобные параметры в Windows мы можем задавать через GPO (Group Policy Object — набор правил или настроек, в соответствии с которыми производится настройка рабочей среды в операционных системах Windows). Отличие заключается в том, что в Windows эти параметры выставляются в абсолютных величинах числом, а в операционной системе Linux, относительно даты 1 января 1970 года.

Ну и соответственно gshadow имеет следующую структуру, разделенную символом : .

gshadow

  • Имя группы
  • Пароль зашифрованный
  • Администраторы, те учетные записи, которые могут менять пароль группы или добавлять другие аккаунты
  • Члены групп

Следовательно, пароли могут хранится и в тех, и в тех файлах, отличие в том, что у пользователей есть доступ на чтение к файлам passwd и group , а к shadow и gshadow только у пользователя root . Данный механизм называется механизмом теневых паролей, и он присутствует во всех современных Linux системах.

Теперь, посмотрим, как это выглядит в операционной системе.

Заходим в файл passwd любым текстовым редактором, например, nano , без повышения привилегий.

passwd passwd

list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin

Логин — list , значок X говорит о том, что пароль хранится в теневом файле. Далее 38 – id пользователя, 38 — gid, прочая информация — Mailing List Manager , домашняя папка пользователя — /var/list и оболочка которая используется при входе — /usr/sbin/nologin .

Можно увидеть, что вместо оболочки у пользователя указан nologin – это означает, что пользователь не может войти, используя стандартный экран входа, используя стандартные средства. На картинке можно найти пользователя siadmin . Можно также увидеть все остальные параметры этого пользователя. У него совпадает uid и gid , это связанно с тем , что при создании пользователя создается одноименная группа. Можно, конечно, при создании указать, что пользователь будет входить в другую группу и не создавать одноименную, но по умолчанию она создается. В конце строчки мы можем увидеть /bin/bash , которая запускается при входе в систему. Можно обратить внимания на uid и gid все реальные пользователи их имеют числом выше 1000. Все пользователи, у которых число ниже – это служебные пользователи или созданные автоматически. В некоторых дистрибутивах Linux нумерация реальных пользователей начинается с 500.

Посмотрим файл с группами, вводим команду nano /etc/group

nano /etc/group

Данная база очень простая. Указано наименование группы, знак X говорит, о том, что пароль хранится в теневой базе, идентификатор группы и список пользователей в данной группе. Единственный нюанс — если пользователь входит в свою же группу, то после знака двоеточие пользователь не отображается.

Далее файлы /etc/shadow и /etc/gshadow , данные файлы не редактируются с помощью текстовых редакторов, а через специальные команды. Данные файлы — это просто хранилище информации. Эти утилиты будут рассмотрены в следующем уроке.

Зайти в эти файлы могут только пользователи имеющие права root или с помощью команды повышающей привилегии sudo .

sudo nano /etc/shadow

sudo nano /etc/shadow

Теперь мы видим в данном файле через двоеточие:

  • Имя пользователя
  • * или зашифрованный пароль
  • Срок с последнего изменения пароля в днях
  • Минимальный срок изменения пароля, если 0, то сменить пароль можно сразу
  • 99999 — срок действия пароля, 7 — количество дней за которое до истечения пароля придет предупреждение

Символ * говорит о том, что под данным пользователем нельзя зайти стандартным способом, обычно это применяется для служебных аккаунтов, т.е вход вообще заблокирован под данным аккаунтом.

Вот так вот реализуется механизм теневых паролей.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *