Ubuntu linux: добавление и удаление пользователей в группы

Права и владельцы

В операционной системе UNIX были сформулированы некоторые общие идеи и принципы, которые оказали в дальнейшем сильное влияние на её архитектуру, пользовательский интерфейс, культуру и развитие. В частности, один из основополагающих принципов выражается мантрой «всё есть файл», которую часто называют определяющим пунктом UNIX в целом.
Суть данного принципа заключается в создании унифицированного способа доступа к широкому диапазону ресурсов ввода/вывода: к документам, каталогам, жёстким дискам, дискам CD-ROM, модемам, клавиатурам, принтерам, мониторам, терминалам и даже межпроцессным и сетевым взаимодействиям. Цель — предоставление универсальной абстракции для каждого из этих объектов, названных отцами-оснвоателями UNIX общим термином «файл». Поскольку доступ к файлу осуществляется с помощью одного и того же API, стало возможно использовать одинаковый набор базовых команд для чтения и записи таких разнородных устройств, как диск, клавиатура, документ или сетевой интерфейс.
Абстракция файла, существующая в операционной системе UNIX и совместимых с ней системах, является основополагающей и всеобъемлющей. Любая системная служба и интерфейс устройства теперь могут реализовываться так, чтобы предоставлять другим приложениям метафору файла или файловой системы. Это открывает новые способы их использования и значительно расширяет возможности существующих приложений — простые инструменты, разработанные для решения узких задач, теперь, вооружившись абстракцией файла UNIX, могут использоваться совершенно по-новому. Небольшая утилита вроде cat, предназначенная для считываения одного или нескольких файлов и вывода их содержимого на стандартный поток вывода, теперь может выполнять чтение с устройств ввода-вывода с помощью специальных файлов устройств, как правило расположенных в каталоге . С другой стороны, во многих системах запись и проигрываение звука теперь выполняется всего лишь командами «» и «» соответственно.

В GNU/Linux каждый файл принадлежит какому-то пользователю и группе. Существует три типа прав доступа — чтение, запись и исполнение. Права доступа задаются по отдельности для владельца-пользователя, владельца-группы, и для прочих пользователей, которые не входят в первые две категории. Владельцев файла и права доступа можно узнать с помощью «длинного» формата команды :

$ ls -l /boot/
total 13740
drwxr-xr-x 2 root root    4096 Jan 12 00:33 grub
-rw-r--r-- 1 root root 8570335 Jan 12 00:33 initramfs-linux-fallback.img
-rw-r--r-- 1 root root 1821573 Jan 12 00:31 initramfs-linux.img
-rw-r--r-- 1 root root 1457315 Jan  8 08:19 System.map26
-rw-r--r-- 1 root root 2209920 Jan  8 08:19 vmlinuz-linux

Первая колонка содержит права доступа к файлу (например, правами файла являются ). Третья и четвёртая колонки содержат соответственно пользователя и группу, которым принадлежит файл. В этом примере все файлы принадлежат пользователю root и группе root.

$ ls -l /media/
total 16
drwxrwx--- 1 root vboxsf 16384 Jan 29 11:02 sf_Shared

В этом примере каталог принадлежит пользователю root и группе vboxsf. Владельца и права доступа можно также определить утилитой stat.

Пользователь-владелец:

$ stat -c %U /media/sf_Shared/
root

Группа-владелец:

$ stat -c %G /media/sf_Shared/
vboxsf

Права доступа:

$ stat -c %A /media/sf_Shared/
drwxrwx---

Права доступа отображаются тремя группами символов, которые являются правами соответственно пользователя, группы и всех остальных. Например, строка говорит о том, что владелец файла имеет права на чтение и запись, но не на выполнение (), а пользователи из группы-владельца и прочие пользователи имеют доступ только на чтение ( и ). С другой стороны, строка говорит о том, что у пользователя и группы права на чтение, запись и исполнение ( и ), а все остальные доступа к файлу не имеют вовсе (). Первый символ в строке означает тип файла.

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

# find / -group имя_группы
# find / -group номер_группы
# find / -user имя_пользователя

Изменить владельцев файла можно командой chown, а права доступа меняются командой chmod:

Добавление пользователя в группу sudo

Самый быстрый и простой способ предоставить пользователю права sudo — это добавить пользователя в группу «sudo». Члены этой группы могут выполнять любую команду как root через и получать запрос на аутентификацию с их паролем при использовании .

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

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

Убедитесь, что вы заменили «username» на имя пользователя, которому вы хотите предоставить доступ.

Предоставления доступа sudo с помощью этого метода достаточно для большинства случаев использования.

Чтобы убедиться, что пользователь был добавлен в группу, введите:
 

Вам будет предложено ввести пароль. Если у пользователя есть доступ к sudo, команда выведет «root». В противном случае вы получите сообщение об ошибке «пользователя нет в файле sudoers».

Создание пользователей

Возможно, у вас уже есть пользователи, которых вы могли бы добавить в только что созданные группы. Если нет, вот базовый синтаксис для создания пользователя при помощи команды 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»:

usermod -g editors quincy

Создание

Синтаксис:

useradd <имя пользователя>

* опции не являются обязательными при создании пользователя.

Пример:

useradd dmosk

* в данном примере создается учетная запись dmosk.

Для учетной записи стоит сразу создать пароль:

passwd dmosk

* после ввода, система попросит ввести пароль дважды.

Ключи (опции)

Ключ Описание и примеры
-b Задает базовый каталог для домашнего каталогаuseradd dmosk -b /var/home
-c Создает комментарий для описания учетной записиuseradd dmosk -c «Пользователя для управления системой»
-d Полный путь к домашнему каталогу пользователяuseradd dmosk -d /home/newuser
-D Позволяет показать или изменить настройки по умолчанию, которые будут применяться при последующем создании пользователейuseradd dmosk -Ds /bin/bash
-e Дата, после которой учетная запись устареет.useradd dmosk -e 2017-12-31
-f Число дней, после которого учетная запись с устаревшим паролем будет заблокированаuseradd dmosk -f 0
-g Задает основную группуuseradd dmosk -g altternativegroup
-G Задает дополнительные группыuseradd dmosk -G wheel
-k Путь к источнику скелета (файлы с шаблонами для нового пользователя)useradd dmosk -k /var/skel
-m При создании пользователя создать домашний каталогuseradd dmosk -m
-M Не создавать домашний каталогuseradd dmosk -M
-N Не создавать основную группу с таким же именем, как у пользователяuseradd dmosk -N
-o Разрешает создание учетной записи с повторяющимся UIDuseradd dmosk -u 15 -o
-p Задает парольuseradd dmosk -p pass
-r Системная учетная запись (без домашнего каталога и с идентификаторами в диапазоне SYS_UID_MIN — SYS_UID_MAX из файла /etc/login.defs)useradd dmosk -r
-R Каталог, в который выполняется chrootuseradd dmosk -R /var/chroot/home
-s Путь до оболочки командной строкиuseradd dmosk -s /bin/csh
-u Задает UIDuseradd dmosk -u 666
-U Имя группы будет таким же, как у пользователяuseradd dmosk -U

Актуальный список ключей можно получить командой useradd -h.

Создание группы Linux вручную

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

имя_группыхgidсписок_пользователей

Разберём более подробно, какой параметр за что отвечает:

  • имя_группы — имя, которое будет использоваться для операций с группой;
  • x — заглушка пароля группы, пароль указывается в файле /etc/gshadow, если в этом есть необходимость;
  • gid — идентификатор группы;
  • список_пользователей — пользователи, разделённые запятыми, которые входят в группу.

Таким образом, чтобы создать группу group7, достаточно добавить строку:

Всё. Теперь нашу группу можно использовать, например, добавим в неё пользователя:

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

Как исправить в случае провала

Если вы измените основную группу пользователя с помощью опции «-g», и все его / ее членство во вторичной группе утрачено, вы можете исправить это несколькими способами.

Способ 1: Если вы предварительно настроили пароль «root» (ненормально в Ubuntu), вы можете войти в систему как «root» и затем выполнить следующую команду:

После выполнения вышеуказанной команды выйдите из системы и войдите в систему как пользователь (в данном случае – mackey).

Способ 2: Если вы не установили пароль для пользователя «root», то вы не можете войти в систему как пользователь root. В этом случае из меню grub загрузитесь в recovery и введите в командной строке привилегии root. Затем выполните ту же команду, указанную выше:

Перезагрузка и пользователь “mackey” теперь должен восстановить все вторичные группы. Основной группой будет «NewPrimaryGroup».

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

Опция “-a” означает добавление к существующим членствам.

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

Источник записи: https://www.smarthomebeginner.com

Типы групп в Linux

Выделим группы пользователей:

  1. Первичная (основная группа). После регистрации в системе пользователь автоматически попадает в эту группу. Зачастую название основной группы является идентичным имени юзера в Линукс. Пользователь может состоять только в одной первичной группе, без каких-либо исключений из правила.
  2. Вторичные группы. В процессе работы с устройством на базе ядра Linux пользователь может попасть в дополнительные группы. Количество вторичных групп для юзеров системы ограничено. Верхний лимит – 32 шт.

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

Как будет выглядеть синтаксическая структура нужной команды:

Основные опции:

  • -G – вторичные (дополнительные) группы для юзера системы;
  • -a – добавление юзера системы во вторичные группы из параметра, который был указан ранее (-G), вместо замены текущего значения;
  • -g – создание новой первичной группы для юзера системы. В неё попадут все файлы, которые хранятся в домашнем каталоге.

Добавление пользователя в группу на примере

В целом, команда usermod способна предложить пользователю целое множество опций, но мы не станем рассматривать их целиком, ведь для решения актуальной проблемы можно ограничиться тремя опциями, указанными выше. Вместо этого рассмотрим процесс добавления пользователя в группу Линукс на примере. Допустим, нужно добавить пользователя «ya» в группу root.

Здесь:

  • root — имя группы, в которую нужно добавить пользователя;
  • ya — имя пользователя.

Наличие опции «-a» в данной комбинации – это своего рода защита системы от удаления ранее созданных групп. Эта опция должна стоять перед опцией «-G» в обязательном порядке, иначе программа наделает немало бед.

Где найти данные о пользователе Linux?

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

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

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

Первичная группа пользователя соответствует его имени, указанному при регистрации в системе. Однако в некоторых случаях может возникнуть необходимость изменить одну группу на другую, например users. Как это должно выглядеть на практике:

Готово! Первичная группа пользователя изменена.

Как добавить пользователя в группу через GUI

Рассмотрим альтернативный метод решения данного вопроса для тех, кто не испытывает положительных эмоций во время работы с терминалом. На этот раз вам потребуется иметь дело с графическим интерфейсом. В данном случае для добавления пользователя в группу Линукс понадобится специальный инструмент – системная утилита system-config-users.

Чтобы установить её в CentOS, задайте такую комбинацию:

Установка завершена! Запустите инструмент через системное меню или при помощи терминала – выберите для себя наиболее удобный способ. Окно программы не перегружено информацией, поэтому вам не составит труда найти здесь нужное имя пользователя. Кликните по нему дважды, перепрыгните на вкладку под названием «Группы». В новом окне вы можете выполнить следующие действия:

  1. Изменить первичную группу;
  2. Выбрать галочками вторичные группы.

Заключение

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

Изменить основную группу пользователей

Используемая команда – usermod. Ниже приведен синтаксис команды:

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

Как и ожидалось, приведенная выше команда изменит первичную группу mackey с «mackey» на «NewPrimaryGroup». Тем не менее, все членства во второй группе этого пользователя исчезнут, включая «admin». Это означает, что отныне пользователь не сможет использовать команду «sudo» для получения root-доступа. Этот пользователь не сможет вносить какие-либо изменения в систему (например, устанавливать / удалять программное обеспечение).

Это, однако, не происходит во всех дистрибутивах. Например, в Ubuntu 12.04 Precise Pangolin команда «sudo usermod -g NewPrimaryGroup user» назначает новую первичную группу пользователю, сохраняя все существующие вторичные группы. Тем не менее, мне нравится сменить первичную группу безопасным способом, который дает контроль над моей рукой.

Безопасный способ изменить основную группу пользователя Linux – использовать следующую команду:

Эта команда сначала изменит первичную группу пользователя mackey с «mackey» на «NewPrimaryGroup». Затем он назначит пользователя “mackey” следующим вторичным группам: “mackey, adm, cdrom, sudo, dip, plugdev, sambashare, lpadmin”. Таким образом, основная группа Макки будет изменена, не влияя на членство в других группах и не теряя членство в предыдущей основной группе «Макки».

Управление группами

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

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

$ groups пользователь

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

Команда id позволяет узнать дополнительные подробности, вроде UID и GID пользователя:

$ id пользователь

Команда для вывода списка существующих групп:

$ cat /etc/group

Команда для создания новой группы:

# groupadd группа
# gpasswd -a пользователь группа

Также добавить пользователя в группы можно командой usermod (здесь — список групп, разделённых запятыми без пробелов):

# usermod -aG доп_группы пользователь

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

Команда для изменения группы, например, переименования:

# groupmod -n новая_группа старая_группа

Примечание: Изменится название группы, но не численное значение GID. Файлы, принадлеживашие старой группе, будут теперь принадлежать новой.

Команда для удаления группы:

# groupdel группа

Команда для удаления пользователя из группы:

# gpasswd -d пользователь группа

Примечание: Если пользователь в этот момент был залогинен, то ему придётся выйти из системы и снова выполнить вход, чтобы изменения вступили в силу.

Проверить корректность базы данных групп можно командой grpck.

Важно: Arch Linux при обновлении пакетов создаёт резервные копии файлов с суффиксом .pacnew. За исключением случаев, когда pacman выводит сообщение с требованием что-то предпринять, файл базы данных с таким суффиксом необходимо удалить

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

База данных пользователей

Информация о пользователях хранится в открытом виде в файле : каждая строка в нём представляет собой набор из семи полей, описывающих аккаунт.

account:password:UID:GID:GECOS:directory:shell

По порядку:

— имя пользователя. Это поле не может быть пустым. Применяются стандартные для *NIX правила именования.

— пароль пользователя

Важно: Файл доступен на чтение для всех пользователей в системе, поэтому хранить в нём пароли (в виде хэш-сумм или как-то иначе) небезопасно. Вместо этого в Arch Linux используются : поле содержит всего лишь символ , а хэшированный пароль хранится в файле , доступ к которому ограничен

По этой причине менять пароли лучше командой passwd.

— численное значение идентификатора пользователя. В Arch Linux нумерация обычных пользователей (отличных от root) начинается с UID 1000.

— численное значение идентификатора основной группы пользователя. Идентификаторы групп можно найти в файле .

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

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

— командная оболочка пользователя. Это поле является необязательным, и если в нём ничего не указано, то используется оболочка .

Пример:

jack:x:1001:1003:Jack Smith,some comment here,,:/home/jack:/bin/bash

Смысл строки следующий: пользователь , пароль хранится в , идентификатор пользователя — 1001, идентификатор его основной группы 1003. Полное имя — Jack Smith, также имеется некоторый комментарий. Домашний каталог , используемая командная оболочка — Bash.

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

# pwck -s

Важно: Arch Linux при обновлении пакетов создаёт резервные файлы с суффиксом .pacnew. За исключением случая, когда pacman выводит сообщение с требованием что-то предпринять, при появлении файла базы данных с таким суффиксом его необходимо удалить

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

Резервирование

Первый шаг к созданию домена Active Directory является создание резервов. Если это первый контроллер домена в новом домене (как предполагает это руководство), это подразумевает создание внутреннего LDAP, Kerberos и DNS-серверов и выполнение всех базовых настроек, необходимых для каталога. Вы должны быть в курсе потенциальных ошибок, созданных этими индивидуальными компонентами и работающих, как единое целое. Причина этой трудности в том, что разработчики Samba решили не использовать сервер MIT Kerberos или Heimdal или сервер OpenLDAP в пользу выбора внутренних версих этих программ. Выше были установлены пакеты сервера только для клиентских программ. С Samba 4 резервирование проще. Выполните следующую команду:

# samba-tool domain provision --use-rfc2307 --use-xattrs=yes --interactive

Объяснение параметров (аргументов)

—use-rfc2307
этот параметр добавляет POSIX атрибуты (UID / GID) на схеме AD. Это понадобится при аутендификации клиентов Linux, BSD, or OS X (в том числе на локальной машине) в дополнение к Microsoft Windows.
—use-xattrs=yes
этот параметр включает расширенное использование атрибутов unix (ACLs) для файлов, размещенных на этом сервере. Если вы не будете открывать доступ файлов на контроллере домена, пропустите этот аргумент (но это не рекомендуется). Вы также должны убедиться, что все файловые системы, которые будут принимать открыт доступ Samba, установлены с поддержкой ACL’s.
—interactive
этот параметр заставляет сценарий резерва запускаться в интерактивном режиме. Alternately, you can review the help for the provision step by running .

Interactive provision explanations

Realm
INTERNAL.DOMAIN.COM — должен быть таким же, как и домен DNS в верхнем регистре. Является общим для использования внутреннего только суб-домена, чтобы отделить внутреннюю область от ваших внешних доменов DNS, но это не обязательно.
Domain
INTERNAL — тут указывается доменное имя NetBIOS, как правило, leftmost DNS-суб-домен, но может быть все что угодно. Внутреннее имя, например, будет не наглядным. Возможно, будет уместно название компании или инициалы. Это должно вводится во всех шапках, и содержать максимум 15 символов, для совместимости со старыми клиентами.
Server Role
dc — Этот пункт предполагает, что в новом домене установлен первый DC. Если вы выберите что-то другое, то остальная часть статьи, вероятно, будет бесполезна для вас.
DNS Backend
BIND9_DLZ или SAMBA_INTERNAL — This is down to personal preference of the server admin. Again, if you are hosting DNS for external domains, you are strongly encouraged to use the BIND9_DLZ backend so that flat zone files can continue to be used and existing transfer rules can co-exist with the internal DNS server. Если вы не уверены, используйте бакэнд SAMBA_INTERNAL.
Administrator password
xxxxxxxx — Вы должны задать сложный пароль для аккаунта администратора. Минимальным требованием являются: одна буква в верхнем регистре, одна цифра, и не менее восьми символов. Если вы попытаетесь использовать пароль, который не отвечает требованиям сложности, инициализации не удастся.

Добавление пользователя в файл sudoers

Привилегии sudo пользователей и групп определены в  файле. Добавление пользователя в этот файл позволяет предоставить настраиваемый доступ к командам и настроить настраиваемые политики безопасности.

Вы можете настроить доступ пользователя sudo, изменив файл sudoers или создав новый файл конфигурации в  каталоге. Файлы внутри этого каталога включены в файл sudoers.

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

Как правило,  использует vim для открытия  . Если у вас нет опыта работы с vim, и вы хотите отредактировать файл с помощью nano, измените редактор по умолчанию, запустив:

  Допустим, вы хотите разрешить пользователю запускать команды sudo без запроса пароля. Для этого откройте  файл:

  Прокрутите вниз до конца файла и добавьте следующую строку:

/etc/sudoers

Сохраните файл и выйдите из редактора . Не забудьте изменить «имя пользователя» на имя пользователя, которому вы хотите предоставить доступ.

Другой типичный пример — позволить пользователю выполнять только определенные команды через  . Например, чтобы разрешить только  и  команды , которые вы будете использовать:

/etc/ sudoers

Вместо редактирования файла sudoers вы можете сделать то же самое, создав новый файл с правилами авторизации в  каталоге. Добавьте то же правило, что и в файл sudoers:

  Такой подход делает управление привилегиями sudo более понятным

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: