Управление пользователями на ubuntu и debian

Как это работает

Соответствие между правилами ACL и базовыми правами доступа

Разрешения доступа, определяемые правилами ACL имеют приоритет перед базовыми правами доступа.

Существует соответствие между пользователем-владельцем, группой-владельцем и прочими:

  • Права пользователя владельца представляются правилом ACL типа user без определения имени:

    u::rwx
  • Права группы-владельца соответствуют:
    • при наличии маски — значению, заданному маской;
    • при отсутствии маски — правилу ACL типа group без определения имени:

      g::r-x
  • Права для прочих субъектов соответствуют правилу ACL типа other.

Это соотвествие однозначно: изменение базовых прав доступа всегда изменяет соответствующие им правила ACL, а изменение правил ACL изменяет соответствующие им базовые права.

Алгоритм проверки права доступа

После того, как субъект доступа запрашивает разрешение на выполнение операции чтения, изменения или исполнения/поиска с неким ФО, проверка выполняется по следующим правилам:

  • Эффективный идентификатор субъекта доступа равен идентификатору пользователя-владельца ФО?
    • Да:
      • Соответствующее пользователю-владельцу правило ACL содержит разрешение на запрошенную операцию?
        • Да: Доступ предоставляется;
        • Нет: Доступ запрещается;
    • Нет:
      • Существует правило ACL типа user, идентификатор пользователя в котором равен эффективному идентификатору субъекта доступа?
        • Да:
          • Разрешенные в этом правиле ACL права и права в маске ACL содержат разрешение на запрошенную операцию?
            • Да: Доступ предоставляется;
            • Нет: Доступ запрещается;
        • Нет:
          • Для всех правил ACL типа group, идентификатор в которых равен эффективному идентификатору любой группы, включающей субъект доступа или равен идентификатору группы-владельца ФО:
            • Существует маска ACL?
                • Да:
                  • Маска и любое из соответствующих правил содержат разрешение на запрошенную операцию?
                    • Да: Доступ предоставляется;
                    • Нет: Доступ запрещается;
                • Нет:
                  • Любое из соответствующих правил содержит разрешение на запрошенную операцию?
                    • Да: Доступ предоставляется;
                    • Нет: Доступ запрещается;
          • Правило ACL типа other содержит разрешение на запрошенную операцию?
            • Да: Доступ предоставляется;
            • Нет: Доступ запрещается.

Правила ACL для ФО создаются при создании ФО любым из системных вызовов: creat(), mkdir(), mknod(), mkfifo(), open().

Если для каталога, содержащего создаваемый ФО, определены применяемые по умолчанию правила ACL, то:

  1. Создаваемый ФО наследует применяемые по умолчанию правила ACL;
  2. Правила ACL, соответствующие базовым правилам доступа к ФО, модифицируются так, чтобы они не содержали прав, не заданных параметром mode системного вызова

Если применяемые по умолчанию правила не заданы, то:

  1. Создаваемому ФО присваиваются правила ACL user, group и other, соответствующие базовым правилам, и их значения устанавливаются в соответствии с действующим параметром umask;
  2. Значения созданных правил изменяются, чтобы они не содержали прав, не заданных параметром mode системного вызова.

Изменения в инструментах для работы с файлами

  • Для ФО, имеющих применяемые по умолчанию правила ACL, или имеющих более трех базовых правил ACL, инструмент ls при выводе данных в подробном формате (опция -l) добавляет символ «+» в конце строки прав доступа;
  • Инструмент копирования файлов cp при использование опции -p старается также скопировать правила ACL, и выдает предупреждение, если это не удается;
  • Инструмент перемещения файлов mv всегда пытается сохранить правила ACL. и выдает предупреждение, если это не удается.

Как добавить нового пользователя?

В Ubuntu и Debian есть два инструмента командной строки, которые вы можете использовать для создания новой учетной записи пользователя: useradd и adduser.

useradd — это низкоуровневая утилита для добавления новых пользователей, а adduser — дружественный интерактивный интерфейс для useradd, написанный на Perl.

Для создания новой учетной записи пользователя операционной системы с именем username с помощью команды adduser, выполните следующую команду:

В результате появится диалог, в котором необходимо ввести пароль и дополнительную информацию:

Adding user `username' ...

Adding new group `username’ (1000) …

Adding new user `username’ (1000) with group `username’ …

Creating home directory `/home/username’ …

Copying files from `/etc/skel’ …

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully

Changing the user information for username

Enter the new value, or press ENTER for the default

    Full Name []: Name

    Room Number []: 100

    Work Phone []: 123-45-45

    Home Phone []:

    Other []:

Is the information correct? [Y/n] Y

Команда создает домашний каталог для нового пользователя и скопирует туда файлы из каталога /etc/skel.

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

Команда useradd

Синтаксис команды useradd

Команда useradd принимает в качестве аргумента имя пользователя, а также различные опции.

Синтаксис команды следующий:

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

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

Чтобы просто создать пользователя используется команда useradd без каких-либо опций. Указывается только имя пользователя.

Данная команда создает нового пользователя с системными параметрами по умолчанию, которые прописаны в файле /etc/default/useradd

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

Создание нового пользователя с домашней директорией в /home

Создадим пользователя и его домашнюю директорию.

Домашняя директория создается по умолчанию в каталоге /home. Имя директории совпадает с именем пользователя.

Создание нового пользователя с произвольной домашней директорией

Чтобы создать пользователя с домашней директорией, расположенной в произвольном месте, используется опция -d, после которой указывается путь до директории. Директорию необходимо создать заранее.

Создаем домашнюю директорию для будущего пользователя:

Копируем файлы и директории, которые по умолчанию создаются в домашней директории пользователя в данной системе. Данные файлы находятся в директории /etc/skel

Создаем пользователя и указываем домашнюю директорию:

Меняем права доступа у домашней директории:

Задаем пароль для пользователя:

Можно просмотреть информацию о пользователе, которая сохранена в файле /etc/passwd

Создание нового пользователя с произвольными UID, GID

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

При создании пользователя можно задать произвольные номера UID и/или GID. При указании номера группы, группа с этим номером должна быть создана заранее.

Создание пользователя с указанием оболочки (shell)

По умолчанию новые пользователи создаются с оболочкой /bin/sh Чтобы задать другую оболочку, используется опция -s /путь/до/оболочки

Создать пользователя и добавить его в группы

Обычно пользователи в Linux принадлежат нескольким группам. Чтобы при создании нового пользователя задать группы, к которым он будет принадлежать, используется опция -G список,групп

Типы групп в 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. Выбрать галочками вторичные группы.

Заключение

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

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

Вся информация о пользователях находится в файле /etc/passwd. Мы могли бы создать пользователя linux просто добавив его туда, но так делать не следует, поскольку для этой задачи существуют специальные утилиты. Одна из таких утилит, это useradd. Рассмотрим ее подробнее.

Команда useradd

Это довольно простая команда, которая есть во всех дистрибутивах Linux. Она позволяет зарегистрировать нового пользователя или изменить информацию об уже имеющемся. Во время создания можно даже создать домашний каталог пользователя и скопировать в него системные файлы. Рассмотрим синтаксис команды:

$ useradd опции имя_пользователя

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

  • -b — базовый каталог для размещения домашнего каталога пользователя, по умолчанию /home;
  • -c — комментарий к учетной записи;
  • -d — домашний каталог, в котором будут размещаться файлы пользователя;
  • -e — дата, когда учетная запись пользователя будет заблокирована, в формате ГГГГ-ММ-ДД;
  • -f — заблокировать учетную запись сразу после создания;
  • -g — основная группа пользователя;
  • -G — список дополнительных групп;
  • -k — каталог с шаблонами конфигурационных файлов;
  • -l — не сохранять информацию о входах пользователя в lastlog и faillog;
  • -m — создавать домашний каталог пользователя, если он не существует;
  • -M — не создавать домашнюю папку;
  • -N — не создавать группу с именем пользователя;
  • -o — разрешить создание пользователя linux с неуникальным идентификатором UID;
  • -p — задать пароль пользователя;
  • -r — создать системного пользователя, не имеет оболочки входа, без домашней директории и с идентификатором до SYS_UID_MAX;
  • -s — командная оболочка для пользователя;
  • -u — идентификатор для пользователя;
  • -D — отобразить параметры, которые используются по умолчанию для создания пользователя. Если вместе с этой опцией задать еще какой-либо параметр, то его значение по умолчанию будет переопределено.

Теперь, когда вы знаете основные необходимые нам параметры утилиты мы можем перейти к разбору того, как выполняется создание нового пользователя linux. Сначала давайте посмотрим какие параметры будут применены для пользователя по умолчанию:

Как видите, по умолчанию домашний каталог пользователя будет создан в /home и будет использоваться оболочка /bin/sh. Теперь создадим минимального пользователя с минимальными настройками:

Был создан самый простой пользователь, без оболочки и пароля, а также без групп. Теперь немного усложним задачу и создадим пользователя с паролем и оболочкой /bin/bash:

Для того чтобы получать доступ к системным ресурсам пользователю нужно быть участником групп, у которых есть доступ к этим ресурсам. Дополнительные группы пользователя задаются с помощью параметра -G. Например, разрешим пользователю читать логи, использовать cdrom и пользоваться sudo:

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

Некоторых пользователей интересует создание пользователя с правами root linux, это очень просто делается с помощью useradd, если комбинировать правильные опции. Нам всего лишь нужно разрешить создавать пользователя с неуникальным uid, установить идентификатор в 0 и идентификатор основной группы тоже в 0. Команда будет выглядеть вот так:

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

Создание нового пользователя linux в GUI

Затем откройте «Пользователи»:

Поскольку утилита запущена от имени обычного пользователя вы ничего не можете сделать. Поэтому нажмите кнопку «Разблокировать»:

Только после этого используйте кнопку со знаком плюс для создания нового пользователя Linux:

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

После этого создание пользователя 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:

Управление пользователями

Просмотр

Вся информация о пользователях хранится в файле .

Каждый аккаунт занимает одну строку, в формате

  • — имя пользователя.
  • — зашифрованный пароль пользователя.
  • — идентификационный номер пользователя.
  • — идентификационный номер основной группы пользователя.
  • — необязательное поле, используемое для указания дополнительной информации о пользователе (например, полное имя пользователя).
  • — домашний каталог ($HOME) пользователя.
  • — командный интерпретатор пользователя (обычно /bin/sh).

Получение информации о пользователях

  • – вывод информации (имя пользователя, рабочий терминал, время входа в систему, информацию о потребленных ресурсах CPU и имя запущенной программы) о всех вошедших в систему пользователях.
  • – вывод информации (имя пользователя, рабочий терминал, время входа в систему) о всех вошедших в систему пользователях.
  • или или – вывод вашего имени пользователя.
  • – вывод имен пользователей, работающих в системе.
  • – вывод о идентификаторах пользователя: его uid, имя_пользователя, gid и имя первичной группы и список групп в которых состоит пользователь
  • – вывод списка групп в которых состоит пользователь.

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

Добавление пользователя осуществляется при помощи команды useradd.

Ключи:

  • Базовый каталог. Это каталог, в котором будет создана домашняя папка пользователя. По умолчанию /home.
  • Комментарий. В нем вы можете напечатать любой текст.
  • Название домашнего каталога. По умолчанию название совпадает с именем создаваемого пользователя.
  • Дата, после которой пользователь будет отключен. Задается в формате ГГГГ-ММ-ДД. По умолчанию отключено.
  • Количество дней, которые должны пройти после устаревания пароля до блокировки пользователя, если пароль не будет изменен (период неактивности). Если значение равно 0, то запись блокируется сразу после устаревания пароля, при -1 — не блокируется. По умолчанию -1.
  • Первичная группа пользователя. Можно указывать как GID, так и имя группы. Если параметр не задан будет создана новая группа название которой совпадает с именем пользователя.
  • Список вторичных групп в которых будет находится создаваемый пользователь
  • Каталог шаблонов. Файлы и папки из этого каталога будут помещены в домашнюю папку пользователя. По умолчанию /etc/skel.
  • Ключ, указывающий, что необходимо создать домашнюю папку. По умолчанию домашняя папка не создается.
  • Зашифрованный пароль пользователя. По умолчанию пароль не задается, но учетная пользователь будет заблокирован до установки пароля.
  • Оболочка, используемая пользователем. По умолчанию /bin/sh.
  • Вручную задать UID пользователю.

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

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

Изменение пользователя

Изменение параметров пользователя происходит с помощью утилиты usermod. Пример использования:

Изменить пароль пользователю можно при помощи утилиты passwd.

Утилита passwd может использоваться и обычным пользователем для смены пароля.

Основные ключи passwd:

  • Удалить пароль пользователю. После этого пароль будет пустым, и пользователь сможет входить в систему без предъявления пароля.
  • Сделать пароль устаревшим. Это заставит пользователя изменить пароль при следующем входе в систему.
  • Заблокировать учетную запись пользователя по прошествии указанного количества дней после устаревания пароля.
  • Минимальное количество дней между сменами пароля.
  • Максимальное количество дней, после которого необходимо обязательно сменить пароль.
  • Заблокировать учетную запись пользователя.
  • Разблокировать учетную запись пользователя.

Установка пустого пароля пользователя

Супер пользователь с помощью утилит командной строки passwd и usermod или путем редактирования файла /etc/shadow может удалить пароль пользователь, дав возможность входить в систему без указания пароля.

или

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

Удаление пользователя

Для того, чтобы удалить пользователя воспользуйтесь утилитой userdel.

Пример использования:

  • Принудительно удалить пользователя, даже если он сейчас работает в системе.
  • Удалить домашний каталог пользователя.
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

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