Создать пароль для пользователя linux

Обновлено: 02.07.2024

Сегодня я хочу поговорить о пользователях в Linux. Мы познакомимся с типами пользователей и узнаем в каких файлах хранится связанная с ними информация. Изучим команды позволяющие управлять пользователями и изменять их данные. Рассмотрим примеры создания пользователей с различными параметрами и последующим изменениям пользовательских настроек.

Типы пользователей

В ОС Linux существует три типа пользователей:

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

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

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

Каждый пользователь помимо имени имеет числовой идентификатор пользователя UID (User IDentificator). Пользователь root имеет идентификатор 0. Системные пользователи имеют идентификаторы от 1 до 100. Обычные пользователи имеют UID от 100.

Пользователи могут объединяться в группы. Каждый пользователь обязательно входит в ту или иную группу. Группы имеют числовой идентификатор группы GID (Group IDentificator).

Информация пользователей

В системе присутствует следующая информация о каждом пользователе:

  • Имя пользователя (user name) - в рамках системы имя должно быть уникальным. В именах должны использоваться только английские буквы, числа и символы _ и . (точка).
  • Идентификационный номер пользователя (UID) - является уникальным идентификатором пользователя в системе. Система отслеживает пользователей по UID, а не по именам.
  • Идентификационный номер группы (GID) - обозначает группу, к которой относится пользователь. Каждый пользователь может принадлежать к одной или нескольким группам. Принадлежность пользователя к группе устанавливает системный администратор, чтобы иметь возможность ограничивать доступ пользователей к тем или иным ресурсам системы.
  • Пароль (password) - пароль пользователя в зашифрованном виде.
  • Полное имя (full name) - помимо системного имени может присутствовать полное имя пользователя, например фамилия и имя.
  • Домашний каталог (home directory) - каталог, в который попадает пользователь после входа в систему. Подобный каталог имеется у каждого пользователя, все пользовательские каталоги хранятся в директории /home.
  • Начальная оболочка (login shell) - командная оболочка, которая будет запускаться при входе в систему. Например, /bin/bash.

Вся информация о пользователях хранится в следующих файлах:

passwd (etc/passwd) - содержит информацию о пользователях, имеет следующий формат записи - "user_name:password:UID:GID:full_name:home_directory:login_shell". Элементы записи должны разделяться символом - ":" (двоеточие) и записываются без пробелов. Если пароль хранится в зашифрованном виде в файле /etc/shadow, то вместо пароля указывается - "x".

group (etc/group) - информация о группах, формат - "group_name:password:GID:user1,user2,user3". Элементы записи должны разделяться символом - ":" (двоеточие) записываются без пробелов. Имена пользователей записываются через запятую.

У файлов /etc/passwd и /etc/group всегда определенные права доступа: чтение и запись для root, для остальных только чтение.

shadow (etc/shadow) - в этом файле хранятся так называемые "теневые пароли", информация о паролях пользователей в зашифрованном виде. Cделано это для безопасности, так как файл /etc/passwd может читаться кем угодно, а файл /etc/shadow может прочитать только root.

gshadow (etc/gshadow) - то же самое что и shadow, только для паролей групп.

Помимо основных, в системе присутствуют дополнительные файлы.

useradd (etc/default/useradd) - файл задающий свойства "по умолчанию" для всех добавляемых пользователей. Можно просмотреть командой - useradd -D.

login.defs (/etc/login.defs) - содержит настройки для создания новых пользователей.

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

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

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

useradd или adduser - добавить нового пользователя.

passwd - задать пароль для пользователя.

usermod - изменить параметры учетной записи пользователя.

userdel или deluser - удалить учетную запись пользователя.

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

groupadd - добавляет новую группу.

gpasswd - устанавливает пароль группы.

groupmod - изменение параметров группы.

groupdel - удаление группы.

Обычное добавление пользователя

При создании нового пользователя автоматически указываются несколько параметров. В файле /etc/passwd, заводится запись с указанием имени пользователя, домашнего каталога, UID, GID. В каталог помещаются файлы инициализации командной оболочки. Все можно указать вручную, при помощи дополнительных опций. Список опций можно просмотреть командой useradd --help или useradd -h.

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

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

Теперь нужно задать пароль для созданного пользователя. Пароль задается командой passwd с указанием имени пользователя.

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

Проверим с какими параметрами был создан пользователь:

Подобным образом команда useradd работает в CentOS и других подобных ему системах, но в Debian или Ubuntu она просто создаст голого пользователя, а все остальное придется добавлять потом вручную.

Чтобы создать пользователя с подобными параметрами в Debian & Ubuntu команда useradd должна выглядеть следующим образом.

Поэтому в Ubuntu & Debian удобнее пользоваться утилитой adduser, при ее использовании нужно будет ответить на несколько вопросов, в процессе ее выполнения будут видны все шаги по созданию нового пользователя.

Проверим как создался пользователь.

Пользователь создался как и в CentOS, за исключением того, что там мы не указывали полного имени "Techlist. ", через запятые должны были быть указаны номера комнаты и телефонов, которые мы пропустили нажав на <Enter>.

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

По умолчанию команда useradd создает домашний каталог пользователя в директории /home, имя домашнего каталога всегда совпадает с именем пользователя. Например при создании пользователя techlist, создается домашняя директория /home/techlist.

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

Как можно видеть, пользователь techlist создался с домашним каталогом в /opt/tech.

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

Каждому пользователю при его создании присваивается UID, присвоение идет по порядку: 1000, 1001 и т.д. При использовании опции -u пользователю можно задать определенный UID. Для примера создадим пользователя techlist c UID равным 777.

Сначала создадим группу techlist c GID равным 777.

Обратите внимание, группа создана но пользователей в нет, теперь можно создать пользователя с UID=777 и указать его принадлежность к группе techlist с помощью опции -g и указания GID 777.

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

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

Допустим что новый пользователь techlist должен принадлежать к следующим группам: group_1, group_2 и group_3.

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

Иногда пользователю не требуется домашний каталог, для этого используется опция -M.

Создание пользователя с истекающим сроком действия аккаунта

По умолчанию каждый пользователь не имеет срока действия аккаунта. Срок действия можно установить задав дату истечения аккаунта. Для этого следует использовать опцию -e после которой указывается дата истечения аккаунта в формате YYYY-MM-DD. Создадим пользователя techlist с истечением аккаунта в 2017-05-01, по достижении даты аккаунт будет недействителен.

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

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

Создание пользователя с указанием доп. информации

Иногда может возникнуть необходимость указать примечание для пользователя, в виде краткой заметки или указания имени и фамилии пользователя. Для этого можно воспользоваться опцией -c. Создадим пользователя vasek, с указанием имени и фамилии Vasya Pupkin.

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

Для того чтобы указать командную оболочку для пользователя используется опция -s

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

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

Иногда может потребоваться внести некоторые изменения в аккаунт пользователя. Сделать это можно при помощи команды usermod.

Синтаксис команды: usermod options username

Команда usermod имеет дополнительные опции, посмотреть список доступных опций можно командой usermod -h.

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

Пользователь был создан с дефолтными настройками.

Добавление доп. информации пользователю

Для начала добавим имя и фамилию пользователя, опцией -c.

Изменение домашнего каталога пользователя

По умолчанию домашним каталогом пользователя techlist является /home/techlist. Изменим его на каталог /opt/techlist, при помощи опции -d и опцией -m перенесем в новый каталог все содержимое старого.

Установка даты истечения срока аккаунта

Назначим дату истечения действия аккаунта, аккаунт будет действовать до 2017-05-01, дата задается опцией -e.

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

Изменим группу пользователя techlist. Сначала посмотрим к каким группам он принадлежит.

Добавим пользователя techlist к группе group_1, используя опцию -g.

Как можно увидеть группа изменилась, если раньше была 1001(techlist), то теперь стала 1002(group_1).

Как добавить пользователя к новой группе без удаления из предыдущей? Для этого существует опция -G.

Теперь пользователь принадлежит одновременно к двум группам 1002(group_1) и 1003(group_2).

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

Для добавления пользователя в одну из дополнительных групп, одновременно используются две опции -a и -G. В качестве дополнительной группы будет выступать группа wheel.

Теперь пользователь techlist относится к дополнительной группе wheel, что может наделить его привилегиями выполнять root-команды.

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

Существующему пользователю можно изменить имя, изменим имя пользователя techlist на techlist_admin, делается это опцией -l.

Блокировка аккаунта пользователя

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

Разблокировка аккаунта пользователя

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

Изменение командной оболочки пользователя

Чтобы изменить командную оболочку пользователя, надо выполнить следующую команду с опцией -s. Изменим пользовательскую оболочку для techlist_admin с /bin/bash/ на /bin/sh/.

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

Для изменения UID пользователя используется опция -u.

Для изменения GID пользователя используется опция -g.

Таким образом можно управлять пользователями и изменять их по своему усмотрению.

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

Для удаления пользователей в Linux существуют две команды userdel и deluser, команда userdel используется в RedHat - подобных системах, а deluser в Debian и производных системах. Помимо deluser в Debian можно использовать и userdel.

userdel

синтаксис команды: userdel options username

Для того чтобы удалить пользователя, выполняем команду userdel. Команда userdel не удаляет пользователя если он работает в системе, сначала необходимо завершить все связанные с ним процессы. Для просмотра дополнительных опций команды userdel, используется ключ -h.

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

deluser

синтаксис команды: deluser options username

Для просмотра справки используется команда deluser -h.

Настройки команды находятся в файле /etc/deluser.conf, здесь задается поведение утилиты при удалении пользователя.

Правильное удаление пользователя

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

Блокировка пользователя

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

Блокировку пользователя мы рассматривали выше.

Убить все пользовательские процессы

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

Узнаем что это за процессы используя их pid.

Hичего серьезного нет, можно завершать все. Завершение всех процессов вышвырнет пользователя из системы, а заново войти он не сможет, ибо был заранее заблокирован.


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

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

Для создания пользователей из командной строки обычно используют утилиты adduser или useradd. Рассмотрим, использование данных утилит.

В чем отличия adduser и useradd?

useradd — это низкоуровневая утилита для создания пользователей в Linux.

adduser — представляет собой более простое решение для создания пользователей и по факту является надстройкой над useradd, groupadd и usermod.

Утилита adduser доступна не во всех дистрибутивах Linux. Реализация adduser также может отличаться. Если в дистрибутиве присутствует утилита adduser, то для создания пользователей рекомендуется использовать именно ее.

Команда adduser

Создание пользователя командой adduser

Рассмотрим, как создать обычного пользователя командой adduser

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

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

Команда adduser в Linux

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

  • Создается новый пользователь с именем, которое вы указали при выполнении команды.
  • Создается группа с тем же именем.
  • Создается домашний каталог пользователя в директории /home/имяпользователя
  • В домашний каталог копируются файлы из директории /etc/skel

Команда useradd

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

Мы рассмотрели примеры создания нового пользователя в Linux с использованием команд adduser и useradd . Команда adduser более простая и в большинстве случаев рекомендуется использовать именно ее.

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

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

Основы

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

Список пользователей в Linux хранится в файле /etc/passwd, вы можете без труда открыть его и посмотреть, пароли же выделены в отдельный файл - /etc/shadow. Этот файл можно открыть только с правами суперпользователя, и, более того, пароли здесь хранятся в зашифрованном виде, поэтому узнать пароль Linux не получиться, а поменять вручную будет сложно.

В большинстве случаев смена пароля выполняется с помощью утилиты passwd. Это очень мощная утилита, она позволяет не только менять пароль, но и управлять сроком его жизни. У неё такой синтаксис:

$ passwd опции пользователь

Рассмотрим опции, чтобы лучше ориентироваться в использовании утилиты:

  • -d - удалить пароль пользователя, после этого он не сможет войти
  • -e - сделать пароль устаревшим
  • -i - через сколько дней после того, как пароль устарел, отключить аккаунт, если пользователь не сменил пароль
  • -l - запретить пользователю входить в систему
  • -n - минимальное количество дней между сменами пароля
  • -S - отобразить информацию об аккаунте
  • -u - отменяет действие параметра -l
  • -x - максимальное количество дней, пока пароль можно использовать.
  • -w - количество дней, после которых нужно предупреждать пользователя о том, что надо сменить пароль.

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

Если вы забыли пароль и вам его надо не просто сменить, а сбросить, вам будут полезными эти две статьи:

Как сменить пароль пользователя

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

passwd

Дальше необходимо ввести новый пароль - и готово, теперь он измеён. Он кодируетсятся с помощью необратимого шифрования и сохраняется в файле /etc/shadow Но заметьте, что вы не можете использовать здесь любой пароль. Система Linux заботится о том, чтобы пользователи выбирали достаточно сложные пароли. Если он будет очень коротким или будет содержать только цифры, вы не сможете его установить.

Общие требования для пароля такие: должен содержать от 6 до 8 символов, причём один или несколько из них должны относиться как минимум к двум из таких множеств:

  • Буквы нижнего регистра
  • Буквы верхнего регистра
  • Цифры от нуля до девяти
  • Знаки препинания и знак _

Теперь рассмотрим, как изменить пароль Linux для другого пользователя.

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

Со своим паролем всё понятно, но если вы захотите поменять код для другого пользователя, то придётся вопользоваться правами суперпользователя. А во всём остальном процесс тот же:

sudo passwd user

Здесь user - это пользователь, для которого нужна смена пароля Linux. Требования для пароля такие же: вы не сможете установить слишком простой пароль.

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

sudo passwd -d user

Как поменять пароль группы

Наверное вы видели в своей системе файл /etc/gshadow. Этот файл эквивалентен /etc/shadow, только содержат пароли для групп. Вы не можете войти от имени группы, но зато, зная её пароль, можете получить доступ к предоставляемым ею функциям в отдельной командной оболочке с помощью команды newgrp.

Для установки пароля на группу используется утилита очень похожая на passwd - gpasswd. Естественно, нам нужны права суперпользователя. Например:

sudo gpasswd disk

passwd1

Теперь попробуем получить полномочия группы:

passwd2

После ввода пароля мы временно оказываемся в этой группе и можем работать с теми файлами, к которым разрешен доступ этой группе. Чтобы удалить пароль Linux из группы, используется опция -r:

sudo gpasswd -r disk

Как заставить пользователя поменять пароль

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

Всё это позволяет сделать утилита passwd. Сначала давайте рассмотрим, как посмотреть информацию о пароле в passwd. Для этого используется опция -S:

passwd3

  • Первое поле - имя пользователя
  • Второе поле показывает одно из значений: P - пароль установлен, L - пользователь заблокирован, NP - пароля нет.
  • 07/21/2016 - дата последнего изменения пароля.
  • 0 - минимальное время до смены пароля
  • 99999 - максимальное время действия пароля
  • 7 - за сколько дней нужно предупреждать об истечении срока действия пароля
  • -1 - через сколько дней пароль нужно деактивировать.

Например, через тридцать дней после смены, пароль пользователя станет устаревшим:

sudo passwd -x 30 test

passwd4

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

sudo passwd -w 3 test

Если он этого не сделает в течении пяти дней, аккаунт нужно отключить:

sudo passwd -i 3 test

Пароль можно менять не чаще, чем раз в 10 дней:

sudo passwd -n 10 test

Смотрим теперь, что у нас получилось:

sudo passwd -S test

passwd5

Как поменять пароль root

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

sudo passwd root

passwd6

Всё работает. Таким же способом можно задать пароль root в Ubuntu.

Как вручную поменять пароль

Операционная система Linux не была бы Linux, если бы мы не имели возможность настроить пароль вручную безо всяких утилит. Как я уже говорил, пароли хранятся в файле /etc/shadow. И хранятся они там в зашифрованном виде. Расшифровать пароль невозможно.

Когда система сохраняет пароль, она выполняет шифрование по определённому алгоритму и сохраняет уже зашифрованный результат, а когда пользователю нужно войти в систему, она просто берёт его пароль, опять же шифрует и сверяет с тем, что хранится в /etc/shadow. Если совпадает - пользователь авторизован.

Даже таким способом сменить пароль пользователя Linux не так уж сложно. Итак, сначала нам нужно получить зашифрованный пароль. Это можно сделать несколькими способами, например с помощью openssl:

openssl passwd -1 -salt xyz yourpass

Замените xyz на любую случайную комбинацию символов, чем больше, тем лучше; yourpass - это ваш новый пароль.

Скопируйте полученный результат в буфер обмена, затем откройте файл /etc/shadow и найдите там нужного пользователя. Я хочу сменить пароль Linux для test:

sudo vi /etc/shadow

passwd8

Синтаксис этого файла такой:

имя_пользователя: пароль: .

Следующее поле указывает на последнее изменение пароля в виде количества дней, прошедших с первого января 1970. Остальные поля нас не интересуют, да и вы с ними очень просто разберётесь, просто сопоставив данные.

Теперь замените пароль на полученный выше и сохраненный в буфер обмена. Сохраните файл и можете пробовать войти под новым паролем:

passwd7

Всё работает. Как я уже говорил, есть ещё несколько алгоритмов шифрования, с помощью которых вы можете получить пароль, вот они:

makepasswd --clearfrom=- --crypt-md5 <<< YourPass
mkpasswd -m sha-512 -S salt -s <<< YourPass
perl -e 'print crypt("YourPass", "salt"),"\n"'
openssl passwd -crypt -salt XRYourPass

Во всех этих примерах salt - это случайная строка для увеличения надёжности шифрования, а YourPass - ваш пароль. Что делать с полученным данными вы уже знаете.

Выводы

Из этой статьи вы узнали, как сменить пароль Linux. Я рассмотрел все возможные способы и даже не очень стандартные. Если у вас остались вопросы, пишите комментарии!

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

Создание

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

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

* в данном примере создается учетная запись 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 Разрешает создание учетной записи с повторяющимся UID
useradd dmosk -u 15 -o
-p Задает пароль
useradd dmosk -p pass
-r Системная учетная запись (без домашнего каталога и с идентификаторами в диапазоне SYS_UID_MIN - SYS_UID_MAX из файла /etc/login.defs)
useradd dmosk -r
-R Каталог, в который выполняется chroot
useradd dmosk -R /var/chroot/home
-s Путь до оболочки командной строки
useradd dmosk -s /bin/csh
-u Задает UID
useradd dmosk -u 666
-U Имя группы будет таким же, как у пользователя
useradd dmosk -U

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

Редактирование

usermod <имя пользователя> [опции]

usermod dmosk -G wheel

* эта команда добавит пользователя dmosk в группу wheel

Удаление

userdel <имя пользователя> [опции]

Блокировка

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

usermod -L <имя пользователя>

usermod -L dmosk

Чтобы разблокировать пользователя, вводим:

usermod -U <имя пользователя>

Работа с группами

1. Добавление группы:

groupadd <группа> [опции]

groupmod <группа> [опции]

3. Удаление группы:

groupdel <группа> [опции]

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

Выполняется через команду usermod:

usermod -a -G <группы через запятую> <пользователь>

5. Удаление из группы:

Выполняется с помощью gpasswd:

gpasswd --delete <пользователь> <группы через запятую>

Список пользователей

Посмотреть список пользователей можно в файле /etc/passwd:

Мы увидим что-то на подобие:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
.

Как правило, большая часть данных пользователей является системными — их UID меньше 1000 и больше 60000.

Более функциональная команда для отображения содержимого файла passwd — getent:

Можно найти пользователя по идентификатору:

getent passwd 1000

Получить список не системных пользователей:

Получить только список логинов не системных учетных записей:

Примеры работы с учетными записями

useradd

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

useradd dmosk -G wheel -m

Создать пользователя с определенными UID и GID (соответственно идентификаторы пользователя и группы):

useradd dmosk -u 900 -g 950

* группа с используемым идентификатором (в данном примере 950) уже должна быть создана заранее с использованием команды groupadd.

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

useradd dmosk -d /home/newdmosk

Создать учетную запись без возможности входа в систему:

useradd dmosk -s /sbin/nologin

usermod

Потребовать сменить пароль при следующем входе в систему:

chage -d 0 dmosk

Поменять пользователю основную группу:

usermod dmosk -g kdonewgroup

Задать пользователю дополнительную группу с правами root:

usermod dmosk -G sudo

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

usermod -a -G group dmosk

* в данном примере мы добавим пользователя dmosk в группу group.

Сменить домашнюю директорию:

usermod -d /var/www/dmosk dmosk

* данной командой мы меняем для пользователя dmosk домашнюю директорию на /var/www/dmosk.

Как создать пользователей в Linux (команда useradd)

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

Useradd команда

Общий синтаксис useradd команды выглядит следующим образом:

Только root или пользователи с привилегиями sudo могут использовать useradd команду для создания новых учетных записей пользователей.

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

Переменные, определенные в этом файле, отличаются от распределения к распределению, что приводит к тому, что useradd команда выдает разные результаты в разных системах.

useradd также читает содержимое /etc/login.defs файла. Этот файл содержит конфигурацию для набора теневых паролей, такую ​​как политика истечения срока действия пароля, диапазоны идентификаторов пользователей, используемых при создании системных и обычных пользователей, и многое другое.

Как создать нового пользователя в Linux

Чтобы создать новую учетную запись пользователя, вызовите useradd команду с именем пользователя.

Например, чтобы создать нового пользователя с именем, username вы должны выполнить:

При выполнении без какой-либо опции useradd создает новую учетную запись пользователя с использованием настроек по умолчанию, указанных в /etc/default/useradd файле.

Команда добавляет запись к /etc/passwd , и файлы. /etc/shadow, /etc/group /etc/gshadow

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

Вам будет предложено ввести и подтвердить пароль. Убедитесь, что вы используете надежный пароль.


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

В большинстве дистрибутивов Linux при создании новой учетной записи useradd пользователя домашний каталог пользователя не создается.

Используйте опцию -m ( --create-home ), чтобы создать домашний каталог пользователя как /home/username :

Приведенная выше команда создает домашний каталог нового пользователя и копирует файлы из /etc/skel каталога в домашний каталог пользователя. Если вы перечислите файлы в /home/username каталоге, вы увидите файлы инициализации:

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


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

По умолчанию useradd создает домашний каталог пользователя в /home . Если вы хотите создать домашний каталог пользователя в другом месте, используйте опцию d ( --home ).

Вот пример, показывающий, как создать нового пользователя с именем username в домашнем каталоге /opt/username :


Создание пользователя с определенным идентификатором пользователя

В Linux и Unix-подобных операционных системах пользователи идентифицируются по уникальному UID и имени пользователя.

Идентификатор пользователя (UID) - это уникальное положительное целое число, присваиваемое системой Linux каждому пользователю. UID и другие политики контроля доступа используются для определения типов действий, которые пользователь может выполнять над системными ресурсами.

По умолчанию при создании нового пользователя система назначает следующий доступный UID из диапазона идентификаторов пользователей, указанных в login.defs файле.

Вызвать useradd с опцией -u ( --uid ), чтобы создать пользователя с определенным UID. Например, чтобы создать нового пользователя username с UID 1500 , введите:

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

Создание пользователя с определенным идентификатором группы

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

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

Опция -g ( --gid ) позволяет вам создать пользователя с определенной начальной группой входа. Вы можете указать либо имя группы, либо номер GID. Имя группы или GID уже должно существовать.

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

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

Создание пользователя и назначение нескольких групп

В операционных системах Linux существует два типа групп: основная группа и дополнительная (или дополнительная) группа. Каждый пользователь может принадлежать ровно к одной первичной группе и к нулю или нескольким вторичным группам.

Вы должны указать список дополнительных групп, членом которых будет пользователь, с помощью опции -G ( --groups ).

Следующая команда создает нового пользователя с именем username основной группы users и дополнительных групп wheel и docker .

Вы можете проверить группы пользователей, набрав

Создание пользователя с определенной оболочкой входа

По умолчанию оболочка для входа нового пользователя настроена на ту, которая указана в /etc/default/useradd файле. В некоторых дистрибутивах по умолчанию установлена ​​оболочка, /bin/sh а в других - /bin/bash .

Опция -s ( --shell ) позволяет указать оболочку для входа нового пользователя.

Например, чтобы создать нового пользователя username с /usr/bin/zsh именем типа оболочки входа в систему:

Проверьте запись пользователя в /etc/passwd файле, чтобы проверить оболочку входа пользователя:

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

Опция -c ( --comment ) позволяет добавить краткое описание для нового пользователя. Обычно полное имя пользователя или контактная информация добавляются в качестве комментария.

В следующем примере мы создаем нового пользователя username с текстовой строкой Test User Account в качестве комментария:

Комментарий сохраняется в /etc/passwd файле:

Поле комментариев также известно как GECOS .


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

Чтобы определить время истечения срока действия новых учетных записей, используйте параметр -e ( --expiredate ). Это полезно для создания временных учетных записей.

Дата должна быть указана в YYYY-MM-DD формате.

Например, чтобы создать новую учетную запись с именем username expirey, установленным на 22 января 2019 года, вы должны выполнить:

Используйте chage команду для проверки срока действия учетной записи пользователя:

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


Создание пользователя системы

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

Используйте опцию -r ( --system ), чтобы создать системную учетную запись пользователя. Например, чтобы создать нового системного пользователя с именем, username вы должны выполнить:

Пользователи системы создаются без срока действия. Их UID выбираются из диапазона системных идентификаторов пользователей, указанных в login.defs файле, который отличается от диапазона, используемого для обычных пользователей.


Изменение значений по умолчанию для useradd

По умолчанию useradd параметров можно просмотреть и изменить с помощью -D , --defaults опции, или вручную редактировать значения в /etc/default/useradd файле.

Чтобы просмотреть текущие параметры по умолчанию, введите:

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

Допустим, вы хотите изменить оболочку входа по умолчанию с /bin/sh на /bin/bash . Для этого укажите новую оболочку, как показано ниже:

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


Вывод

Мы показали вам, как создавать новые учетные записи пользователей с помощью useradd команды. Те же инструкции применимы для любого дистрибутива Linux, включая Ubuntu, CentOS, RHEL, Debian, Fedora и Arch Linux.

useradd это утилита низкого уровня, пользователи Debian и Ubuntu могут использовать вместо нее команду Friendlier Adduser .

Читайте также: