- Группы пользователей в Linux: создаем группы, добавляем и удаляем из них пользователей
- Создание групп
- Создание пользователей
- Добавление пользователя в группу
- Удаление пользователя из вторичной группы
- Заключение
- Как посмотреть список групп в Linux
- Узнаем через команду id
- Узнаем через команду groups
- Заключение
- Как вывести список групп в Linux
- Группы Linux
- Список всех групп, членом которых является пользователь
- Использование команды groups
- Используя команду id
- Список всех участников группы
- Список всех групп
- Выводы
Группы пользователей в Linux: создаем группы, добавляем и удаляем из них пользователей
Перевод статьи «Linux User Groups Explained: How to add a new group, a new group member, and change groups».
Linux позволяет многочисленным пользователям работать в системе одновременно. Установка прав доступа защищает пользователей друг от друга. Для объединения пользователей с одинаковыми правами доступа создаются группы. Члены этих групп могут, например, иметь доступ к каким-то файлам или устройствам, в то время как для остальных пользователей доступ будет закрыт.
Часто группы создаются, чтобы дать отдельным пользователям право модифицировать файл или директорию.
Группы бывают двух основных видов: первичные и вторичные. Первичная группа это основная группа пользователя, установленная для него по умолчанию, с ней связан его аккаунт. Директории и файлы, создаваемые пользователем, имеют Group ID именно этой, первичной группы. Любая другая группа (а их может быть много), в которую входит пользователь, является вторичной.
Создание групп
Давайте создадим две группы: «writers» («писатели») и «editors» («редакторы»). Для этого используется команда groupadd. (Возможно, потребуется также поставить sudo в начале команды, чтобы получить право создавать группы).
groupadd writers groupadd editors
Создание пользователей
Возможно, у вас уже есть пользователи, которых вы могли бы добавить в только что созданные группы. Если нет, вот базовый синтаксис для создания пользователя при помощи команды useradd:
useradd [опции] имя_пользователя
Ниже представлена команда для создания пользователя по имени «quincy». Флаг -m нужен для создания домашней директории пользователя (для ее названия используется имя пользователя). Флаг -p позволяет задать пароль для пользователя, в данном случае — «p4ssw0rd».
useradd -m quincy -p p4ssw0rd
Позже пользователь сможет изменить свой пароль при помощи команды passwd. Для этого ему понадобится ввести текущий пароль и новый.
Добавление пользователя в группу
Для добавления пользователя в группу используется команда usermod. Давайте добавим пользователя «quincy» в группу «writers». Опция -a означает «append» («добавить», «прикрепить»), а опция -G служит для указания названия вторичной группы.
usermod -a -G writers quincy
Когда вы создаете пользователя при помощи команды adduser, для него автоматически создается первичная группа, носящая его имя. Поэтому в настоящее время пользователь «quincy» состоит в первичной группе «quincy» и вторичной «writers».
Также можно добавить пользователя сразу в несколько групп, перечислив их через запятую без пробелов (-G group1,group2,group3).
А эта команда изменит первичную группу пользователя quincy на группу «editors»:
Удаление пользователя из вторичной группы
Чтобы удалить пользователя из вторичной группы, нужно перезаписать список групп пользователя, задав набор групп, в котором не будет этой вторичной группы.
При помощи команды id смотрим, в каких группах состоит пользователь (опция -n нужна для вывода названий групп, а не их ID).
Предположим, мы увидели, что пользователь quincy состоит в группах «editors» и «writers». Если мы хотим удалить его из группы «writers», мы можем воспользоваться следующей командой:
Эта команда очень похожа на ту, которой мы установили для пользователя quincy вторичную группу «editors». Но поскольку мы сейчас не использовали флаг -a, предыдущий список групп просто перезаписался, и теперь в нем нет группы «writers».
Заключение
Теперь вы можете начать управлять группами и пользователями. Следующий шаг — определить, какие привилегии должны быть у каждой группы.
Как посмотреть список групп в Linux
Операционная система Linux – весьма продуманная и грамотная система. Во всех современных устройствах этого «семейства» пользователь может обнаружить основную группу и n-ое количество добавочных групп (их число варьируется и не является константным). Для чего они необходимы на практике? Дополнительные группы обеспечивают доступ к определенным файлам в системе компьютера (иными словами, делают это выборочно), но не дают каждому пользователю прав владельца. То есть, доступ ко всем остальным файлам остается ограниченным. Удачное решение, не правда ли? Пользователю могут быть предоставлены только те файлы, которые способствуют стандартной оптимизации работы, но при всем при этом он не имеет возможности залезть в чужие данные, чтобы внести туда свои коррективы. Из этого можно сделать вывод, что вопрос безопасности и конфиденциальности всех пользователей одного устройства, функционирующего на операционной системе Linux, соблюден на наивысшем уровне. Чтобы эффективно управлять системой, понадобятся определенные навыки системного администрирования. На словах это звучит несколько сложно, но после прочтения этой статьи вы убедитесь в обратном положении вещей, и поймете, насколько быстро и легко можно получить обширное представление о пользовательской среде устройства. Для этого достаточно разобраться с парочкой несложных команд, выучить их, и «на ура» бороздить просторы системы. Из данной статьи вы узнаете, как посмотреть список групп пользователя Линукс. Разумеется, мы предлагаем вашему вниманию несколько альтернативных вариантов поиска нужной информации. Вам остается лишь выбрать наиболее удобный метод, хотя каждый из них будет понятен даже неопытному владельцу ПК.
Узнаем через команду id
Чтобы найти всю необходимую информацию о пользователях устройства, нужно действовать по старинке. То есть, ввести специальную команду и дождаться соответствующего отклика. На деле это будет выглядеть следующим образом: $ id Для просмотра списка групп только текущего пользователя нужно применить опцию -G. С ней изначальный вариант потерпит соответствующие видоизменения: $ id -G Просто использовать один лишь аргумент -G неудобно, так как вывод показывает идентификаторы групп, человеку их читать сложно, поэтомы чтобы ознакомиться с наименованиями наличествующих групп, будем использовать дополнительную опцию «n». Для выполнения этой опции нужны дополнительные права. # id -Gn Иногда появляется необходимость ознакомиться со списком групп другого пользователя системы Linux. Чтобы осуществить задуманное, нужно знать его имя, и ввести эти данные в виде добавочной приставки к уже хорошо известной команде: # id -Gn имя_пользователя Для примера, узнаем список групп пользователя «ya». # id -Gn ya
Узнаем через команду groups
А теперь разберемся со вторым способом просмотра информации на устройстве с операционной системой Линукс. Как и всегда, нужные данные будут получены при помощи специальной команды. Она выглядит следующим образом: $ groups Чтобы посмотреть, какая группа принадлежит конкретному пользователю системы, необходимо указать его имя в виде приставки в исходном варианте команды. Что мы получаем: $ groups имя_пользователя Узнаем список групп у пользователя ya. $ groups ya
Хотим обратить ваше внимание на один важный момент: если не прописывать имя другого пользователя в командной строке, система автоматически применит имя текущего пользователя (то есть, ваше имя), ведь устройство определяет того, от кого исходит данный запрос.
Это происходит по умолчанию, и объясняется тем, что утилита с одноименным названием groups запускается в обоих режимах (с указанием имени/без указания имени пользователя). С её помощью можно получить общие данные о пользователях различных категорий: root, системные пользователи и обычные пользователи. Юзер системы может состоять сразу в нескольких группах – это весьма распространенное явление, и удивляться здесь нечему. Эти данные также могут пригодиться в определенных ситуациях, связанных с управлением системой. Представим, что вы оказались именно в такой ситуации. Давайте разберемся, как ознакомиться с нужной информацией. Команда для подсчета количества групп пользователя выглядит следующим образом: $ groups | wc -w
Заключение
В этой статье представлено несколько стандартных команд, которые позволяют приблизить решение той или иной проблемы. Но ведь не практике все происходит гораздо проще. Пользователь будет действовать ситуационно, а значит, использовать одну конкретную команду (в крайнем случае – несколько базовых команд по очереди). Обе рассматриваемые команды работают по схожему принципу. Различий в них мало, и они незначительные. Но, возможно, кому-то удобнее пойти именно этим путем. Теперь понимаете, насколько всё элементарно? Всего пару кликов, и картина полностью проясняется. Чтобы довести управление системой до автоматизма, нужно лишь подробнее изучить некоторые её параметры, и четко понимать свои цели.
Как вывести список групп в Linux
В Linux группа — это совокупность пользователей. Основная цель групп — определить набор привилегий, таких как разрешение на чтение, запись или выполнение для данного ресурса, которые могут быть совместно использованы пользователями внутри группы. Пользователи могут быть добавлены в существующую группу, чтобы использовать предоставляемые ею привилегии.
В этом руководстве объясняется, как показать все группы, в которые входит пользователь. Мы также объясним, как составить список всех членов группы.
Группы Linux
Пользователь может принадлежать к двум типам групп:
- Первичная группа или группа входа в систему — это группа, которая назначается файлам, создаваемым пользователем. Обычно имя основной группы совпадает с именем пользователя. Каждый пользователь должен принадлежать ровно к одной основной группе.
- Вторичная или дополнительная группа — используется для предоставления определенных привилегий набору пользователей. Пользователь может быть участником нуля или нескольких вторичных групп.
Список всех групп, членом которых является пользователь
Есть несколько способов узнать, к каким группам принадлежит пользователь.
Основная группа пользователей хранится в /etc/passwd а дополнительные группы, если таковые имеются, перечислены в /etc/group .
Один из способов найти группы пользователей — перечислить содержимое этих файлов с помощью cat , less или grep . Другой более простой вариант — использовать команду, цель которой — предоставить информацию о пользователях и группах системы.
Использование команды groups
Самая запоминающаяся команда для вывода списка всех групп, членом которых является пользователь, — это команда groups . При выполнении без аргумента команда распечатает список всех групп, к которым принадлежит текущий зарегистрированный пользователь:
Первая группа — это основная группа.
john adm cdrom sudo dip plugdev lpadmin sambashare
Чтобы получить список всех групп, к которым принадлежит конкретный пользователь, укажите имя пользователя для команды groups в качестве аргумента:
Как и раньше, первая группа является первичной.
Используя команду id
Команда id выводит информацию об указанном пользователе и его группах. Если имя пользователя не указано, отображается информация для текущего пользователя.
Например, чтобы получить информацию о пользователе linuxize вы должны ввести:
Команда покажет идентификатор пользователя ( uid ), основную группу пользователя ( gid ) и вторичные группы ( groups ) пользователя.
uid=1001(linuxize) gid=1001(linuxize) groups=1001(linuxize),27(sudo)
Чтобы напечатать только имена вместо чисел, используйте параметр -n . Опция -g выведет только основную группу и -G все группы.
Следующая команда напечатает имена групп, членом которых является текущий пользователь:
john adm cdrom sudo dip plugdev lpadmin sambashare
Список всех участников группы
Чтобы getent group список всех членов группы, используйте команду getent group за которой следует имя группы.
Например, чтобы узнать членов группы с именем « developers , воспользуйтесь следующей командой:
Если группа существует, команда напечатает группу и всех ее членов:
Если нет вывода, это означает, что группа не существует.
Список всех групп
Чтобы просмотреть все группы, присутствующие в системе, просто откройте файл /etc/group . Каждая строка в этом файле представляет информацию для одной группы.
Другой вариант — использовать команду getent которая отображает записи из баз данных, настроенных в файле /etc/nsswitch.conf включая базу данных group которую мы можем использовать для запроса списка всех групп.
Чтобы получить список всех групп, введите следующую команду:
Вывод такой же, как при отображении содержимого файла /etc/group . Если вы используете LDAP для аутентификации пользователя, getent отобразит все группы как из файла /etc/group и из базы данных LDAP.
Вы также можете использовать awk или cut для печати только первого поля, содержащего имя группы:
Выводы
В этом руководстве вы узнали, как найти группы, членом которых является пользователь. Те же команды применимы для любого дистрибутива Linux, включая Ubuntu, CentOS, RHEL, Debian и Linux Mint.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.