Пользователи в Linux. Типы пользователей, управление пользователями.
Сегодня я хочу поговорить о пользователях в 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.
Пользователь создался с UID равным 777, но GID был задан дефолтный — 1001, для того чтобы это исправить можно поступить следующим образом.
Сначала создадим группу 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 и Unix-подобных системах учетная запись суперпользователя, называемая «root», практически всемогуща с неограниченным доступом ко всем командам, файлам, каталогам и ресурсам. Root также может предоставлять и удалять любые разрешения для других пользователей.
Какая учетная запись пользователя в ОС Linux самая мощная?
Пользователь root также вызвал суперпользователя — самая мощная учетная запись в вашей системе Linux.
Какое имя пользователя у самой мощной учетной записи в системе Unix?
корень — это имя пользователя или учетная запись, которая по умолчанию имеет доступ ко всем командам и файлам в Linux или другой Unix-подобной операционной системе. Его также называют учетной записью root, пользователем root и суперпользователем.
Является ли root наивысшей привилегией?
В то время как доступ на корневом уровне считается «высоким» уровнем привилегий. для пользователя это одновременно считается «низкоуровневым» доступом к системе.
Linux — самая мощная ОС?
Linux поддерживает гораздо больше глобальных технологий, чем думает большинство людей. И это одна из самых мощных операционных систем в мире! Может быть, вы думаете — Windows занимает 82.56% мирового рынка ОС. В то время как одна из самых мощных ОС в мире борется с 2%…
Как зовут администратора в Linux?
В вычислениях суперпользователь — это специальная учетная запись пользователя, используемая для системного администрирования. В зависимости от операционной системы (ОС) фактическое имя этой учетной записи может быть root, администратор, админ или супервизор.
Как использовать суперпользователя в Linux?
Чтобы стать суперпользователем, выберите один из следующих способов:
- Войдите в систему как пользователь, запустите Консоль управления Solaris, выберите инструмент управления Solaris, а затем войдите в систему как пользователь root. …
- Войдите в систему как суперпользователь на системной консоли. …
- Войдите в систему как пользователь, а затем измените учетную запись суперпользователя с помощью команды su в командной строке.
Что такое суперпользователь в Unix?
В системе Unix суперпользователь ссылается на к привилегированной учетной записи с неограниченным доступом ко всем файлам и командам. Имя пользователя этой учетной записи — root. Многие административные задачи и связанные с ними команды требуют статуса суперпользователя. … Вы можете выйти из учетной записи суперпользователя с помощью exit или Ctrl-D.
Как это называется, когда вы получаете права администратора из учетной записи обычного пользователя?
Как это называется, когда вы получаете административные привилегии от обычной учетной записи пользователя? Эскалация привилегий. Вы только что изучили 20 семестра!
Что такое root-права?
Получение root-прав — это процесс, который позволяет вам получить root-доступ к коду операционной системы Android (эквивалентный термин для взлома идентификатора устройств Apple). Это дает вам права на изменение программного кода на устройстве или установку другого программного обеспечения что производитель обычно не позволяет.
Можете ли вы использовать ssh как root?
SSH (Secure Shell) часто используется для входа на удаленные серверы как root. Однако конфигурация по умолчанию в OpenSSH запрещает вход root с использованием паролей. Чтобы включить вход в систему root, измените значение параметра конфигурации PermitRootLogin в / ssh / sshd_config.
Привилегии в Linux: что это и как с этим работать
Linux – это многопользовательская операционная система, которая использует концепцию Unix о привилегиях для обеспечения безопасности на уровне файловой системы. При работе с Linux очень важно понимать, что такое права доступа и собственности. Данная статья поможет вам разобраться в основных понятиях, связанных с привилегиями пользователей Linux.
Примечание: Чтобы узнать, как изменять привилегии, читайте это руководство.
Требования
- Базовые навыки работы с Linux.
- Сервер Linux (опционально).
Пользователи Linux
Поскольку Linux является многопользовательской системой, важно понимать, как работают пользователи и группы. Рассмотрим эти понятия подробнее.
В Linux существует два типа пользователей: системные и обычные. Системные пользователи предназначены для выполнения неинтерактивных и фоновых процессов, а обычные пользователи отвечают за выполнение интерактивных задач. Входя в систему Linux впервые, вы могли заметить, что она запускает множество системных пользователей, которые в свою очередь запускают различные сервисы, от которых зависит система.
Чтобы просмотреть всех пользователей системы, проверьте файл /etc/passwd. Каждая строка в этом файле содержит данные об отдельном пользователе, начиная с имени пользователя (перед первым символом двоеточия). Чтобы вывести содержимое файла на экран, введите:
Суперпользователь
Кроме основных двух типов пользователей в Linux существует также суперпользователь, или root. Этот пользователь может переопределять права других пользователей на файлы и ограничивать доступ. По сути, суперпользователь имеет права доступа ко всем файлам, существующим на сервере. Этот пользователь имеет право вносить общесистемные изменения, потому его безопасность очень важна для безопасности самого сервера.
Также можно настроить других пользователей для выполнения полномочий суперпользователя. Для этого нужно открыть обычному пользователю доступ к команде sudo. В повседневной работе администратора сервера рекомендуется использовать именно такой аккаунт с расширенными привилегиями, поскольку использование root на постоянной основе опасно и может разрушить систему.
Группы Linux
Группы представляют собой наборы из 0 или более пользователей. Пользователь принадлежит к группе по умолчанию, а также может быть членом какой-либо из других групп.
Чтобы просмотреть все доступные группы и списки их членов, откройте файл /etc/group.
Права собственности и доступа к файлам
В Linux каждый файл принадлежит одному пользователю и одной группе и имеет индивидуальные настройки доступа.
Для просмотра прав доступа используется команда ls. Она имеет длинный список опций (например, ls -l myfile). Чтобы просмотреть настройки доступа к файлам в текущем каталоге, запустите команду без аргументов:
Чтобы запросить содержимое каталога /etc, введите:
В первом столбце вывода указан режим доступа к файлу, второй и третий столбец содержат имя пользователя и группу, четвертый – размер файла, пятый – дату его последнего изменения, в последнем столбце указано имя файла.
В целом вывод команды ls довольно легко понять, кроме, пожалуй, первого столбца, который описывает права доступа к файлу. Он выглядит примерно так:
Чтобы понять, что значат эти буквы и дефисы, разделим содержимое столбца на его компоненты. Первую строку вышеприведённого примера можно разделить на следующие категории:
d rwx(1) rwx(2) rwx(3)
- d – поле типа файла.
- rwx(1) – права пользователя-владельца файла.
- rwx(2) – права группы-владельца.
- rwx(3) – права остальных пользователей.
Типы файлов
В Linux существует два основных типа файлов: обычные и специальные.
Обычные файлы определяются символом дефиса в поле типа. Обычные файлы – это простые файлы, в которых можно хранить данные.
Файл является специальным, если в поле типа содержится буква. Такие файлы обрабатываются операционной системой иначе, чем обычные файлы. Символ в поле типа файла указывает, к какому виду специальных файлов относится определенный файл. Самым распространённым видом специальных файлов является каталог (или директория), он определяется символом d (как в примере выше). В системе Linux существует несколько видов специальных файлов, но данная тема выходит за рамки этой статьи.
Классы доступа
Как говорилось ранее, каждый файл имеет настройки для трёх категорий (или классов) доступа:
- пользователя – владельца файла;
- группы – владельца файла (к этому классу относятся все члены группы, в которой состоит пользователь – владелец файла);
- и остальных пользователей (к этому классу относятся все пользователи, которые не принадлежат к предыдущим классам).
Такого порядка привилегий придерживаются все дистрибутивы Linux.
Виды доступа
Каждая категория имеет три вида доступа, каждый из которых обозначается отдельным символом:
- r (read) – право на чтение файла,
- w (write) – право на изменение (редактирование),
- x (execute) – право на запуск (в некоторых особых случаях вместо х может использоваться другой символ).
Если вместо символа стоит дефис, значит, данный класс не имеет соответствующего права доступа. Например:
В таком случае пользователь и группа – владельцы файла имеют все права доступа, а для остальных пользователей доступ к файлу полностью закрыт.
Теперь вы знаете, как читать права доступа к файлу.
Рассмотрим подробнее, что именно даёт каждый вид доступа.
Примечание: Чтобы обеспечить нормальный доступ к файлам и каталогам, виды доступа часто используются в сочетании друг с другом.
Право на чтение файла
Право на чтение обычного файла – это возможность просматривать его содержимое.
Право на чтение каталога позволяет пользователю просматривать имена файлов, хранящихся в нём.
Право на изменение файла
В случае с обычным файлом это право даёт пользователю возможность изменять содержимое файла или удалить его.
Если у пользователя есть право на изменение каталога, то такой пользователь может удалить каталог, изменять его содержимое (то есть, создавать, переименовывать или удалять файлы в нём) и содержимое хранящихся в нём файлов.
Право на запуск
Имея такое право, пользователь может запускать обычный файл, но для этого ему также нужны права на чтение данного файла. Права на запуск нужно устанавливать для исполняемых программ и сценариев оболочки.
Если у пользователя есть право на запуск каталога, то он может читать такой каталог, а также получить доступ к его метаданным о хранящихся файлах.
Примеры привилегий
Теперь рассмотрим несколько полезных общих примеров прав доступа к файлу.
- -rw——-: доступ к файлу имеет только пользователь-владелец файла.
- -rwxr-xr-x: любой пользователь системы может запустить такой файл.
- -rw-rw-rw-: любой пользователь системы имеет право на изменение такого файла.
- drwxr-xr-x: любой пользователь системы может читать данный каталог.
- drwxrwx—: содержимое каталога могут читать и изменять только пользователь и группа-владелец.
Как видите, пользователь-владелец файла, как правило, обладает всеми правами на файл (или, по крайней мере, имеет больше прав, чем остальные классы). Из соображений безопасности файлы должны быть доступны только для тех пользователей, которым необходим доступ к ним по определенной причине.
Существует множество комбинаций прав доступа, однако в каждом конкретном случае только некоторые из них полезны. К примеру, право на изменение и запуск почти всегда комбинируется с правом на чтение файла, поскольку файл сложно изменить и невозможно запустить без прав на чтение.
Примечание: Чтобы научиться изменять права доступа, читайте это руководство. В нем речь идёт об использовании команд chown, chgrp и chmod.
Заключение
Теперь вы знакомы с основными понятиями, связанными с правами доступа и собственности в окружении Linux.
Пользователи и группы в linux. Добавление удаление редактирование пользователей
Системы, обеспечивающие многопользовательский доступ, будь то операционная система ОС, программное обеспечение (ПО), система управления контентом (CMS), очень важно иметь инструментарий для надёжного управления пользователями (их аккаунтами или учётными записями, пользовательскими конфигурациями, домашними каталогами и т. д.), а также для организации и управления самим пользовательским доступом. В таких случаях грамотное и продуманное управление пользователями (точнее, их учётными записями) является ключевым аспектом, от которого зависят безопасность, стабильность и, как следствие — надёжность всей системы. В современных дистрибутивах Linux имеются автоматизированные системы управления пользователями с наглядным графическим пользовательским интерфейсом (GUI), что позволяет быстро и удобно выполнять рутинные (как оказывается на самом деле) мероприятия по управлению пользователями и конфигурации их учётных записей. Однако, очень важно знать и понимать как и какие на самом деле процессы и изменения происходят в самой системе во время управления пользователями.
Добавление пользователей в Linux
Для добавления в систему нового пользователя с именем John, следует просто выполнить команду:
В результате будет создана следующая запись в файле /etc/passwd:
Однако, команда useradd располагает куда большими возможностями, например:
Эта команда добавит в систему пользователя с полным именем «John Silver», регистрационным именем «john». Включив его в основную группу «pirates», а также добавит его в ещё одну дополнительную группу «john» и назначит ему домашний каталог по адресу /home/pirates/john. В результате, соответствующая запись в файле /etc/passwd будет примерно такой:
Команда useradd автоматически создаёт домашний каталог пользователя, если он ещё не создан. A также копирует в него файлы из /etc/skel/.
Полный список параметров useradd
Использование: useradd [параметры] ПОЛЬЗОВАТЕЛЬ
useradd -D
useradd -D [параметры]
Параметры:
-b, —base-dir БАЗ_КАТ базовый каталог для домашнего каталога новой
учётной записи
-c, —comment КОММЕНТАРИЙ поле GECOS новой учётной записи
-d, —home-dir ДОМ_КАТ домашний каталог новой учётной записи
-D, —defaults показать или изменить настройки
по умолчанию для useradd
-e, —expiredate ДАТА_УСТ дата устаревания новой учётной записи
-f, —inactive НЕАКТИВНОСТЬ период неактивности пароля новой учётной записи
-g, —gid ГРУППА имя или ID первичной группы новой
учётной записи
-G, —groups ГРУППЫ список дополнительных групп новой
учётной записи
-k, —skel КАБ_ШАБ использовать альтернативный каталог с шаблонами
-K, —key КЛЮЧ=ЗНАЧЕНИЕ заменить значение по умолчанию
из /etc/login.defs
-l, —no-log-init не добавлять пользователя в базы данных lastlog и
faillog
-m, —create-home создать домашний каталог пользователя
-M, —no-create-home не создавать домашний каталог пользователя
-N, —no-user-group не создавать группу с тем же именем что и у
пользователя
-o, —non-unique разрешить создание пользователей с
повторяющимися (не уникальными) UID
-p, —password ПАРОЛЬ зашифрованный пароль новой учётной записи
-r, —system создать системную учётную запись
-R, —root КАТ_CHROOT каталог, в который выполняется chroot
-s, —shell ОБОЛОЧКА регистрационная оболочка новой
учётной записи
-u, —uid UID пользовательский ID новой учётной записи
-U, —user-group создать группу с тем же именем что и у
пользователя
-Z, —selinux-user SEUSER использовать указанного SEUSER для
пользовательского сопоставления SELinux
Создание и назначение домашнего каталога пользователю
Обычно домашний каталог создается автоматически при добавлении пользователя в систему. Но бывают случаи когда по каким либо причинам домашний каталог не создается. А затем появляется необходимость создать его. Для создания домашнего каталога пользователя используется стандартная команда mkdir. После этого нужно скопировать необходимые конфигурационные скрипты в домашний каталог (для организации рабочей среды пользователя), далее, с помощью команд chown и chmod задать владельца и режимы доступа к каталогу и его содержимому. Это лучше сделать после того как все конфигурационные файлы были скопированы в целевой каталог. Например:
Как видно, файлы конфигурации были скопированы из каталога /etc/skel/ – именно здесь хранятся примеры конфигураций запуска, которые можно отредактировать так, как это необходимо. Кстати, модифицирование копии файлов из каталога /etc/skel/ следует хранить в каталоге usr/local/etc/skel. При задании владельца домашнего каталога необходимо следить за тем, чтобы (в случае неаккуратного использования команды chown) пользователь не стал владельцем псевдокаталога «..», т. е. каталог, уровнем выше, который часто представляет собой каталог /home, что по соображениям безопасности недопустимо.
Создание пароля для пользователя
В целях безопасности для учётной записи обязательно должен существовать надёжный пароль. Который следует задать сразу же после создания учётной записи пользователя:
Например, для пользователя jonh:
Проверка учётной записи
Перед тем, как передать новому пользователю реквизиты и начальный пароль для входа в свою учётную запись, её необходимо проверить. Для этого нужно завершить текущий сеанс. И войти в систему под именем нового пользователя (учётную запись которого необходимо проверить). И последовательно выполнить следующие команды:
Первая выведет домашний каталог для текущего пользователя, вторая список всех (в том числе и скрытых) файлов и подкаталогов в домашнем каталоге с указанием их владельца и режимов доступа.
Управление учётными записями
Как уже ранее отмечалось, для управления пользователями в Linux-системах существуют наборы специализированных утилит для добавления, редактирования и удаления учётных записей (пользователей) — useradd, usermod и userdel. Они выполняют предписанный порядок действий для достижения конечной цели — например, в случае с добавлением нового пользователя, команда useradd производит, соответственно, весь вышеописанный «комплекс мероприятий». Каждую из этих утилит можно гибко настроить с помощью конфигурационных файлов, чем, кстати, очень активно пользуются разработчики дистрибутивов Linux. Ведь в разных Linux-системах работа этих утилит незначительно, но отличается, хотя утилиты, по сути, идентичные. Ниже приводится таблица, показывающая команды и файлы конфигурации для управления пользователями для некоторых систем на примере утилиты useradd:
| Система | Команды | Файлы конфигурации | Комментарий |
| Ubuntu | useradd | /etc/login.defs | |
| adduser | /etc/default/useradd | Perl-версия | |
| /etc/adduser.conf | |||
| SUSE | useradd | /etc/login.defs | |
| /etc/default/useradd | |||
| /etc/default/passwd | |||
| /usr/sbin/useradd.local | Локальные настройки | ||
| /usr/sbin/userdel.local | Локальные настройки | ||
| /usr/sbin/userdel-pre.local | Локальные настройки | ||
| /usr/sbin/userdel-post.local | Локальные настройки | ||
| Red Hat | useradd | /etc/login.defs | |
| /etc/default/useradd | |||
| Solaris | useradd | /etc/default/ | |
| /etc/security/policy.conf |
Удаление пользователей
Для удаления пользователей из системы используется команда userdel, например команда
Удалит пользователя john, но зачастую (как и команда useradd, кстати) не в «чистом» виде, а в виде Perl-оболочек с использованием сценария удаления учётной записи. Например, в дистрибутивах Ubuntu используется команда deluser, которая является обычным сценарием на Perl. Который, в свою очередь, вызывает саму команду userdel для удаления и очистки всего того, что было сделано ранее командой useradd. При этом, используется файл сценария (обычно это файл /etc/deluser.conf в Ubuntu и /etc/login.defs в RedHat). Который позволяет задать следующие опции для работы команды userdel:
Использование: userdel [параметры] ПОЛЬЗОВАТЕЛЬ
Параметры:
-f, —force принудительное удаление пользователя и файлов, даже если они используются в настоящее время
-r, —remove удалить домашний каталог и почтовый ящик
-R, —root КАТ_CHROOT каталог, в который выполняется chroot
-Z, —selinux-user удалить все пользовательские сопоставления
SELinux для пользователя
Файл /etc/passwd – описание локальных учётных записей
Если в системе не используется какая-либо автоматизированная служба управления каталогами (например LDAP, NIS), то файл /etc/passwd – это именно тот файл, в котором хранится информация об учётных записях пользователей, известных системе. К этому файлу система обращается всякий раз при попытке авторизации пользователя в поисках требуемого идентификатора пользователя и определения его домашнего каталога. Формат этого файла заключается в том, что каждая строка в нём соответствует одному конкретному пользователю (учётной записи), в которой (в строке) перечислены атрибуты (поля) учётной записи, разделяемые символом двоеточия:
- Имя пользователя.
- Пароль пользователя (в шифрованном виде) или «заполнитель» пароля.
- Идентификатор пользователя.
- Идентификатор группы пользователя (по умолчанию).
- Информация GECOS — полное имя, офис, телефоны и т. д.
- Домашний каталог.
- Регистрационная оболочка.
Содержимое файла /etc/passwd может выглядеть следующим образом:
Как можно видеть, второе поле для всех записей содержит символ «x» — заполнитель пароля. В Linux-системах зашифрованные пароли хранятся отдельно, в файле /etc/shadow. В случае, если совместно с файлом /etc/passwd используется служба автоматизированного управления каталогами, то в этом же файле имеются записи, начинающиеся с символа «+». Такие записи содержат инструкции по интеграции службы управления каталогами в системе. Стоит вкратце рассмотреть поля учётных записей:
- Имя пользователя или регистрационное имя — уникальное имя, которое должно составляться согласно правилам построения регистрационных имён для той или иной системы. Для Linux длина регистрационного имени может быть не более 32 символов. Допускается использование только строчных букв с включением цифр. Начинаться регистрационное имя должно с буквы.
- Зашифрованный пароль — как уже отмечалось, пароли для локальных учётных записей хранятся в /etc/shadow в зашифрованном виде. В Linux в качестве криптографических инструментов для шифрования паролей используются алгоритмы crypt, MD5, Blowfish. Минимальная длина пароля составляет 5 символов, максимальная 8
- Идентификатор пользователя — это целое число без знака, по которому система «распознаёт» отдельных пользователей, поэтому идентификаторы пользователей используются системой и программной средой, в то время как имена пользователей служат для наглядности и удобства представления пользователей в системе. Для пользователя root зарезервирован идентификатор под номером 0, также рекомендуется присваивать реальным пользователям идентификаторы, следующие после 500, поскольку в системе может быть много «неперсонифицированных» пользователей, таких как bin или daemon – это позволит содержать в порядке список пользователей и избегать путаницы. Также в Linux-системах предусмотрен псевдопользователь nobody, с идентификатором -1 или -2. Обычно этот псевдопользователь используется, когда суперпользователь системы пытается получить доступ к файлам, примонтированным с другого компьютера, у которого нет доверия к исходному компьютеру.
- Идентификатор группы — целое число без знака, аналогично идентификатору пользователя предназначено для обозначения в системе уникальных групп пользователей. Под номером 0 зарезервирована группа root. Группы используются в основном для удобного управления и организации совместного доступа к файлам. Как и в случае с идентификаторами пользователей, в системе зарезервированы группы (например bin) для использования самой системой.
- ПолеGECOS – информация, которая не имеет чётко определённой спецификации, отражает в себе дополнительные данные о пользователе: его полное имя, телефоны, сведения о должности и отделе и т. д. Информацию в этом поле можно менять с помощью команды chfn.
- Домашний каталог — «место» в дереве файловой системы, которое отведено для хранения данных определённого пользователя. Этот каталог из соображений безопасности должен быть доступен только пользователю-владельцу этого каталога. Если домашний каталог отсутствует на момент регистрации, то пользовательские данные помещаются в каталог /. Также, если в файле /etc/login.defs в опции DEFAULT_HOME, задающем домашний каталог по умолчанию указано значение no, то авторизация/регистрация пользователя будет невозможной.
- Регистрационная оболочка — командная оболочка интерпретатора команд (или любая другая программа), которая запускается при входе пользователя в свою учётную запись. Для Linux используется интерпретатор
Файл /etc/group – создание и удаление групп пользователей
Добавления новой группы в Linux осуществляется с помощью команды
где group_name название новой группы. Эта команда создаст в файле /etc/group новую запись
Формат этого файла такой же как и у /etc/passwd. Пример содержимого файла /etc/group:
Как видно, каждая строка включает в себя четыре поля:
- Имя группы.
- Зашифрованный пароль или заполнитель пароля.
- Уникальный идентификатор группы.
- Список пользователей, входящих в данную группу, содержащий имена пользователей, разделённых запятыми без пробелов.
Интересным здесь является поле пароля. Пароль группы предназначен для того, чтобы пользователи могли вступить в группу с помощью команды newgrp. Сам же пароль для группы задаётся командой gpasswd, после чего он в зашифрованном виде будет храниться в файле /etc/gshadow. Однако, следует заметить, что пароли для групп используются крайне редко. Системным администраторам следует следить за содержимым файлов /etc/passwd и /etc/group и согласовывать их между собой, поскольку иногда возникают ситуации, когда пользователь указывается членом группы в файле /etc/passwd и в то же время в файле /etc/group такого объявления нет. Следует заметить, что в этом случае пользователь будет считаться членом группы, однако всё же настоятельно рекомендуется согласовывать содержимое обоих файлов.
По умолчанию в дистрибутивах Linux (кроме SUSE), при создании пользователя (утилита useradd) создаётся и его одноимённая группа, в которую он сразу же включается. Это предусмотрено для того, чтобы максимально исключить вероятность доступа разных пользователей к файлам друг друга.
Удалить группу пользователей можно с помощью команды
Эта команда удалит запись из /etc/group.
Файл /etc/shadow – хранение паролей
Для хранения скрытых или теневых паролей используется отдельный файл /etc/shadow. Доступ к которому доступен только суперпользователю. Нужно также заметить, что файлы /etc/shadow и /etc/passwd хоть и связаны концептуально, однако на уровне системы между ними практически нет никакого взаимодействия. За исключением того, что поле, содержащее регистрационное имя в shadow берётся из passwd. Т.е. при модификации shadow, изменения не отражаются автоматически в passwd – эти файлы хранятся отдельно и обрабатываются системой независимо друг от друга. Формат /etc/shadow аналогичен /etc/passwd и каждая строка включает в себя следующие поля:
- Регистрационное имя.
- Пароль в зашифрованном виде.
- Дата последнего изменения пароля.
- Минимальное количество дней между изменениями пароля.
- Максимальное количество дней между изменениями пароля.
- Количество дней до выдачи сообщения об окончании срока действия пароля.
- Количество дней (по истечению срока действия пароля) до автоматического аннулирования учётной записи.
- Период действия учётной записи.
- Зарезервированное поле.
Запись из файла /etc/shadow выглядит следующим образом:
Следует отметить, что обязательными являются первые два поля. Формат полей дат соответствует количеству дней, прошедших с первого января 1970 года. Поле с регистрационным именем, как уже отмечалось, заполняется соответствующим значением из файла /etc/passwd. В Linux седьмое поле содержит значение, которое определяет по истечении какого времени (в днях) после устаревания пароля учётная запись будет автоматически отключена. Эта интерпретация отличается от той, которая используется в системах Solaris и HP-UX. В восьмом поле, для установки даты истечения срока действия учётной записи можно использовать команду usermod в формате гггг-мм-чч.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.