- Как вывести список групп в Linux
- Группы Linux
- Список всех групп, членом которых является пользователь
- Использование команды groups
- Используя команду id
- Список всех участников группы
- Список всех групп
- Выводы
- Как составить список групп в Linux
- How to List Groups in Linux
- В этом руководстве объясняется, как показать все группы, в которые входит пользователь. Мы также объясним, как составить список всех членов группы.
- Linux группы
- Список всех групп, членом которых является пользователь
- С использованием groups команду
- С использованием id команду
- Список всех членов группы
- Список всех групп
- Вывод
- Как проверить, существует ли группа, и добавить, если ее нет, в Linux Shell Script
- 8 ответов
- Когда я (root) вызываю «usermod -G sudo chauncey», он говорит, что «sudo group не существует»
- 2 ответа
- Группы пользователей Linux
- Что такое группы?
- Группы в Linux
- Управление группами Linux
- Выводы
Как вывести список групп в Linux
В Linux группа — это совокупность пользователей. Основная цель групп — определить набор привилегий, таких как разрешение на чтение, запись или выполнение для данного ресурса, которые могут быть совместно использованы пользователями внутри группы. Пользователи могут быть добавлены в существующую группу, чтобы использовать предоставляемые ею привилегии.
В этом руководстве объясняется, как показать все группы, в которые входит пользователь. Мы также объясним, как составить список всех членов группы.
Группы Linux
Пользователь может принадлежать к двум типам групп:
Первичная группа или группа входа в систему — это группа, которая назначается файлам, создаваемым пользователем. Обычно имя основной группы совпадает с именем пользователя. Каждый пользователь должен принадлежать ровно к одной основной группе.
Вторичная или дополнительная группа — используется для предоставления определенных привилегий набору пользователей. Пользователь может быть участником нуля или нескольких вторичных групп.
Список всех групп, членом которых является пользователь
Есть несколько способов узнать, к каким группам принадлежит пользователь.
Основная группа пользователей хранится в /etc/passwd а дополнительные группы, если таковые имеются, перечислены в /etc/group .
Один из способов найти группы пользователей — перечислить содержимое этих файлов с помощью cat , less или grep . Другой более простой вариант — использовать команду, цель которой — предоставить информацию о пользователях и группах системы.
Использование команды groups
Самая запоминающаяся команда для вывода списка всех групп, членом которых является пользователь, — это команда groups . При выполнении без аргумента команда распечатает список всех групп, к которым принадлежит текущий зарегистрированный пользователь:
Первая группа — это основная группа.
Чтобы получить список всех групп, к которым принадлежит конкретный пользователь, укажите имя пользователя для команды groups в качестве аргумента:
Как и раньше, первая группа является первичной.
Используя команду id
Команда id выводит информацию об указанном пользователе и его группах. Если имя пользователя не указано, отображается информация для текущего пользователя.
Например, чтобы получить информацию о пользователе linuxize вы должны ввести:
Команда покажет идентификатор пользователя ( uid ), основную группу пользователя ( gid ) и вторичные группы ( groups ) пользователя.
Чтобы напечатать только имена вместо чисел, используйте параметр -n . Опция -g выведет только основную группу и -G все группы.
Следующая команда напечатает имена групп, членом которых является текущий пользователь:
Список всех участников группы
Чтобы 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.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Источник
Как составить список групп в Linux
How to List Groups in Linux
В этом руководстве объясняется, как показать все группы, в которые входит пользователь. Мы также объясним, как составить список всех членов группы.
В Linux группа — это совокупность пользователей. Основная цель групп — определить набор привилегий, таких как права на чтение, запись или выполнение для данного ресурса, которые могут быть общими для пользователей в группе. Пользователи могут быть добавлены в существующую группу, чтобы использовать предоставленные ей привилегии.
Linux группы
Пользователь может принадлежать к двум типам групп:
Основная группа или группа входа — это группа, назначаемая файлам, которые создаются пользователем. Обычно имя основной группы совпадает с именем пользователя. Каждый пользователь должен принадлежать ровно к одной основной группе.
Вторичная или дополнительная группа — используется для предоставления определенных привилегий группе пользователей. Пользователь может быть членом нуля или более вторичных групп.
Список всех групп, членом которых является пользователь
Есть несколько способов узнать группы, к которым принадлежит пользователь.
Основная группа пользователей хранится в /etc/passwd файле, а дополнительные группы, если таковые имеются, перечислены в /etc/group файле.
Один из способов найти группы пользователей — это просмотреть содержимое этих файлов, используя cat , less или grep . Другой более простой вариант — использовать команду, цель которой — предоставить информацию о пользователях и группах системы.
С использованием groups команду
Первая группа является основной группой.
Чтобы получить список всех групп, к которым принадлежит конкретный пользователь, укажите в groups качестве аргумента имя пользователя для команды:
Как и прежде, первая группа является основной.
С использованием id команду
id выводит информацию об указанном пользователе и его группах. Если имя пользователя не указано, отображается информация о текущем пользователе.
Например, чтобы получить информацию о пользователе linuxize , введите:
Команда покажет идентификатор пользователя ( uid ), первичную группу пользователя ( gid ) и вторичные группы пользователя ( groups )
Для печати только имен вместо цифр используйте -n опцию. Опция -g будет печатать только основную группу и -G все группы.
Следующая команда напечатает имена групп, членом которых является текущий пользователь:
Список всех членов группы
Чтобы вывести список всех членов группы, используйте 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.
Источник
Как проверить, существует ли группа, и добавить, если ее нет, в Linux Shell Script
Это краткое изложение того, что я хочу, чтобы мой код делал:
Я использую виртуальную машину Ubuntu, но все результаты, которые я нашел на аналогичных сайтах, не работают.
8 ответов
Этот сценарий может помочь вам:
Одна строка:
$ getent group || groupadd
Гики, отличные решения и руководство, спасибо за то, что поделились, это мои 2 цента, чтобы сделать нашу жизнь проще или ленивее 🙂 Я мог бы использовать для дополнения скрипта useradd, мне нужно добавить сразу нескольких пользователей. Мне интересно, как бы это выглядело внутри цикла for in для нескольких групп: group1, group2, group3 . group6 Тогда используйтеradd в системе что-то вроде этого?
for g in $( cat fewgroups.txt ); do groupadd $g echo «Group:» $g «Exist not added moving on» else echo «Group:» $g «added successfully!» # Then create the users for u in $( cat 100sofusers.txt ); do useradd -m -g group1 -G group2,wheel -d /home/$u -c «Just anothe SiFiGeek» -s /bin/bash $u echo «userID:» $u «added successfully!» echo $u:$randompw | chpasswd echo «Password for userID:» $u «changed successfully» done
Итак, вы можете просто:
Вот 3 команды, которые должны работать:
Или один, когда вы используете -f / —force (завершите успешно, если группа уже существует):
Я счел более полезным составить решение andiba в виде соответствующей функции:
Это можно, например, вызвать в вашей среде, включив эту функцию в свой /etc/bash.bashrc* , чтобы затем вы могли проверить наличие группы, используя следующее заклинание:
Что затем должно вернуть одно из:
группа имя_группы не существует.
Греппинг / etc / group работает, но только на машине, где /etc/nsswitch.conf имеет:
Это означает, что при определении доступных групп выполняется консультация только с / etc / group. Использование:
Для более общего решения проверка статуса выхода: 0 означает «существует», ненулевое значение означает «не существует». Например, чтобы проверить, существует ли группа postgres, и создать ее, если нет (при условии, что оболочка bash работает от имени пользователя, способного создавать новые группы), выполните:
Оператор grep в решении rups имеет некоторые недостатки:
Например. grepping для группы admin может возвращать true («группа существует»), если есть группа lpadmin .
Источник
Когда я (root) вызываю «usermod -G sudo chauncey», он говорит, что «sudo group не существует»
ОС: CentOS 7. Когда я (root) выполняю команду ниже, она говорит, что группа «sudo» не может быть найдена.
Я также проверяю файл в /etc/group , а «sudo» в нем нет. Итак, как я могу правильно создать группу «sudo»?
2 ответа
Судо не является группой напрямую. Группы / пользователи, имеющие права sudoer, определены в файле конфигурации, к которому вы можете получить доступ с помощью sudo visudo . Просмотрите этот файл, чтобы узнать, как он настроен в вашей системе. Вот хорошее введение https: // www.garron.me/en/linux/visudo-command-sudoers-file-sudo-default-editor.html.
В вашем случае у вас есть разные способы предоставить права sudo для chauncey .
найдите группу (группы) с правами sudo в файле sudoers и добавьте chauncey в одну из этих групп. Например, скажем, у вас есть эта строка в sudoers:
затем добавьте chauncey к администратору с помощью sudo usermod -a -G admin chauncey .
создайте новую группу sudo ( sudo groupadd sudo ) и добавьте эти строки ( sudo visudo ). Затем еще раз добавьте chauncey в группу
установите специальное правило для этого пользователя в файле sudoers, используя следующее (обратите внимание, что нет % , который используется для обозначения группы):
Обратите внимание, что для всех упомянутых правил я везде использовал значение по умолчанию ALL . Первый — это разрешенные пользователи, второй — хост, третий — пользователь, выполняющий команду, а последний — разрешенные команды. Вы можете настроить свои правила, если ВСЕ слишком широко для вашего варианта использования.
В centos вы добавляете группу wheel вместо sudo.
Источник
Группы пользователей Linux
Основа распределения прав доступа в операционной системе Linux лежит на понятии пользователь. Пользователю-владельцу файла выдаются определенные полномочия для работы с ним, а именно на чтение, запись и выполнение. Также отдельно устанавливаются полномочия на чтение, запись и выполнение для всех остальных пользователей. Поскольку в Linux все есть файлом, то такая система позволяет регулировать доступ к любому действию в этой операционной системе с помощью установки прав доступа на файлы. Но еще при создании Linux, разработчики поняли, что этого явно недостаточно.
Поэтому и были придуманы группы пользователей. Пользователи могут объединяться в группы, чтобы уже группам выдавать нужные полномочия на доступ к тем или иным файлам, а соответственно и действиям. В этой статье мы рассмотрим группы пользователей в Linux, рассмотрим зачем они нужны, как добавить пользователя в группу и управлять группами.
Что такое группы?
Как я уже сказал группы в Linux появились еще в самом начале разработки этой операционной системы. Они были разработаны для того, чтобы расширить возможности управления правами. Разберем небольшой пример, возьмем организацию в которой есть только один компьютер, у нас есть администраторы и пользователи. У каждого человека свой аккаунт на нашем компьютере. Администраторы могут настраивать систему, пользователям же лучше не давать воли, чтобы что-то не сломали. Поэтому администраторы объединяются в группу admin, и ей дается доступ ко всему оборудованию, реально же ко всем файлам в каталоге dev, а пользователи, объеденные в группу users, и этой группе дается возможность читать и записывать файлы в общий каталог, с помощью которого они могут обмениваться результатами своей работы. Мы могли бы назначать права для каждого пользователя отдельно разрешая ему доступ к тому или иному файлу, но это слишком неудобно. Поэтому и были придуманы группы. Говорите, да ничего, можно назначить? Ну а теперь представьте что наши пользователи — это процессы. Вот тут вся краса групп выходит на передний план, группы используются не столько для обеспечения доступа для пользователей, сколько для управления правами программ, особенно их доступом к оборудованию. Для сервисов создаются отдельные группы и пользователь, от имени которого запущен он, сервис может состоять в нескольких группах, что обеспечивает ему доступ к определенным ресурсам.
А теперь давайте рассмотрим как посмотреть группы linux.
Группы в Linux
Все группы, созданные в системе, находятся в файле /etc/group. Посмотрев содержимое этого файла, вы можете узнать список групп linux, которые уже есть в вашей системе. И вы будете удивлены.
Кроме стандартных root и users, здесь есть еще пару десятков групп. Это группы, созданные программами, для управления доступом этих программ к общим ресурсам. Каждая группа разрешает чтение или запись определенного файла или каталога системы, тем самым регулируя полномочия пользователя, а следовательно, и процесса, запущенного от этого пользователя. Здесь можно считать, что пользователь — это одно и то же что процесс, потому что у процесса все полномочия пользователя, от которого он запущен.
Давайте подробнее рассмотрим каждую из групп, чтобы лучше понимать зачем они нужны:
- daemon — от имени этой группы и пользователя daemon запускаютcя сервисы, которым необходима возможность записи файлов на диск.
- sys — группа открывает доступ к исходникам ядра и файлам include сохраненным в системе
- sync — позволяет выполнять команду /bin/sync
- games — разрешает играм записывать свои файлы настроек и историю в определенную папку
- man — позволяет добавлять страницы в директорию /var/cache/man
- lp — позволяет использовать устройства параллельных портов
- mail — позволяет записывать данные в почтовые ящики /var/mail/
- proxy — используется прокси серверами, нет доступа записи файлов на диск
- www-data — с этой группой запускается веб-сервер, она дает доступ на запись /var/www, где находятся файлы веб-документов
- list — позволяет просматривать сообщения в /var/mail
- nogroup — используется для процессов, которые не могут создавать файлов на жестком диске, а только читать, обычно применяется вместе с пользователем nobody.
- adm — позволяет читать логи из директории /var/log
- tty — все устройства /dev/vca разрешают доступ на чтение и запись пользователям из этой группы
- disk — открывает доступ к жестким дискам /dev/sd* /dev/hd*, можно сказать, что это аналог рут доступа.
- dialout — полный доступ к серийному порту
- cdrom — доступ к CD-ROM
- wheel — позволяет запускать утилиту sudo для повышения привилегий
- audio — управление аудиодрайвером
- src — полный доступ к исходникам в каталоге /usr/src/
- shadow — разрешает чтение файла /etc/shadow
- utmp — разрешает запись в файлы /var/log/utmp /var/log/wtmp
- video — позволяет работать с видеодрайвером
- plugdev — позволяет монтировать внешние устройства USB, CD и т д
- staff — разрешает запись в папку /usr/local
Теперь, когда вы знаете зачем использовать группы в linux и какие они есть по умолчанию, рассмотрим управление группами LInux.
Управление группами Linux
Управлять группами можно и с помощью графического интерфейса. В KDE есть программа Kuser специально предназначенная для этого, в Gnome это выполняется с помощью настроек системы. Кроме того, в популярных дистрибутивах есть отдельные инструменты, такие как YaST в OpenSUSE или Настройки Ubuntu. Но с графическим интерфейсом я думаю вы разберетесь. А мы рассмотрим управление группами linux через терминал. Сначала разберемся с файлами, а уже потом с пользователями.
При создании файла ему назначается основная группа пользователя который его создал. Это просто например:
Здесь вы можете видеть, что владелец всех папок sergiy и группа тоже sergiy. Правильно, так как эти пользователи были созданы мной. Но давайте пойдем дальше:
Здесь мы видим что дисковым устройствам sd* назначена группа disk, а это все значит, что пользователь, состоящий в этой группе, может получить к ним доступ. Или еще пример:
Все как мы рассматривали в предыдущем пункте. Но эти группы могут быть не только установлены системой, но и вы сами вручную можете менять группы файлов для этого есть команда chgrp:
chgrp имя_группы имя_файла
Например создадим файл test:
И изменим для него группу:
Теперь этот файл смогут прочитать все пользователи из группы adm.
Если вы хотите создать группу linux, это можно сделать командой newgrp:
sudo groupadd test
С пользователями ситуация немного сложнее. Пользователь имеет основную группу, она указывается при создании, а также несколько дополнительных. Основная группа отличается от обычных тем, что все файлы в домашнем каталоге пользователя имеют эту группу, и при ее смене, группа этих каталогов тоже поменяется. Также именно эту группу получают все файлы созданные пользователем. Дополнительные группы нужны, чтобы мы могли разрешить пользователям доступ к разным ресурсам добавив его в эти группы в linux.
Управление группами Linux для пользователя выполняется с помощью команды usermod. Рассмотрим ее синтаксис и опции:
$ usermod опции имя_пользователя
- -G — дополнительные группы, в которые нужно добавить пользователя
- -g изменить основную группу для пользователя
- -R удалить пользователя из группы.
Добавить пользователя в группу можно командой usermod:
sudo usermod -a -G имя_группы имя_пользователя
Можно добавить пользователя в группу linux временно, командой newgrp. Откроется новая оболочка, и в ней пользователь будет иметь нужные полномочия, но после закрытия все вернется как было:
sudo newgrp имя_группы
Для примера давайте добавим нашего пользователя в группу disk, чтобы иметь прямой доступ к жестким дискам без команды sudo:
sudo usermod -G -a disk sergiy
Теперь вы можете монтировать диски без команды sudo:
mount /dev/sda1 /mnt
Посмотреть группы linux, в которых состоит пользователь можно командой:
Также можно использовать команду id. В первом случае мы просто видим список групп linux, во втором дополнительно указанны id группы и пользователя. Чтобы включить пользователя в группу Linux, для основной группы используется опция -g:
sudo usermod -g test sergiy
Теперь все каталоги в домашней папке пользователя имеют группу test. Удалить пользователя из группы в linux можно той же командой с опцией R:
sudo usermod -R группа пользователь
Ну и наконец, удалить группу Linux можно командой:
sudo delgroup имя_группы
Выводы
Как видите, группы пользователей Linux не такое уж сложное дело. Вы можете в несколько команд добавить пользователя в группу linux или дать ему полномочия на доступ к определенным ресурсам. Если вы надумали изменять группы для системных устройств, тут все не так просто, но в этом вопросе вам поможет статья про правила udev в linux. Теперь управление группами Linux вам не кажется таким сложным. Если остались вопросы, пишите в комментариях!
Источник