Освоение групп пользователей в Linux

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

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

Один пользователь, одна группа?

Большинство учетных записей пользователей в системах Linux настроены с имена пользователя и группы совпадают. Пользователь «jdoe» будет настроен с группой с именем «jdoe» и будет единственным членом этой вновь созданной группы. Имя пользователя, идентификатор пользователя и идентификатор группы будут добавлены в файлы /etc/passwd и /etc/group при добавлении учетной записи, как показано в этом примере:

 $ sudo useradd jdoe $ grep jdoe/etc/passwdjdoe: x: 1066: 1066: Jane Doe:/home/jdoe:/bin/sh $ grep jdoe/etc /groupjdoe: x: 1066: 

Значения в этих файлах позволяют системе переводить между текстовой (jdoe) и числовой (1066) версиями идентификатора пользователя — jdoe — это 1066, а 1066 — это jdoe. .

Назначенные UID (идентификатор пользователя) и GID (идентификатор группы) для каждого пользователя обычно одинаковы и настраиваются последовательно. Если бы Джейн Доу в приведенном выше примере была последним добавленным пользователем, следующему новому пользователю, вероятно, было бы назначено 1067 в качестве идентификатора пользователя и группы.

GID = UID?

UID и GID могут рассинхронизироваться. Например, если вы добавляете группу с помощью команды groupadd без указания идентификатора группы, ваша система назначит следующий доступный идентификатор группы (в данном случае 1067). Следующий пользователь, который будет добавлен в систему, получит 1067 как UID, но 1068 как GID.

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

 $ sudo groupadd -g 500 DevOps 

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

 $ sudo useradd -g staff bennyg $ grep bennyg/etc/passwdbennyg:  x: 1064: 50 ::/home/bennyg:/bin/sh 

Первичная и вторичная группы

На самом деле существует два типа групп — первичная и вторичная.

основная группа — это группа, которая записана в файле /etc/passwd и настраивается при настройке учетной записи. . Когда пользователь создает файл, с ним связана его основная группа..

 $ whoamijdoe $ grep jdoe/etc/passwdjdoe: x: 1066: 1066: Джон Доу:/home/jdoe:/bin/bash ^ |  + -------- основная группа $ touch newfile $ ls -l newfile-rw-rw-r-- 1 jdoe jdoe 0 16 июля 15:22 newfile ^ |  + -------- основная группа 

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

 $ grep DevOps/etc/groupdevops: x: 500: shs, jadep ^ |  + -------- вторичная группа для shs и jadep 

Файл /etc/group назначает имена группам пользователей (например, 500 = DevOps ) и записывает членов вторичной группы.

Предпочтительное соглашение

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

Нет места лучше/home

Одна важная деталь при добавлении новой учетной записи заключается в том, что команда useradd не обязательно добавляет домашний каталог для нового пользователя. Если вы хотите, чтобы этот шаг выполнялся только время от времени, вы можете добавить -m (воспринимайте это как параметр «сделать дом») с вашими командами useradd.

 $ sudo useradd -m -g DevOps -c "John Doe" jdoe2 

Параметры в этой команде:

  • -m создает домашний каталог и заполняет его файлами запуска.
  • -g указывает группу для назначения пользователя
  • -c добавляет дескриптор для учетной записи (обычно имя человека)

Если вам нужен домашний каталог для создания все время, вы можете изменить поведение по умолчанию, отредактировав файл /etc/login.defs . Измените или добавьте параметр для переменной CREATE_HOME и установите для него значение «yes»:

 $ grep CREATE_HOME/etc/login.defsCREATE_HOME yes 

Другой вариант — установить придумайте себе псевдоним, чтобы useradd всегда использовал параметр -m.

 $ alias useradd = 'useradd -m' 

Убедитесь, что вы добавили псевдоним в свой ~/.bashrc или аналогичный файл запуска, чтобы сделать его постоянным.

Изучите/etc/login.defs

Вот команда для вывода списка всех настроек в файле/etc/login.defs. Команды grep скрывают комментарии и пустые строки.

 $ cat/etc/login.defs |  grep -v "^ #" |  grep -v "^ $" MAIL_DIR/var/mailFAILLOG_ENAB yesLOG_UNKFAIL_ENAB noLOG_OK_LOGINS noSYSLOG_SU_ENAB yesSYSLOG_SG_ENAB yesFTMP_FILE/var/log/btmpSU_NAME suHUSHLOGIN_FILE. hushloginENV_SUPATH ПУТЬ =/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binENV_PATH PATH =/usr/local/bin:/usr/bin:/bin:/ USR/местные/игры:/USR/gamesTTYGROUP ttyTTYPERM 0600ERASECHAR 0177KILLCHAR 025UMASK 022PASS_MAX_DAYS 99999PASS_MIN_DAYS 0PASS_WARN_AGE 7UID_MIN 1000UID_MAX 60000GID_MIN 1000GID_MAX 60000LOGIN_RETRIES 5LOGIN_TIMEOUT 60CHFN_RESTRICT rwhDEFAULT_HOME yesCREATE_HOME да   Обратите внимание на различные настройки в этом файле  определить диапазон идентификаторов пользователей, которые будут использоваться вместе со сроком действия пароля и другими параметрами (например, umask).  

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

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

 $ groups jdoejdoe: jdoe adm admin cdrom sudo dip plugdev lpadmin staff sambashare  

Вы можете перечислить свои собственные группы, введя «группы» без аргумента.

Как добавлять пользователей в группы

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

 $ sudo usermod -a -G DevOps jdoe 

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

 $ sudo usermod -a -G DevOps, mgrs jdoe 

-a означает «добавить», а -G перечисляет группы.

Вы можете удалить пользователя из группы, отредактировав /etc/group и удалив имя пользователя из списка. У команды usermod также может быть опция для удаления члена из группы.

 fish: x: 16: nemo, dory, shark |  Vfish: x: 16: nemo, dory 

Подведение итогов

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

Присоединяйтесь к сообществам Network World на Facebook и LinkedIn, чтобы комментировать темы, которые на первом месте.
Оцените статью
techsly.ru
Добавить комментарий