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

Обновлено: 04.07.2024

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

Основные правила управления доступом

Объекты (например, файлы и процессы) имеют владельцев. Владельцы обладают обширным (но необязательно неограниченным) контролем над своими объектами.

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

Владельцем файла всегда является один человек, тогда как в группу владельцев могут входить несколько пользователей. По традиции информация о группах хранилась в фай­ле /etc/group .

Основное

Пользователь - это любой кто пользуется компьютером.

Под каждого пользователя, создается свой каталог, пользователю назначается командная оболочка (командный интерпретатор, используемый в операционных системах семейства UNIX). Например: /bin/bash, /bin/zsh, /bin/sh и другие.

Каждому пользователю назначается идентификационный номер (User ID). Сокращенно номер обозначается как UID, является уникальным идентификатором пользователя. Операционная система отслеживает пользователя именно по UID, а не по их имени.

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

Каждый пользователь принадлежит минимум к одной или нескольким группам.

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

Каждой группе назначается идентификационный номер (group ID). Сокращённо GID, является уникальный идентификатором группы. Принадлежность пользователя к группе устанавливается администратором.

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

Просмотр

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

Каждый аккаунт занимает одну строку, в формате account:password:UID:GID:GECOS:directory:shell

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

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

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

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

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

sudo useradd vasyapupkin

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

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

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

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

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

sudo usermod -c "Эта команда поменяет комментарий пользователю" vasyapupkin

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

sudo passwd vasyapupkin

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

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

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

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

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

sudo passwd -d vasyapupkin или sudo usermod -p "" vasyapupkin

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

sudo passwd -e vasyapupkin

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

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

sudo userdel vasyapupkin

  • -f Принудительно удалить пользователя, даже если он сейчас работает в системе.
  • -r Удалить домашний каталог пользователя.

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

Создание группы

Программа groupadd создаёт новую группу согласно указанным значениям командной строки и системным значениям по умолчанию.

sudo groupadd testgroup

  • -g Установить собственный GID.
  • -p Пароль группы.
  • -r Создать системную группу.

Изменение группы

Сменить название группы, ее GID или пароль можно при помощи groupmod.

  • -g Установить другой GID.
  • -n Новое имя группы.
  • -p Изменить пароль группы.

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

Утилита groupdel не имеет никаких дополнительных параметров.

sudo groupdel testgroup

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

Для управления пользователями группы используется утилита gpasswd. Чтобы занести пользователя в группу:

gpasswd -a [user] [group]

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

gpasswd -d [user] [group]

Файлы конфигурации

/etc/passwd

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

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

  1. vasyapupkin Имя пользователя для входа в систему.
  2. x Необязательный зашифрованный пароль.
  3. 1000 Числовой идентификатор пользователя (UID).
  4. 1000 Числовой идентификатор группы (GID).
  5. Vasya Pupkin Поле комментария
  6. /home/vpupkin Домашний каталог пользователя.
  7. /bin/bash Оболочка пользователя.

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

/etc/group

В /etc/group, как очевидно из названия хранится информация о группах. Она записана в аналогичном /etc/passwd виде:

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

  1. vasyapupkin Название группы
  2. x Необязательный зашифрованный пароль.
  3. 1000 Числовой идентификатор группы (GID).
  4. vasyapupkin,petya Список пользователей, находящихся в группе.

В этом файле второе и четвертое поля могут быть пустыми.

/etc/shadow

Файл /etc/shadow хранит в себе пароли, по этому права, установленные на этот файл, не дают считать его простому пользователю. Пример одной из записей из этого файла:

  1. vasyapupkin Имя пользователя для входа в систему.
  2. xxx Необязательный зашифрованный пароль.
  3. 15803 Дата последней смены пароля.
  4. 0 Минимальный срок действия пароля.
  5. 99999 Максимальный срок действия пароля.
  6. 7 Период предупреждения о пароле.
  7. [пусто] Период неактивности пароля.
  8. [пусто] Дата истечения срока действия учётной записи.

Sudo и su

Зная чей-либо пароль, можно непосредственно зарегистрироваться в системе под его именем, введя команду su имя_пользователя .

Программа su служит для выполнения от имени указанного пользователя (по умолчанию — root) указанной команды/программы (по умолчанию — той программы, что определена в качестве оболочки (shell) для указанного пользователя) и запрашивает она пароль указанного пользователя.

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

  • Нет «программы по умолчанию». для запуска оболочки, определённой для указанного пользователя, надо передать программе опцию -i.
  • По умолчанию запрашивается не пароль указанного пользователя, а пароль пользователя, выполняющего программу sudo. какому пользователю, какие программы и от чьего имени можно запускать, определяется содержимым конфигурационного файла /etc/sudoers (редактируется с помощью программы visudo).

Управление доступом

У каждого объекта в Linux есть свой идентификатор, а так же права доступа, применяемые к данному идентификатору. Идентификатор есть у пользователя - UID, у группы - GID, у файла - inode.

Собственно inode является, как идентификатором файла/каталога, так и сущностью, которая содержит в себе информацию о файле/каталоге. Например такую, как: принадлежность к владельцу/группе, тип файла и права доступа к файлу.

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

  • Полномочия чтения (r от read).
  • Записи (w от write).
  • Выполнения (x от execution).

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

Собрав вышесказанное в кучу, то есть представив 3 правила (rwx) для трех групп (владелец, группа, остальные) запись прав доступа будет выглядеть вот так: rwx rwx rwx . Пример прав директории:

Кроме указанного представления полномочий доступа (символьного), существует так же и числовое представление. Для общего понимания, приведу таблицу соответствия числового (двоичного и десятичного) значения прав доступа и буквенного:

владелец группа остальные
буквенное rwx r-x r–
двоичное 111 101 100
двоичное в десятичных 421 401 400
десятичное 7 5 4

Управление правами доступа

Управление правами доступа происходит с помощью команды chmod, управление владельцем файла происходит с помощью команды chown. Синтаксис команд следующий:

chmod [к_какой_группе_прав][что_сделать_с_правами][какие_права] <над_каким_объектом>

chmod [права] <над_чем>

  • [к_какой_группе_прав] может быть:
    • u (от user) - владелец-пользователь.
    • g (от group) - владелец-группа.
    • o (от other) - остальные пользователи.
    • a (от all) - все вышеперечисленные группы вместе.
    • + - добавить.
    • - - убрать.
    • = - присвоить указанное.
    • r - чтение.
    • w - запись.
    • x - выполнение.

    Использование команды chown выглядит следующим образом: chown user:group file (-R рекурсивно)

    Права доступа к символьным ссылкам

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

    Специальные атрибуты

    • Sticky bit - бит закрепления в памяти.

    Сегодня sticky bit используется в основном для каталогов, чтобы защитить в них файлы. В такой каталог может писать ЛЮБОЙ пользователь. Из такой директории пользователь может удалить только те файлы, владельцем которых он является. Примером может служить директория /tmp , в которой запись открыта для всех пользователей, но нежелательно удаление чужих файлов.

    Атрибут исполняемого файла, позволяющий запустить его с правами владельца. В Unix-подобных системах приложение запускается с правами пользователя, запустившего указанное приложение. Это обеспечивает дополнительную безопасность так как процесс с правами пользователя не сможет получить доступ на запись к важным системным файлам, например /etc/passwd, который принадлежит суперпользователю root. Если на исполняемый файл установлен бит suid, то при выполнении эта программа автоматически меняет “эффективный userID” на идентификатор того юзера, который является владельцем этого файла. То есть, не зависимо от того - кто запускает эту программу, она при выполнении имеет права хозяина этого файла.

    • SGID - он же Set Group ID. Аналогичен SUID, но относится к группе. При этом, если для каталога установлен бит SGID, то создаваемые в нем объекты будут получать группу владельца каталога, а не пользователя.

    Хотелось бы так же провести аналогию с ОС Windows. В указанной операционной системе права регулируются на основе списков ACL. В Linux тоже такое возможно, это реализуется с помощью пакета acl, но данный вопрос в текущей теме я рассматривать не буду. Еще одно важное замечание! В Windows можно определить права доступа на каталог, и они автоматически распространяются на все файлы и поддиректории (если вы явно не указали иного). В Linux права доступа сохраняются в inode файла, и поскольку inode у каждого файла свой собственный, права доступа у каждого файла свои. Так же, права доступа пользователя и группы не суммируются, как в Windows. Если программа выполняется с правами пользователя и группы, которым принадлежит файл — работают только права хозяина файла.

    Исполняемый файл с установленным атрибутом suid является “потенциально опасным”. Без установленного атрибута, файл не позволит обычному пользователю сделать то, что выходит за пределы прав пользователя (пример, программа passwd позволяет пользователю изменить только собственный пароль). Но, даже незначительная ошибка в такой программе может привести к тому, что злоумышленник сможет заставить её выполнить ещё какие-нибудь действия, не предусмотренные автором программы. Стоит очень осторожно относиться к данным атрибутам! Как найти в системе файлы с атрибутом SIUD и др.

    При создании новой директории в директории с уже установленным SGID-битом, у созданной директории SGID-бит устанавливается автоматически!

    Обозначение атрибутов Sticky, SUID, SGID

    Специальные права используются довольно редко, поэтому при выводе программы ls -l символ, обозначающий указанные атрибуты, закрывает символ стандартных прав доступа. Пример: rwsrwsrwt, где s - SUID, s - SGID, t - Sticky. В приведенном примере не понятно, rwt — это rw- или rwx? Определить, стоит ли символ стандартных прав доступа под символами s и t - просто. Если t маленькое, значит x установлен. Если T большое, значит x не установлен. То же самое правило распространяется и на s.

    В числовом эквиваленте данные атрибуты определяются первым символом при четырехзначном обозначении (который часто опускается при назначении прав), например в правах 1777 - символ 1 обозначает sticky bit. Остальные атрибуты имеют следующие числовое соответствие:

    • 1 - sticky bit
    • 2 - SGID
    • 4 - SUID

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

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

    • 0666 - для файлов.
    • 0777 - для каталогов.

    Есть такая штука как umask, которая задана для каждого пользователя и хранится в виде строчки umask <значение_umask> в файле .bash_profile. Итого, у вновь создаваемого каталога будут права равные исходным правам доступа - umask.

    Узнать текущий umask можно, введя команду umask без параметров. Пример:

    Как видно из примера, umask установлен 0022, исходные права доступа равны 0666 - для файлов и 0777 - для каталогов. В результате получаем:

    Favorite

    Добавить в избранное

    Главное меню » Операционная система Linux » Все, что вам нужно знать о UID в Linux

    (3 оценок, среднее: 5,00 из 5)

    Все, что вам нужно знать о UID в Linux

    Э та статья по основам Linux научит вас всему важному, связанному с UID в Linux.

    Что такое UID в Linux?

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

    Вы можете найти UID в файле /etc/passwd. Это тот же файл, который можно использовать для составления списка всех пользователей в системе Linux.

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

    Третье поле здесь представляет идентификатор пользователя или UID.

    Обратите внимание, что в большинстве дистрибутивов Linux UID 1-500 обычно зарезервирован для системных пользователей. В Ubuntu и Fedora UID для новых пользователей начинаются с 1000.

    Например, если вы используете команду useradd или adduser для создания нового пользователя, он получит следующий доступный номер после 1000 в качестве своего UID.

    Как найти UID пользователя в Linux?

    Вы всегда можете положиться на файл /etc/passwd, чтобы получить UID пользователя. Это не единственный способ получить информацию UID в Linux.

    Команда id в Linux отобразит UID, GID и группы, к которым принадлежит ваш текущий пользователь:

    Вы также можете указать имена пользователей с помощью команды id, чтобы получить UID любого пользователя Linux:

    Как изменить UID пользователя в Linux?

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

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

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

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

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

    Что вы можете сделать, это вручную обновить владельца файлов, связанных со старым UID пользователя_2.

    Вот и все. Мы надеемся, что теперь у вас есть лучшее представление об UID в Linux. Не стесняйтесь задавать свои вопросы, если таковые имеются.

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

    Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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

    Команда usermod

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

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

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

    Чтобы добавить существующего пользователя во вторичную группу, используйте параметры -a -G после имени группы и имени пользователя:

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

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

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

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

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

    Чтобы изменить основную группу пользователя, вызовите команду usermod с параметром -g следующим за именем группы и именем пользователя:

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

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

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

    Чтобы изменить информацию GECOS (полное имя пользователя), запустите команду с параметром -c за которым следует новый комментарий и имя пользователя:

    Вот пример, показывающий, как добавить дополнительную информацию пользователю linuxize:

    Эта информация хранится в /etc/passwd .

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

    В большинстве систем Linux домашние каталоги пользователей названы по имени пользователя и создаются в каталоге /home .

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

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

    Вот пример, показывающий, как изменить домашний каталог пользовательских www-data на /var/www :

    Изменение пользовательской оболочки по умолчанию

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

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

    Вы можете узнать, какие оболочки доступны в вашей системе, просмотрев содержимое файла /etc/shells .

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

    Чтобы изменить UID пользователя, вызовите команду с параметром -u следующим за новым UID и именем пользователя:

    В приведенном ниже примере показано, как изменить номер «UID» на «1050»:

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

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

    Хотя не очень часто, иногда вам может потребоваться изменить имя существующего пользователя. Параметр -l используется для изменения имени пользователя:

    В приведенном ниже примере мы переименовываем пользователя linuxize в lisa в «1050»:

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

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

    Срок годности должен быть установлен в формате YYYY-MM-DD .

    Например, чтобы отключить пользователя linuxize 21 2022-02-21 , вы должны выполнить следующую команду:

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

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

    Дата истечения срока хранения хранится в /etc/shadow .

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

    Параметр -L позволяет заблокировать учетную запись пользователя:

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

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

    Чтобы разблокировать пользователя, запустите usermod с параметром -U :

    Выводы

    Мы показали вам, как использовать команду usermod для установки информации об учетной записи пользователя.

    В данной инструкции рассказывается о работе с пользователями 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.

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