Просмотр групп пользователей Linux
Обновлено: 21.11.2024
От смартфонов до автомобилей, суперкомпьютеров и бытовой техники, от домашних компьютеров до корпоративных серверов — везде используется операционная система Linux.
Введение
Чтобы создать безопасную среду в Linux, вам необходимо узнать о группах пользователей и разрешениях. Например, если вы работаете в компании и хотите, чтобы финансовый отдел читал файл, но не вносил в него никаких изменений, вам необходимо использовать разрешения в Linux. В настоящее время это необходимо каждому программисту, работающему с Linux.
Предпосылки
Чтобы следовать этому руководству, у вас должны быть:
Оглавление
Разрешения на доступ к файлам
Давайте начнем с обсуждения прав собственности на файлы Linux.
- Пользователь: владелец файла (человек, создавший файл).
- Группа: группа может содержать несколько пользователей. Таким образом, все пользователи в этой группе будут иметь одинаковые разрешения. Это упрощает задачу, чем назначать разрешения для каждого пользователя, которого вы хотите.
- Другое: любой человек имеет доступ к этому файлу, этот человек не создал файл и не состоит ни в одной группе, у которой есть доступ к этому файлу.
При выполнении следующей команды:
Затем вы увидите права доступа к файлу, как показано ниже:
Мы будем работать с этой частью «-rw-r–r–».
Символы означают:
- 'r' = читать.
- 'w' = написать.
- 'x' = выполнить.
- ‘-’ = нет разрешения.
Как мы видим выше, пустая первая часть означает, что это файл. Если бы это был каталог, то это была бы буква «d». Вторая часть означает, что пользователь «Home» имеет права на чтение и запись, но не на выполнение. Группа и другие пользователи имеют только право на чтение.
Давайте изменим разрешения с помощью команды chmod.
Эта команда добавит разрешение на запись для других пользователей в мой текстовый файл «section.txt».
Теперь, если вы попытаетесь выполнить ls -l, вы увидите -rw-r--rw- .
«o» относится к другим, «g» — к группе, «u» — к пользователю и «a» — ко всем.
Теперь давайте добавим пользователю разрешение на выполнение с помощью:
Разрешения будут -rwxr--rw- .
Если вы хотите удалить разрешение, вы можете использовать тот же метод, но с «-» вместо «+». Например, давайте удалим разрешение на выполнение у пользователя:
Кроме того, вы можете использовать символический режим для изменения разрешений следующим образом:
Номер | Разрешение |
---|---|
0 | Нет разрешения |
1 | Выполнить |
2 | Записать | td>
3 | Выполнение и запись |
4 | Чтение |
5 | Чтение и выполнение |
6 | Чтение и запись |
7 | Чтение, запись и выполнение |
Например, давайте дадим каждому разрешение для всех с помощью:
Тогда разрешения будут: -rwxrwxrwx .
Давайте удалим выполнение из группы и запись из другого:
Разрешения будут следующими: -rwxrw-r-x .
Учетные записи пользователей
Создать пользователя
Мы можем создать новую учетную запись пользователя, введя следующую команду:
Убедиться, что пользователь создан, можно двумя способами:
И вывод будет примерно таким:
Это покажет идентификатор пользователя и группы, в которых пользователь в настоящее время состоит, обычно пользователю назначается новая группа с тем же именем пользователя.
Итак, мы можем выполнить команду cat /etc/passwd и увидеть нового созданного пользователя.
После создания пользователя с помощью приведенной выше команды вы заметили, что внутри каталога /home не было создано никаких пользовательских каталогов, что не очень хорошо, поскольку пользователь не может войти в свою учетную запись.
Чтобы создать нового пользователя с его каталогами, мы можем выполнить:
Если вы перейдете в каталог /home, вы заметите, что создается новый каталог с именем testuser.
После этого вам необходимо установить новый пароль для тестового пользователя:
Мы заметили, что для создания нового пользователя требуется много команд, поэтому есть команда, которая все автоматизирует:
После создания нового пользователя и установки для него пароля вы можете войти двумя способами:
- Через графический интерфейс.
- В терминале: su - testuser .
Удалить пользователя
Как и в процессе добавления пользователей, есть две команды, которые удаляют пользователя.
Если вы попробуете эту команду, вы заметите, что каталог пользователя не был удален, и вам нужно удалить его самостоятельно.
Вы можете использовать эту автоматическую команду, чтобы сделать все за вас:
Группы пользователей
Группа – это набор пользователей. Основная цель групп — определить набор привилегий, таких как разрешение на чтение, запись или выполнение для данного ресурса, которые могут быть разделены между пользователями в группе.
Создать группу
Вы можете увидеть все имеющиеся у вас группы, открыв следующий файл:
Давайте создадим группу с названием раздел с помощью:
Добавить пользователя в группу
Мы добавим пользователя testuser в группу разделов следующим образом:
Удалить пользователя из группы
Вы можете удалить тестового пользователя из группы с помощью:
Удалить группу
Давайте удалим предыдущую группу:
Заключение
Linux — одна из самых безопасных систем, поскольку она позволяет администратору создавать нескольких пользователей с разными разрешениями на одном и том же оборудовании.
Группа Linux – это набор из одного или нескольких пользователей с одинаковыми требованиями к разрешениям для файлов и каталогов. Пользователь может быть членом более чем группы одновременно. В Linux информация о каждой группе хранится в файле «/etc/group». В этом руководстве мы рассмотрим все возможные способы легко узнать, к каким группам принадлежит пользователь в Linux и Unix-подобных операционных системах.
Выяснение групп, к которым принадлежит учетная запись пользователя, может оказаться полезным во многих случаях. Например, на днях я устанавливал Dropbox на свой сервер Ubuntu. При настройке Dropbox мне пришлось ввести свое текущее имя пользователя и имя группы. Вы также можете оказаться в ситуации, когда вам нужно определить группы, к которым принадлежит пользователь. Если это так, используйте любой из следующих методов, чтобы узнать, в какой группе находится пользователь.
Узнать, к каким группам принадлежит пользователь в Linux
Существует множество способов составить список групп, членом которых является пользователь Linux. Чаще всего используется команда групп.
Способ 1 – команда групп
Команда groups отображает текущие имена групп и пользователей, принадлежащих к этим группам в Linux и Unix-подобных операционных системах.
Во-первых, давайте найдем, сколько групп в нашей системе Linux.
Чтобы найти список доступных в Linux, запустите команду groups без каких-либо аргументов, как показано ниже:
Пример вывода:
Список доступных групп в Linux
Как видно из приведенного выше вывода, в настоящее время в моей системе 12 групп.
Теперь выясните, к каким группам принадлежит конкретный пользователь, например sk. Для этого введите команду «groups» после имени пользователя, как показано ниже:
Пример вывода:
Узнайте, к каким группам принадлежит пользователь в Linux, с помощью команды groups
Здесь sk — это мое имя пользователя, а пользователь sk — член всех вышеперечисленных групп. Вы могли заметить, что "sk" указан дважды. Потому что я использовал одно и то же имя как для имени пользователя, так и для имени группы.
Для получения дополнительной информации о команде "groups" обратитесь к справочным страницам.
Способ 2 — команда id
Еще один способ определить группы, в которых состоит пользователь, — использовать команду "id". Команда id используется для печати информации о пользователе и группе для указанного ПОЛЬЗОВАТЕЛЯ. Если USER не указан, будет напечатана информация для текущего пользователя.
Чтобы определить все группы, к которым принадлежит пользователь, с помощью команды "id", выполните:
Замените sk своим именем пользователя.
Пример вывода:
Узнать, к каким группам принадлежит пользователь в Linux, с помощью команды id
Как вы видите, команда id не только перечисляет группы, в которых состоит пользователь, но также идентификатор группы и идентификатор пользователя (UID и GID) данного пользователя и групп. У нее более подробный вывод, чем у команды "groups", поэтому, если вам нужен идентификатор группы/пользователя, используйте его!
Если вы не хотите печатать числа, просто используйте флаг -Gn, как показано ниже:
Для получения дополнительной информации см. справочные страницы.
Способ 3 – использование файла "/etc/group"
Как я уже говорил, файл /etc/group содержит информацию о каждой группе в системе Linux.Вы можете узнать, к каким группам принадлежит данный пользователь, из содержимого файла /etc/group с помощью команды «grep», как показано ниже:
Пример вывода:
Если вы хотите исключить идентификаторы групп и имя пользователя и отображать только имена групп, передайте вывод команды "grep" команде "awk", как показано ниже:
Пример вывода:
Поиск групп, к которым принадлежит пользователь в Linux, с помощью команд grep и awk
Способ 4 — команда getent
Команда getent отображает записи из баз данных, поддерживаемых библиотеками переключателей службы имен, которые настроены в файле /etc/nsswitch.conf.
Мы можем вывести список всех доступных групп и их участников в системе Linux с помощью команды getent, как показано ниже:
Чтобы узнать, к каким группам принадлежит конкретный пользователь (например, sk), выполните:
Пример вывода:
Если вы хотите отобразить только группы, исключая все остальные детали, отфильтруйте вывод с помощью команд "grep" и "awk", как показано ниже:
Узнайте, к каким группам принадлежит пользователь в Linux, используя команды getent, grep и awk
Список всех пользователей, принадлежащих к группе в Linux
Мы также можем найти список всех пользователей, принадлежащих к определенной группе. Например, следующая команда отображает пользователей, принадлежащих к группе с именем storage.
Легко, правда? Конечно. Узнать, к каким группам принадлежит пользователь, и пользователей определенной группы очень просто!!
В системах Linux может быть несколько пользователей, разделенных на множество групп. Эти группы представляют собой набор пользователей с одинаковым набором привилегий, таких как разрешение на чтение, запись или выполнение для определенного файла или ресурсов, совместно используемых пользователями этой группы. Linux позволяет вам добавить нового пользователя или существующего пользователя в существующую группу для использования привилегий этой конкретной группы, которые она предоставит. Мы узнаем о различных группах Linux и о том, как перечислить всех членов группы.
Типы групп в Linux
В Linux есть два типа групп, содержащих несколько пользователей:
- Основная группа или группа входа: это группа, связанная с файлами, созданными конкретным пользователем. Имя этой основной группы совпадает с именем пользователя, который создаст этот конкретный файл. Каждый пользователь должен принадлежать ровно к одной группе.
- Вторичная или дополнительная группа: этот тип группы можно использовать для предоставления привилегий группе пользователей, принадлежащих к этой группе. Пользователь может быть назначен ни в одну из дополнительных групп или в несколько дополнительных групп.
Список пользователей в Linux
Чтобы получить список всех пользователей, присутствующих в системе Linux, вы можете запустить команду cat в файле «/etc/passwd». Эта команда поможет вернуть количество пользователей, присутствующих в системе Linux.
Кроме того, используйте команду "меньше" или "больше" для навигации по списку пользователей.
$cat/etc/passwd
$ меньше /etc/passwd
$ more/etc/passwd
Список пользователей, использующих файл /etc/passwd
Для вывода списка имен пользователей в системе Linux вы можете использовать команду «cat», а затем направить вывод в команду «cut», чтобы изолировать имена пользователей, доступные в первом столбце списка. Запустите указанную ниже команду, как показано ниже.
Список имен пользователей с помощью awk
Чтобы получить список имен пользователей в системе Linux, используйте команду «cat», а затем направьте вывод в команду «awk», которая работает аналогично команде «cat».
Здесь мы используем интерпретатор «awk», как показано ниже.
Список имен пользователей с помощью getent
Используйте команду getent вместе с аргументом «passwd», чтобы получить список имен пользователей, доступных в Linux. Кроме того, вы можете указать необязательного пользователя, которого хотите отобразить на экране.
Команда getent извлекает записи из баз данных коммутатора службы имен. Это утилита Unix для извлечения записей из различных источников данных. Проверьте список источников данных, доступных в nsswitch.conf, который хранится в /etc.
Если вы хотите получить список всех пользователей с помощью функции getent, вы можете запустить следующую команду.
Список подключенных пользователей на вашем хосте Linux
Чтобы получить список пользователей, подключенных к системе Linux, вы можете использовать следующую команду.
С помощью этой команды вы предоставите список подключенных пользователей и используемую ими оболочку.
Кроме того, вы можете использовать команду «users», чтобы получить тот же результат, что и команда «who», как показано ниже.
Список групп с использованием файла /etc/group
Используйте наиболее часто используемую команду «cat», чтобы получить список групп, доступных в файле «/etc/group». Когда вы запустите команду, вы получите список групп.
$cat/etc/группа
$ меньше / etc / группа
ещё $/etc/группа
Но если вы ищете имена групп, присутствующие в файле «/etc/group», используйте команду cat, а затем направьте вывод в команду «cut», как показано ниже.
Кроме того, если вы хотите изолировать одну группу, чтобы проверить, какие пользователи принадлежат к этой группе, используйте приведенную ниже команду.
Вывод групп с помощью getent
Вы можете использовать команду «getent» для получения списка пользователей в системе Linux.
Если вы не предоставите ключ, вы получите весь групповой файл.
Список групп для текущего пользователя
Использование команды «группа» отобразит список групп, в которых состоит конкретный пользователь.
Если вы не укажете никаких аргументов, вы получите список групп для пользователя, который запускает команду.
Заключение
Система Linux содержит пользователей и группы в разных файлах. Иногда становится важно получить информацию о пользователе и к какой группе он принадлежит. Таким образом, Linux предлагает несколько команд, которые помогут вам в этом. Вы можете запустить некоторые команды, чтобы получить информацию о пользователе и группе, к которой он принадлежит. Вы также можете получить полный список пользователей в системе Linux, имена активных пользователей и групп.
Вы можете прочитать эту статью, чтобы получить различные команды для получения списка всех групп в Linux и понять, как они работают.
Об авторе
Симран Каур
Симран работает техническим писателем. Выпускник MS Computer Science из известного центра CS, также известного как Силиконовая долина, также является редактором веб-сайта. Ей нравится писать на любые технические темы, включая программирование, алгоритмы, облачные технологии, науку о данных и искусственный интеллект. Ей нравятся путешествия, рисование и садоводство.
"Какими навыками должны обладать администраторы Linux?" это слишком широкий вопрос для любой отдельной статьи. Но есть много общих навыков системного администратора, и главные среди них — администрирование пользователей и групп. Надлежащее управление учетными записями пользователей позволяет Linux применять контроль доступа (разрешения) и проверять, кто и что делает в системе.
Дополнительные ресурсы по Linux
Приведенные ниже команды написаны для Red Hat Enterprise Linux (RHEL) и RHEL-подобных дистрибутивов, но концепции применимы к любому дистрибутиву Linux. Знание навыков и команд, описанных в этой статье (и ее двух последующих частях, которые углубляются в администрирование пользователей и администраторов групп), поможет вам быть готовым к повседневным задачам администрирования пользователей и групп, которые называются системными администраторами. делать.
Управление пользователями
Пользователи должны пройти аутентификацию в любой системе, которую им необходимо использовать. Эта аутентификация обеспечивает доступ к ресурсам и настраиваемой пользовательской среде. Идентификация пользователя основана на его учетной записи. Какие навыки необходимы системным администраторам для управления учетными записями пользователей?
1. Понимание файла /etc/passwd
Информация об учетной записи пользователя хранится в файле /etc/passwd. Эта информация включает имя учетной записи, расположение домашнего каталога и оболочку по умолчанию, а также другие значения. Системные администраторы Linux должны уметь распознавать эти поля.
Каждое поле отделяется символом :, и не все поля должны быть заполнены, но вы должны их разграничить.
Вот пример полей /etc/passwd:
В этом примере поле комментария пусто:
Обратите внимание, что два двоеточия все еще существуют, чтобы разграничить поле комментария.
Вот пример с заполненным полем комментария:
Я подробнее расскажу о паролях ниже, но ожидайте увидеть x в поле пароля в этом файле.
Для получения дополнительной информации см.:
2. Понимание файла /etc/shadow
Давным-давно хэши паролей хранились в файле /etc/passwd. Этот файл был доступен для чтения всем, что позволяло любознательным пользователям извлекать из файла хэши паролей для других учетных записей и запускать их с помощью утилит для взлома паролей. В конце концов, хэши паролей были перемещены в файл, доступный для чтения только пользователю root: /etc/shadow. Сегодня поле пароля в файле /etc/passwd помечено знаком x .
Администраторы должны распознавать каждое поле в /etc/shadow . Несколько полей относятся к требованиям к паролю.
Вот пример полей /etc/shadow:
Первые два поля идентифицируют пользователя и хешированную версию пароля, а остальные шесть полей представляют информацию об изменении пароля. Информация о пароле управляется с помощью команды chage.
Дополнительные сведения см. в этих статьях:
3. Создание, изменение и удаление учетных записей пользователей
Процесс управления учетными записями пользователей очень прост. Системные администраторы либо добавляют, либо изменяют, либо удаляют пользователей, а соответствующие команды интуитивно понятны.
Кен Хесс документирует эти команды в книге Основы системного администратора Linux: Управление учетными записями пользователей. Существует множество вариантов настройки учетных записей пользователей и связанных с ними ресурсов.
В моей сопутствующей статье подробно описаны команды useradd , usermod и userdel .
[ Возможно, вас также заинтересует загрузка памятки по сценариям оболочки Bash. ]
4. Управление требованиями к паролю
Многие организации используют политики паролей для определения соответствующих требований к паролям. Системные администраторы могут обеспечить выполнение этих требований с помощью различных механизмов в Linux.
Двумя распространенными способами управления настройками пароля являются использование файла /etc/login.defs или настроек подключаемого модуля аутентификации (PAM). Обязательно разберитесь с параметрами, полями и настройками этой важной конфигурации безопасности.
Подробнее о настройках безопасности паролей см.:
Управление группами
Более эффективно группировать учетные записи пользователей с одинаковыми требованиями к доступу, чем управлять разрешениями для отдельных пользователей. Поэтому системные администраторы должны уметь создавать, изменять и удалять группы.
[ Практикуйте свои навыки работы с Linux в бесплатном онлайн-курсе RHEL, технический обзор. ]
1. Понимание файла /etc/group
Подобно файлу /etc/passwd выше, файл /etc/group содержит информацию об учетной записи группы. Эта информация может быть необходима для устранения неполадок, аудита безопасности и предоставления пользователям доступа к необходимым им ресурсам.
Понимать каждое поле файла, чтобы упростить работу системного администратора.
Вот пример группы редакторов с двумя участниками:
Статья Тайлера Карригана «Управление учетными записями локальных групп в Linux» прекрасно представляет эту информацию.
Группы Linux существенно отличаются от локальных групп в Windows, поэтому обязательно разбирайтесь в различиях.
2. Создание, изменение и удаление групп
Как и описанные выше команды учетных записей пользователей, команды управления группами интуитивно понятны и обеспечивают большую гибкость. Для каждой функции, которую вам может понадобиться выполнить для группы, существует простая для запоминания команда:
В следующих статьях представлен хороший обзор работы с группами:
3. Управление членством в группах
Безопасность Linux
Добавление пользователей в группу упрощает управление разрешениями. Многим этот процесс кажется немного неинтуитивным: добавление пользователя в группу изменяет пользователя, а не группу. Следовательно, необходимой командой является команда usermod.
Вот несколько команд для отображения информации о группе:
- usermod: обновление членства в группе
- id: отображение списка групп, членом которых является пользователь.
- cat /etc/group : Показать список существующих групп с указанием членства в последнем поле.
Одним из ресурсов для этих команд являются соответствующие справочные страницы.
Для добавления пользователей в группу требуются параметры -a и/или -G. В статье Тайлера Кэрригана «Управление учетными записями локальных групп в Linux» рассматривается использование этих параметров для управления членством в группах.
Подведение итогов
Если эти команды и файлы кажутся вам знакомыми, вы, вероятно, можете управлять большинством основных задач системного администратора по управлению пользователями и группами в RHEL. В противном случае теперь у вас под рукой есть отличные ресурсы для получения дополнительной информации.
Читайте также: