Почему uid пользователя задается больше 1000
Перейти к содержимому

Почему uid пользователя задается больше 1000

  • автор:

Почему uid пользователя задается больше 1000

Даже если на компьютере работает только один человек, необходимо понимать аспекты управления пользователями в системе Linux . Важно создать по крайней мере одно имя пользователя (помимо пользователя root ) для повседневной работы.

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

Пользователи с точки зрения Linux

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

Имя пользователя (user name)

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

Идентификационный номер пользователя (User ID)

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

Идентификационный номер группы (group ID)

Этот номер (сокращённо GID ) обозначает группу, к которой по умолчанию относится пользователь. Группы позволяют регулировать доступ многих пользователей к различным ресурсам. Каждый пользователь принадлежит одной или нескольким группам, и эту принадлежность устанавливает системный администратор.

Это зашифрованный (encripted) пароль пользователя. Для создания и изменения пароля используется команда passwd .

Полное имя (full name)

Помимо системного имени пользователя, в систему заносится и хранится имя (фамилия и т. д.) « реального » пользователя. Например, пользователю schmoj в реальной жизни может соответствовать человек по имени Joe Schmo.

Домашний каталог (home directory)

Это название каталога, в который попадает пользователь после того, как он вошёл в систему (зарегистрировался, login), и где хранятся его собственные файлы. Такой каталог имеется у каждого пользователя, и все такие каталоги собраны в один каталог, обычно называемый /home .

Начальная оболочка (login shell)

Командная оболочка, которая запускается при входе в систему. Например, /bin/bash или /bin/zsh .

Вся эта информация хранится в файле /etc/passwd . Каждая строка в файле имеет формат:

имя пользователя:зашифрованный пароль:UID:GID:полное имя:домашний каталог:оболочка
kiwi:Xv8Q981g71oKK:102:100:Laura Poole:/home/kiwi:/bin/bash

В этом примере на первом месте стоит имя пользователя, т. е. kiwi . В следующем поле помещается пароль в зашифрованном виде: Xv8Q981g71oKK . Пароли в системе хранятся не в « читаемом » формате, а в зашифрованном с собственным именем, использованным в качестве ключа. Иными словами, для того, чтобы расшифровать пароль, его нужно знать. Эта форма шифрования является достаточно надёжной.

В некоторых системах имеются « теневые пароли » (shadow passwords), когда информация о пароле хранится в файле /etc/shadow . Такая схема является несколько более безопасной, поскольку файл /etc/passwd может читаться кем угодно, а права доступа к файлу /etc/shadow гораздо сильнее ограничены. Теневые пароли также обеспечивают иные функции, например, истечение срока действия пароля.

Третье поле — 102 — UID. Это число должно быть уникальным. Четвёртое поле — 100 — GID, т. е. пользователь принадлежит к группе с номером 100. Информация о группах хранится в файле /etc/group .

Пятое поле — реальное имя пользователя, в данном случае — Laura Poole . Последние два поля — домашний каталог пользователя ( /home/kiwi ) и начальная оболочка ( /bin/bash ). Не требуется, чтобы имена пользователя и домашнего каталога совпадали, однако такая организация помогает устанавливать принадлежность каталога.

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

При создании новых пользователей надо совершить последовательность из нескольких действий. Во-первых, на пользователя заводится запись в файле /etc/passwd , где пользователю даются уникальные имя и UID. UID обычных пользователей должны быть больше 100, поскольку низкие UID зарезервированы для системных целей. Также указываются GID, реальное имя и другая информация. Дальше создаётся домашний каталог пользователя, и права доступа устанавливаются так, что этим каталогом владеет данный пользователь. В каталог помещаются файлы инициализации командной оболочки. Также во всей системе модифицируются конфигурационные файлы (например, хранилище (spool) для приходящей пользователям электронной почты).

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

В файле /etc/default/useradd содержится информация о стандартной начальной конфигурации для всех новых пользователей. В этом файле задаются значения переменным, которые использует программа useradd . Кроме того, этот файл указывает, где находятся конфигурационные файлы содержащие настройки по умолчанию. Расположение этих файлов задаётся переменной SKEL . Файлы, которые помещаются в этот каталог (такие, как файл .profile , устанавливающий режим по умолчанию во всей системе, а также файлы .zshrc или .bashrc ), будут автоматически скопированы в домашний каталог создаваемого пользователя командой useradd .

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

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

Если требуется временно запретить пользователю вход в систему, но не удалять его домашний каталог и прочие сделанные установки, можно просто поставить звёздочку (символ * ) в то поле файла /etc/passwd , где находится пароль. Например, таким образом изменённая строка для пользователя kiwi будет выглядеть как

kiwi:*Xv8Q981g71oKK:102:100:Laura Poole:/home/kiwi:/bin/bash

При этом вход в систему пользователя kiwi станет невозможным.

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

После того, как создано имя нового пользователя, может оказаться нужным изменить атрибуты этого пользователя, например, домашний каталог или пароль. Самый простой способ сделать это — просто поменять информацию в файле /etc/passwd . Для создания пароля нужно использовать команду passwd . Так, команда

passwd larry

изменит пароль пользователя larry . Изменять пароли любых пользователей может только пользователь root , однако свои пароли пользователи могут изменять сами, отдавая команду passwd без параметров.

Группы пользователей

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

Имеется несколько групп, определённых системой, например, bin , mail , sys . Эти группы созданы для оформления прав доступа к системным файлам, и пользователи не должны принадлежать к этим группам. Для пользователей создаются специальные группы, например, users . Для пользователей можно создать несколько групп, например, student , staff , faculty .

Информация о группах содержится в файле /etc/group . Формат каждой строки таков:

имя группы:пароль:GID:другие члены группы
root:*:0: users:*:100:mdw,larry guest:*:200: other:*:250:kiwi

Первая группа — root — специальная группа для пользователя root . Вторая группа — users — содержит обычных пользователей. GID этой группы равен 100, и в неё входят пользователи mdw и larry. Напомним, что в файле /etc/passwd каждому пользователю определена его группа по умолчанию. Тем не менее, пользователи могут принадлежать к более чем одной группе, и это осуществляется посредством перечисления их имён в файле /etc/group . Команда groups перечисляет список групп, к которым относится (имеет доступ) данный пользователь.

Третья группа называется guest и предназначена для посетителей. Для прочих пользователей создана группа other ; в эту группу занесён пользователь kiwi .

Иногда в файле /etc/group заполняется поле password (пароль) для того, чтобы установить пароль на групповой доступ. Это требуется редко. Для того, чтобы не позволять пользователям проникать в привилегированные группы (командой newgroup), в это поле надо поставить символ * .

Для создания новых групп пользователей могут быть использованы команды addgroup или groupadd . Обычно легче внести вручную новую строчку в файл /etc/group , поскольку никакого другого конфигурирования не требуется. Для удаления группы можно просто удалить соответствующую строчку в файле /etc/group .

Работа с пользователями в Linux

Обновлено

Обновлено: 25.07.2023 Опубликовано: 05.12.2016

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

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

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

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

2. Проверить существование пользователя и увидеть его идентификатор можно с помощью команды id:

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

uid=1001(username) gid=1001(username) groups=1001(username),27(sudo)

* учетная запись username существует, она находится в основной группе username и дополнительной sudo. Ее идентификатор 1001.

3. Также мы можем получить строку о пользователе из файла /etc/passwd:

getent passwd username

Мы увидим что-то такое:

* наш пользовател username имеют идентификатор пользователя и группы 1001, его домашняя директория /home/username, командная оболочка /bin/sh.

Создание

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

* в данном примере создается учетная запись 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 dmosk -G wheel

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

Удаление

Блокировка

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

usermod -L dmosk

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

2. В некоторых системах Linux может использоваться pam-модуль tally. Он осуществляет подсчет количества неудачных попыток входа в систему. Также он может блокировать доступ при превышении данного количества.

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

Для сброса счетчика (и блокировки, если она есть) вводим:

pam_tally2 —user=admin —reset

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

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

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

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

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

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

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

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

Посмотреть список пользователей можно в файле /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

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

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

Работа с паролями

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

1. Смена пароля для текущего пользователя:

2. Смена пароля для конкретного пользователя:

* в данном случае замена будет выполняться для пользователя dmosk.

Пароли пользователей хранятся в файле /etc/shadow в виде хэша. Чтобы самим сгенерировать данный хэш (может понадобиться для ручного создания записи или с помощью cloud-init), выполняем команду:

mkpasswd -m sha-512

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

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

useradd

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

useradd dmosk -G printer -m

2. Создать учетную запись с возможностью получения привилений суперпользователя (командой sudo su):

useradd dmosk -G wheel -m

useradd dmosk -G sudo -m

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

useradd dmosk -u 900 -g 950

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

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

useradd dmosk -d /home/newdmosk

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

useradd dmosk -s /sbin/nologin

usermod

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

chage -d 0 dmosk

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

usermod dmosk -g kdonewgroup

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

usermod dmosk -G sudo

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

usermod -a -G group dmosk

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

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

usermod -d /var/www/dmosk dmosk

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

chage

1. Автоматическая блокировка учетной записи:

chage -E 2023-05-01 dmosk

* данной командой мы указали, что учетная запись dmosk перестанет действовать после 1 мая 2023 года.

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

Сделать учетную запись бессрочной:

chage -E -1 dmosk

Возможные ошибки

sudo must be owned by uid 0 and have the setuid bit set

При попытке получить привилении командой:

. система возвращает ошибку:

sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set

Причина: эта ошибка возникает, когда утилита sudo не имеет правильных прав доступа на вашей системе. В частности, она происходит, когда владелец файла /usr/bin/sudo не является пользователем root или когда установлен неправильный бит setuid на файле.

Решение: убедитесь, что вы вошли в систему с учетной записью, имеющей права администратора. Это можно сделать, войдя напрямую под пользователем root.

Выполняем команду, чтобы проверить права файла sudo:

ls -l /usr/bin/sudo

Если владелец не является пользователем root, выполните следующую команду, чтобы изменить владельца файла:

chown root:root /usr/bin/sudo

Убедитесь, что установлен правильный бит setuid на файле sudo, выполнив следующую команду:

chmod u+s /usr/bin/sudo

Права, пользователи и прочее в Linux (часть 2)

Права, пользователи и прочее в Linux (часть 2)

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

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

Что такое пользователи?

По факту это любой кто использует компьютер. Имя пользователя это как правило его псевдоним, логин, который может состоять из букв Eng алфавита, арабских чисел и нижнего подчеркивания. Использовать можно любое имя кроме root, hal и adm, так как эти имена являются зарезервированными системой именами. Кроме логина в системе может храниться и полное имя реального пользователя, что иногда, при администрировании бывает полезным.

Что имеет каждый пользователь в linux системе?

  1. домашняя папка — для каждого пользователя создается своя домашняя директория в директории /home. Там могут храниться все его личные данные;
  2. командная оболочка — каждый пользователь имеет свою командную оболочку (командный интерпретатор), например /bin/bash, bin/sh и другие. (по умолчанию, как правило, используется /bin/bash)
  3. личный идентификатор (User ID) — каждый пользователь нумеруется, чтобы система могла отслеживать его, ибо она это делает только по uid пользователя
  4. пароль — естественно, каждый пользователь имеет свой пароль, которых храниться в зашифрованном виде (encripted)
  5. группа — и каждый пользователь может находиться в одной или более группе, о них мы поговорим немного подробнее..

Что такое группы?

Чтобы администраторам было проще разделять полномочия между пользователями, в Linux системах существуют группы, поэтому для каждого файла в linux системе определяется не только пользователь но и группа. По факту группы нужны для того, чтобы предоставить одинаковые полномочия на файлы или какие-нибудь действия. И опять же, каждая группа имеет свой уникальный идентификатор — GID (GroupID)

Как узнать, какие пользователи есть в системе?

Информация о пользователях храниться в файле /etc/passwd в виде строк, одна строка — это один пользователь, и эта строка имеет следующий формат:

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

а расшифровывается она следующим образом:

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

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

cat /etc/passwd

Ну и никто не запрещает посмотреть активных в данный момент пользователей:

lolosh@lolopc:~$ who leo tty1 2015-07-29 20:07 leo :0 2015-07-26 22:38 (:0)

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

При создании пользователя, нужно выполнить ряд следующих действий:

  1. создается запись в /etc/passwd
  2. создается домашний каталог пользователя (/home/username)
  3. устанавливаются необходимые права
  4. назначается необходимая командная оболочка
  5. модифицируются конфигурационные файлы прочих приложений

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

Чтобы создать нового пользователя lolosh в группе users и lalki достаточно набрать следующую команду:

useradd -m -g users -G video,lalki -s /bin/bash lolosh

расшифровывается эта команда следующим образом:

useradd -m -g [основная группа] -G [список дополнительных групп] -s [командный интерпретатор] [имя пользователя]

Что означают эти ключи:

  • m — создаёт домашний каталог, вида /home/[имя пользователя]
  • -g — имя или номер основной группы пользователя
  • -G — список дополнительных групп, в которые входит пользователь
  • -s — определяет командную оболочку пользователя.

Подробнее узнать о том, что умеет эта утилита можно почитать в man страницах.

man useradd

useradd(8) Команды управления системой useradd(8) НАЗВАНИЕ useradd - регистрирует нового пользователя или изменяет информацию по умолчанию о новых пользователях СИНТАКСИС useradd [параметры] УЧЁТНАЯ_ЗАПИСЬ useradd -D useradd -D [параметры] ОПИСАНИЕ useradd is a low level utility for adding users. On Debian, administrators should usually use adduser(8) instead. При запуске без параметра -D команда useradd создаёт новую учётную запись пользователя, используя значения из командной строки и системные значения по умолчанию. В зависимости от параметров командной строки, команда useradd обновляет системные файлы, а также может создать домашний каталог нового пользователя и скопировать начальные файлы настроек. По умолчанию, для нового пользователя также создаётся группа (смотрите параметры -g, -N, -U и USERGROUPS_ENAB). ПАРАМЕТРЫ Параметры команды useradd: -b, --base-dir БАЗОВЫЙ_КАТАЛОГ Базовый системный каталог по умолчанию, если другой каталог не указан с помощью параметра -d. Значение БАЗОВЫЙ_КАТАЛОГ объединяется с именем учётной записи для определения домашнего каталога. Если не указан параметр -m, то БАЗОВЫЙ_КАТАЛОГ должен существовать. Если этот параметр не задан, то команда useradd будет использовать базовый каталог, указанный в переменной HOME в файле /etc/default/useradd иначе /home (по умолчанию). -c, --comment КОММЕНТАРИЙ Любая текстовая строка. Обычно, здесь коротко описывается учётная запись, и в настоящее время используется как поле для имени и фамилии пользователя. -d, --home ДОМАШНИЙ_КАТАЛОГ Для создаваемого пользователя будет использован каталог ДОМАШНИЙ_КАТАЛОГ в качестве начального каталога. По умолчанию, это значение получается объединением ИМЕНИ пользователя с БАЗОВЫМ_КАТАЛОГОМ и используется как имя домашнего каталога. Каталог ДОМАШНИЙ_КАТАЛОГ необязательно должен существовать, но не будет создан, если его нет. -D, --defaults Смотрите далее в подразделе «Изменение значений по умолчанию». -e, --expiredate ДАТА_УСТАРЕВАНИЯ Дата, когда учётная запись пользователя будет заблокирована. Дата задаётся в формате ГГГГ-ММ-ДД. Если этот параметр не задан, то команда useradd будет использовать дату устаревания по умолчанию, указанную в переменной EXPIRE в файле /etc/default/useradd, иначе пустую строку (без устаревания, по умолчанию). -f, --inactive ДНЕЙ Если указано значение 0, то учётная запись блокируется сразу после устаревания пароля, а при значении -1 данная возможность не используется. Если этот параметр не задан, то команда useradd будет использовать срок неактивности по умолчанию, указанный в переменной INACTIVE в файле /etc/default/useradd или -1 (по умолчанию). -g, --gid ГРУППА Имя или числовой идентификатор первичной группы пользователя. Группа с таким именем должна существовать. Идентификатор группы должен указывать на уже существующую группу. Если не указан, то поведение useradd зависит от переменной USERGROUPS_ENAB в файле /etc/login.defs. Если значение этой переменной равно yes (или в командной строке указан параметр -U/--user-group), то для пользователя будет создана группа с тем же именем как его имя для входа. Если значение переменной равно no (или в командной строке указан параметр -N/--no-user-group), то useradd установит первичную группу нового пользователя равной значению переменной GROUP из файла /etc/default/useradd, или 100 (по умолчанию). -G, --groups ГРУППА1[,ГРУППА2. [,ГРУППАN]]] Список дополнительных групп, в которых числится пользователь. Перечисление групп осуществляется через запятую, без промежуточных пробелов. На указанные группы действуют те же ограничения, что и для группы указанной в параметре -g. По умолчанию пользователь входит только в начальную группу. -h, --help Показать краткую справку и закончить работу. -k, --skel КАТАЛОГ_ШАБЛОНОВ Каталог с шаблонами, который содержит файлы и каталоги для копирования в домашний каталог пользователя при создании домашнего каталога командой useradd. Этот параметр можно использовать только с параметром -m (или --create-home). Если этот параметр не задан, то каталог шаблонов определяется переменной SKEL из файла /etc/default/useradd, или равен /etc/skel (по умолчанию). Если возможно, выполняется копирование ACL и расширенных атрибутов. -K, --key КЛЮЧ=ЗНАЧЕНИЕ Заменяет значения по умолчанию из файла /etc/login.defs (UID_MIN, UID_MAX, UMASK, PASS_MAX_DAYS и других). Пример: -K PASS_MAX_DAYS=-1 можно использовать при создании системной учётной записи, чтобы выключить устаревание пароля, даже если системная учётная запись вообще не имеет пароля. Можно указывать параметр -K несколько раз, например: -K UID_MIN=100 -K UID_MAX=499 -l, --no-log-init Не добавлять пользователя в базы данных lastlog и faillog. По умолчанию, записи пользователя в базах данных lastlog и faillog сбрасываются во избежание повторного использования записи, оставшейся от ранее удалённого пользователя. For the compatibility with previous Debian's useradd, the -O option is also supported. -m, --create-home Создать домашний каталог пользователя, если он не существует. Файлы и каталоги, содержащиеся в каталоге шаблонов (который можно указать с помощью параметра the -k option), будут скопированы в домашний каталог. По умолчанию, если этот параметр не указан и не задана переменная CREATE_HOME, домашний каталог не создаётся. -M Не создавать домашний каталог пользователя, даже если значение системной переменной в файле /etc/login.defs (CREATE_HOME) равно yes. -N, --no-user-group Не создавать группу с тем же именем как у пользователя, но добавить пользователя в группу, заданную параметром -g или переменной GROUP из файла /etc/default/useradd. Поведение по умолчанию (если не указан параметр -g, -N и -U) определяется переменной USERGROUPS_ENAB из файла /etc/login.defs. -o, --non-unique Разрешить создание учётной записи с уже имеющимся (не уникальным) UID. Этот параметр можно использовать только с параметром -u. -p, --password ПАРОЛЬ Шифрованное значение пароля, которое возвращает функция crypt(3). По умолчанию пароль отключён. Замечание: Этот параметр использовать не рекомендуется, так как пароль (или не шифрованный пароль) будет видим другими пользователям в списке процессов. Вы должны проверить, что пароль соответствует политике системных паролей. -r, --system Создать системную учётную запись. Системные пользователи создаются без информации об устаревании в /etc/shadow, и их числовые идентификаторы выбираются из диапазона SYS_UID_MIN-SYS_UID_MAX, определённого в /etc/login.defs, а не из UID_MIN-UID_MAX (это же касается и части с GID при создании групп). Заметим, что useradd не создаёт домашний каталог для данного пользователя независимо от значения по умолчанию в /etc/login.defs (CREATE_HOME). Если вы хотите создать домашний каталог для системной учётной записи укажите параметр -m. -R, --root КАТ_CHROOT Выполнить изменения в каталоге КАТ_CHROOT и использовать файлы настройки из каталога КАТ_CHROOT. -s, --shell ОБОЛОЧКА Имя регистрационной оболочки пользователя. По умолчанию это поле пусто, что вызывает выбор регистрационной оболочки по умолчанию согласно значению переменной SHELL из файла /etc/default/useradd, или по умолчанию используется пустая строка. -u, --uid UID Числовое значение идентификатора пользователя (ID). Оно должно быть уникальным, если не используется параметр -o. Значение должно быть неотрицательным. По умолчанию используется наименьшее значение ID большее или равное UID_MIN и большее чем у остальных пользователей. Смотрите также описание -r и UID_MAX. -U, --user-group Создать группу с тем же именем что и у пользователя, и добавить пользователя в эту группу. Поведение по умолчанию (если не указан параметр -g, -N и -U) определяется переменной USERGROUPS_ENAB из файла /etc/login.defs. -Z, --selinux-user SEUSER Пользователь SELinux для регистрационной оболочки пользователя. По умолчанию это поле пусто, что заставляет систему выбрать пользователя SELinux по умолчанию. Изменение значений по умолчанию При запуске программы только с параметром -D команда useradd показывает текущие значения по умолчанию. Если программа запускается с параметром -D вместе с другими параметрами, то useradd обновляет значения по умолчанию этих указанных параметров. Изменяемые параметры: -b, --base-dir БАЗОВЫЙ_КАТАЛОГ Начальная часть пути нового домашнего каталога пользователя. Имя пользователя будет добавлено в конец ДОМАШНЕГО_КАТАЛОГА для создания имени нового каталога, если при создании новой учётной записи не указан параметр -d. Этот параметр изменяет переменную HOME в файле /etc/default/useradd. -e, --expiredate ДАТА_УСТАРЕВАНИЯ Дата, когда учётная запись пользователя заблокирована. Этот параметр изменяет переменную EXPIRE в файле /etc/default/useradd. -f, --inactive ДНЕЙ Число дней, которые должны пройти после устаревания пароля, перед тем как учётная запись будет заблокирована. Этот параметр изменяет переменную INACTIVE в файле /etc/default/useradd. -g, --gid ГРУППА Имя группы или ID новой первичной группы пользователя (если используется -N/--no-user-group или когда значение переменной USERGROUPS_ENAB равно no (файл /etc/login.defs). Группа с указанным именем должна существовать, а для числового идентификатора группы должна быть соответствующая запись. Этот параметр изменяет переменную GROUP в файле /etc/default/useradd. -s, --shell ОБОЛОЧКА Имя новой регистрационной командной оболочки пользователя. Этот параметр изменяет переменную SHELL в файле /etc/default/useradd. ЗАМЕЧАНИЯ Системный администратор сам решает, какие файлы нужно положить в каталог /etc/skel/ (или в любой другой каталог шаблонов, указанный в /etc/default/useradd или в командной строке). ПРЕДОСТЕРЕЖЕНИЯ Нельзя добавить пользователя в группу NIS или LDAP. Это необходимо делать на соответствующем сервере. Также, если имя пользователя уже существует во внешней базе данных такой как NIS или LDAP, то useradd не станет создавать учётную запись пользователя. It is usually recommended to only use usernames that begin with a lower case letter or an underscore, followed by lower case letters, digits, underscores, or dashes. They can end with a dollar sign. In regular expression terms: [a-z_][a-z0-9_-]*[$]? On Debian, the only constraints are that usernames must neither start with a dash ('-') nor plus ('+') nor tilde ('~') nor contain a colon (':'), a comma (','), or a whitespace (space: ' ', end of line: '\n', tabulation: '\t', etc.). Note that using a slash ('/') may break the default algorithm for the definition of the user's home directory. Имена пользователей могут быть длиной не более 32 знаков. НАСТРОЙКА На работу этого инструмента влияют следующие переменные настройки из /etc/login.defs: CREATE_HOME (логический) Определяет, должен ли создаваться по умолчанию домашний каталог для новых пользователей. Эта переменная не влияет на системных пользователей и может быть переопределена из командной строки. GID_MAX (число), GID_MIN (число) Диапазон идентификаторов групп, используемый в программах useradd, groupadd или newusers для создания обычных групп. Значение по умолчанию для GID_MIN (соотв. GID_MAX) равно 1000 (соотв. 60000). MAIL_DIR (строка) Почтовый каталог. Данный параметр нужен для управления почтовым ящиком при изменении или удалении учётной записи пользователя. Если параметр не задан, то используется значение указанное при сборке. MAIL_FILE (строка) Определяет расположение почтовых файлов пользователя относительно домашнего каталога. Переменные MAIL_DIR и MAIL_FILE используются командами useradd, usermod и userdel для создания, перемещения или удаления почты пользователя. MAX_MEMBERS_PER_GROUP (число) Максимальное количество членов в записи о группе. При достижения максимума заводится новая запись группы (строка) в /etc/group (с тем же именем, паролем и тем же GID). Значение по умолчанию равно 0, означающее, что ограничения на количество членов в группе нет. Данная возможность (разделение группы) позволяет ограничить длину строк в файле групп. Это полезно для ограничения длины строк групп NIS в 1024 символа. Если вам нужно такое ограничение, укажите значение 25. Замечание: разделение групп поддерживается не всеми инструментами (даже в наборе инструментов Shadow). Вы не должны использовать эту переменную, если вам действительно это ненужно. PASS_MAX_DAYS (число) Максимальное число дней использования пароля. Если пароль старее этого числа, то будет запущена процедура смены пароля. Если значение не задано, то предполагается значение -1 (то есть возможность ограничения не используется). PASS_MIN_DAYS (число) Максимальное число дней между изменениями пароля. Любая смена пароля ранее заданного срока выполнена не будет. Если значение не задано, то предполагается значение -1 (то есть возможность ограничения не используется). PASS_WARN_AGE (число) Число дней за которое начнёт выдаваться предупреждение об устаревании пароля. Нулевое значение означает, что предупреждение выдаётся в день устаревания, при отрицательном значении предупреждение выдаваться не будет. Если значение не задано, выдача предупреждения отключается. SYS_GID_MAX (число), SYS_GID_MIN (число) Диапазон идентификаторов групп, используемый в программах useradd, groupadd или newusers для создания системных групп. Значение по умолчанию для SYS_GID_MIN (соотв.SYS_GID_MAX) равно 101 (соотв. GID_MIN-1). SYS_UID_MAX (число), SYS_UID_MIN (число) Диапазон идентификаторов пользователей, используемый в программах useradd или newusers для создания системных пользователей. Значение по умолчанию для SYS_UID_MIN (соотв. SYS_UID_MAX) равно 101 (соотв. UID_MIN-1). UID_MAX (число), UID_MIN (число) Диапазон идентификаторов пользователей, используемый в программах useradd или newusers для создания обычных пользователей. UMASK (число) Задаёт начальное значение маски доступа для создаваемых файлов. Если не указано, то маска устанавливается в 022. Команды useradd и newusers используют эту маску для установки прав доступа к домашнему каталогу, который они создают. Она также используется командой pam_umask как значение umask по умолчанию. USERGROUPS_ENAB (логический) Если значение равно yes, то userdel удаляет пользовательскую группу, если в ней нет больше членов, а useradd по умолчанию создаёт группу с именем пользователя. ФАЙЛЫ /etc/passwd содержит информацию о пользователях /etc/shadow содержит защищаемую информацию о пользователях /etc/group содержит информацию о группах /etc/gshadow содержит защищаемую информацию о группах /etc/default/useradd значения по умолчанию для создаваемой учётной записи /etc/skel/ каталог, содержащий файлы по умолчанию /etc/login.defs содержит конфигурацию подсистемы теневых паролей ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ Команда useradd завершая работу, возвращает следующие значения: 0 успешное выполнение 1 не удалось изменить файл паролей 2 ошибка в параметрах команды 3 недопустимое значение параметра 4 такой UID уже существует (и не задан параметр -o) 6 указанная группа не существует 9 имя пользователя уже существует 10 не удалось изменить файл групп 12 не удалось создать домашний каталог 14 can't update SELinux user mapping СМОТРИТЕ ТАКЖЕ chfn(1), chsh(1), passwd(1), crypt(3), groupadd(8), groupdel(8), groupmod(8), login.defs(5), newusers(8), userdel(8), usermod(8).

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

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

chfn [-f ФИО][-о служба сопровождения ИС][-p служебный контакт][-h домашний контакт][-u][-v][логин_пользователя]

Подробнее, о возможностях этой команды читайте man.

chfn(1) Пользовательские команды chfn(1) НАЗВАНИЕ chfn - изменяет информацию о пользователе СИНТАКСИС chfn [параметры] [УЧЁТНАЯ_ЗАПИСЬ] ОПИСАНИЕ Программа chfn изменяет ФИО, рабочий телефон, рабочий номер комнаты, рабочий и домашний номер телефона для учётной записи пользователя. Обычно, эти данные выводятся командой finger(1) и ей подобными программами. Обычный пользователь может изменить только определённые данные собственной учётной записи, разрешённые в файле /etc/login.defs (настройкой по умолчанию пользователю не разрешается менять своё имя и фамилию). Суперпользователь может изменять любые данные любой учётной записи. Кроме того, только суперпользователь может использовать параметр -o для изменения нестандартизованной части данных GECOS. Части поля GECOS не должны содержать двоеточий. За исключением части другая, в них не должно содержаться запятых и знаков равно. Также рекомендуется избегать символов не в кодировке US-ASCII, но это касается только номеров телефонов. Часть другая используется для хранения информации об учётной записи, которая используется другими приложениями. ПАРАМЕТРЫ Параметры команды chfn: -f, --full-nameФИО Изменяет ФИО пользователя. -h, --home-phoneДОМАШНИЙ_ТЕЛЕФОН Изменяет номер домашнего телефона пользователя. -o, --otherДРУГАЯ Изменяет другую информацию GECOS о пользователе. Эта часть используется для хранения информации об учётной записи, используемой другими приложениями, и может изменяться только суперпользователем. -r, --roomНОМЕР_КОМНАТЫ Изменяет номер комнаты пользователя. -R, --root КАТ_CHROOT Выполнить изменения в каталоге КАТ_CHROOT и использовать файлы настройки из каталога КАТ_CHROOT. -u, --help Показать краткую справку и закончить работу. -w, --work-phoneРАБОЧИЙ_ТЕЛЕФОН Изменяет номер рабочего телефона пользователя. Если ни один параметр не указан, то chfn переходит в интерактивный режим, предлагая запустившему пользователю изменить данные своей учётной записи. Вводимое значение заменяет текущее значение записи; если введена пустая строка, то текущее значение остаётся неизменным. Текущее значение показано в скобках [ ]. При вызове без параметров программа chfn изменяет учётную запись запустившего пользователя. НАСТРОЙКА На работу этого инструмента влияют следующие переменные настройки из /etc/login.defs: CHFN_RESTRICT (строка) Этим параметром определяются части поля gecos в файле /etc/passwd, которые могут изменять обычные пользователи с помощью программы chfn. Строка может содержать любую комбинацию букв f, r, w, h для изменения полного имени пользователя, номера комнаты, рабочего и домашнего телефона, соответственно. Для совместимости значение yes эквивалентно rwh и no эквивалентно frwh. Если ничего не задано, то только суперпользователь может выполнять любые изменения. Наиболее ограничительная настройка достигается снятием SUID бита с файла chfn. ФАЙЛЫ /etc/login.defs содержит конфигурацию подсистемы теневых паролей /etc/passwd содержит информацию о пользователях СМОТРИТЕ ТАКЖЕ chsh(1), login.defs(5), passwd(5).

Задаем или изменяем пароль

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

passwd имя_пользователя

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

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

chage -d 0 имя_пользователя

Так же еще можно установить срок годности учетной записи и многое другое, подробно можно почитать man.

chage(1) Пользовательские команды chage(1) НАЗВАНИЕ chage - изменяет информацию об устаревании пароля пользователя СИНТАКСИС chage [параметры] УЧЁТНАЯ_ЗАПИСЬ ОПИСАНИЕ Программа chage изменяет количество дней между датой смены пароля и датой последней смены пароля. Эта информация используется системой для определения момента, когда пользователь должен сменить свой пароль. ПАРАМЕТРЫ Параметры команды chage: -d, --lastday ПОСЛ_ДЕНЬ Установить число дней прошедших с 1 января 1970 года, когда была последняя смена пароля. Дата может быть также указана в виде ГГГГ-ММ-ДД (или в форме согласно региональным настройкам). -E, --expiredate ДАТА_УСТАРЕВАНИЯ Установить дату устаревания учётной записи пользователя, которая задаётся числом дней прошедших с 1 января 1970 года. Дата может быть также задана в виде ГГГГ-ММ-ДД (или в форме согласно региональным настройкам). Пользователь, чья учётная запись была заблокирована, должен обратиться к системному администратору, если хочет в дальнейшем работать с системой. Значение -1 в параметре ДАТА_УСТАРЕВАНИЯ отменяет устаревание учётной записи. -h, --help Показать краткую справку и закончить работу. -I, --inactive ДНЕЙ Установить количество дней неактивности после устаревания пароля перед тем как учётная запись будет заблокирована. В параметре ДНЕЙ задаётся количество дней неактивности. Пользователь, чья учётная запись была заблокирована, должен обратиться к системному администратору, если хочет в дальнейшем работать с системой. Значение -1 в параметре ДНЕЙ отменяет неактивность учётной записи. -l, --list Показать информацию об устаревании учётной записи. -m, --mindays МИН_ДНЕЙ Задать минимальное количество дней между сменами пароля. Нулевое значение этого поля указывает на то, что пользователь может менять свой пароль когда захочет. -M, --maxdays МАКС_ДНЕЙ Установить максимальное количество дней работоспособности пароля. Если сумма значений МАКС_ДНЕЙ и ПОСЛ_ДЕНЬ раньше текущего дня, то пользователю придётся изменить свой пароль перед использованием учётной записи. Для того, чтобы это не было неожиданностью можно воспользоваться параметром -W, который активирует выдачу предупреждения о смене пароля пользователя заранее. Значение -1 в параметре МАКС_ДНЕЙ отменяет проверку пароля. -R, --root КАТ_CHROOT Выполнить изменения в каталоге КАТ_CHROOT и использовать файлы настройки из каталога КАТ_CHROOT. -W, --warndays ПРЕДУП_ДНЕЙ Установить количество дней выдачи предупреждения, перед тем как потребуется смена пароля. Параметр ПРЕДУП_ДНЕЙ считается в днях, в течении которых пользователь будет получать предупреждение об устаревании пароля, перед тем как это случится. Если ни один параметр не указан, то chage переходит в интерактивный режим, предлагая запустившему пользователю изменить значения всех полей своей учётной записи. Вводимое значение заменяет текущее значение поля; если введена пустая строка, то текущее значение остаётся неизменным. Текущее значение показано в скобках [ ]. ЗАМЕЧАНИЕ Программа chage требует наличия файла теневых паролей. Программа chage работает только от суперпользователя, за исключением вызова с параметром -l, который может использоваться непривилегированным пользователем для определения даты устаревания своего пароля. НАСТРОЙКА На работу этого инструмента влияют следующие переменные настройки из /etc/login.defs: ФАЙЛЫ /etc/passwd содержит информацию о пользователях /etc/shadow содержит защищаемую информацию о пользователях ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ Программа chage завершая работу, возвращает следующие значения: 0 успешное выполнение 1 доступ запрещён 2 ошибка в параметрах команды 15 не удалось найти файл теневых паролей СМОТРИТЕ ТАКЖЕ passwd(5), shadow(5).

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

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

userdel -r имя_пользователя

Обратите внимание, с указанным ключом -r удаляется и его домашняя директория.

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

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

cat /etc/group

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

groups имя_пользователя

и более подробным выводом:

id имя_пользователя

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

groupadd имя_группы

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

gpasswd -a имя_пользователя имя_группы

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

gpasswd -d имя_пользователя имя_группы

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

groupdel имя_группы

На этом, пожалуй, все. Если есть чем дополнить, то пишите комментарии.

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

Утечка утверждает, что графические процессоры AMD RDNA 4 работают на частоте 3,3 ГГц, но мы все это слышали раньше

Favorite

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

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

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

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

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

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

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

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

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

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 lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin andreyex:x:1000:1000:Andrey. /home/helder:/bin/bash davmail:x:127:65534::/var/lib/davmail:/usr/sbin/nologin statd:x:128:65534::/var/lib/nfs:/usr/sbin/nologin

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

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

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

Корневой пользователь
В Linux UID — 0 и GID — 0 зарезервированы для пользователя root.

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

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

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

id uid=1000(andreyex) gid=1000(andreyex) groups=1000(andreyex),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare),127(kvm)

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

id standard uid=1001(standard) gid=1001(standard) groups=1001(standard)

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

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

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

usermod -u 1004 user_2

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

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

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

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

find / -user old_uid_of_user_2 -exec chown -h user_2 <> \;

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *