- ChapterВ 1В Configuring and Managing Local Accounts
- 1.1В About User and Group Configuration
- 1.2В About Files Storing User and Group Information
- 1.3В Changing Default Settings for User Accounts
- 1.4В Creating User Accounts
- 1.4.1В About umask and the setgid and Restricted Deletion Bits
- 1.5В Locking an Account
- 1.6В Modifying or Deleting User Accounts
- 1.7В Creating Groups
- 1.8В Modifying or Deleting Groups
- 1.9В Configuring Password Ageing
- 1.10В Granting sudo Access to Users
- Создание, редактирование и удаление пользователей в Linux
- Создание
- Ключи (опции)
- Основы Linux от основателя Gentoo. Часть 3 (3/4): Управление аккаунтами в Linux
- Управление аккаунтами в Linux
- Знакомьтесь, /etc/passwd
- /etc/passwd, советы и хитрости
- /etc/shadow
- /etc/group
- Примечания о группах
- Ручное создание пользователей и групп
- Редактирование /etc/passwd
- Редактирование /etc/shadow
- Установка пароля
- Редактирование /etc/group
- Создание домашней директории
- Утилиты администрирования учетных записей
- Об авторах
- Daniel Robbins
- Chris Houser
ChapterВ 1В Configuring and Managing Local Accounts
This chapter describes how to configure and manage local user and group accounts in Oracle Linux 8.
1.1В About User and Group Configuration
You use the useradd and groupadd commands to add and delete users and groups, as well as to modify settings such as passwords, home directories, login shells, and group membership
In an enterprise environment that might have hundreds of servers and thousands of users, user and group account information is more likely to be held in a central repository rather than in files on individual servers. You can configure user and group information on a central server and then retrieve this information by using services such as the Lightweight Directory Access Protocol (LDAP) or the Network Information Service (NIS). You can also create home directories on a central server and then automatically mount or access these remote file systems when the user logs in to a system.
1.2В About Files Storing User and Group Information
Unless you select a different authentication mechanism during installation or use the authselect command to create an authentication profile, Oracle Linux verifies a user’s identity by using the information that is stored in the /etc/passwd and /etc/shadow files.
The /etc/passwd file stores account information for each user such as his or her unique user ID (or UID , which is an integer), user name, home directory, and login shell. A user logs in using his or her user name, but the operating system uses the associated UID. When the user logs in, he or she is placed in his or her home directory and his or her login shell runs.
The /etc/group file stores information about groups of users. A user also belongs to one or more groups, and each group can contain one or more users. If you can grant access privileges to a group, all members of the group receive the same access privileges. Each group account has a unique group ID ( GID , again an integer) and an associated group name.
By default, Oracle Linux implements the user private group ( UPG ) scheme where adding a user account also creates a corresponding UPG with the same name as the user, and of which the user is the only member.
Only the root user can add, modify, or delete user and group accounts. By default, both users and groups use shadow passwords, which are cryptographically hashed and stored in /etc/shadow and /etc/gshadow respectively. These shadow password files are readable only by the root user. The root user can set a group password that a user must enter to become a member of the group. If a group does not have a password, a user can only join the group if the root user adds that user as a member.
A user can use the newgrp command to log into a new group or to change the current group ID during a login section. If the user has a password, he or she can add group membership on a permanent basis. See the newgrp(1) manual page.
The /etc/login.defs file defines parameters for password aging and related security policies.
For more information about the content of these files, see the group(5) , gshadow(5) , login.defs(5) , passwd(5) , and shadow(5) manual pages.
1.3В Changing Default Settings for User Accounts
To display the default settings for a user account, use the following command:
The following output is displayed:
INACTIVE : Specifies after how many days the system locks an account if a user’s password expires. If set to 0, the system locks the account immediately. If set to -1, the system does not lock the account.
SKEL : Defines a template directory, whose contents are copied to a newly created user’s home directory. The contents of this directory should match the default shell defined by SHELL .
You can specify options to useradd -D to change the default settings for user accounts. For example, to change the defaults for INACTIVE , HOME and SHELL :
If you change the default login shell, you would most likely also create a new SKEL template directory that contains contents that are appropriate to the new shell.
If you specify /sbin/nologin for a user’s SHELL , that user cannot log into the system directly but processes can run with that user’s ID. This setting is typically used for services that run as users other than root .
The default settings are stored in the /etc/default/useradd file.
For more information, see Section 1.9, “Configuring Password Ageing” and the useradd(8) manual page.
1.4В Creating User Accounts
To create a user account by using the useradd command:
Create a user account by using the useradd command:
You can specify options to change the account’s settings from the default ones.
By default, if you specify a user name argument but do not specify any options, useradd creates a locked user account using the next available UID and assigns a user private group (UPG) rather than the value defined for GROUP as the user’s group.
Assign a password to the account to unlock it as follows:
The command prompts you to enter a password for the account.
If you want to change the password non-interactively (for example, from a script), use the chpasswd command instead:
Alternatively, you can use the newusers command to create a number of user accounts at the same time.
For more information, see the chpasswd(8) , newusers(8) , passwd(1) , and useradd(8) manual pages.
1.4.1В About umask and the setgid and Restricted Deletion Bits
Users whose primary group is not a UPG have a umask of 0022 set by /etc/profile or /etc/bashrc , which prevents other users, including other members of the primary group, from modifying any file that the user owns.
A user whose primary group is a UPG has a umask of 0002. It is assumed that no other user has the same group.
To grant users in the same group write access to files within the same directory, change the group ownership on the directory to the group, and set the setgid bit on the directory:
Files that are created in such a directory have their group set to that of the directory rather than the primary group of the user who creates the file.
The restricted deletion bit prevents unprivileged users from removing or renaming a file in the directory unless they own either the file or the directory.
To set the restricted deletion bit on a directory:
For more information, see the chmod(1) manual page.
1.5В Locking an Account
To lock a user’s account, use the passwd command with the -l option:
To unlock the account, specify the -u option:
For more information, see the passwd(1) manual page.
1.6В Modifying or Deleting User Accounts
To modify a user account, use the usermod command:
For example, to add a user to a supplementary group (other than his or her login group):
You can use the groups command to display the groups to which a user belongs, for example:
To delete a user’s account, use the userdel command:
For more information, see the groups(1) , userdel(8) and usermod(8) manual pages.
1.7В Creating Groups
To create a group by using the groupadd command:
Typically, you might want to use the -g option to specify the group ID (GID). For example:
For more information, see the groupadd(8) manual page.
1.8В Modifying or Deleting Groups
To modify a group, use the groupmod command:
To delete a user’s account, use the groupdel command:
For more information, see the groupdel(8) and groupmod(8) manual pages.
1.9В Configuring Password Ageing
To specify how users’ passwords are aged, edit the following settings in the /etc/login.defs file:
Maximum number of days for which a password can be used before it must be changed. The default value is 99,999 days.
Minimum number of days that is allowed between password changes. The default value is 0 days.
Number of days warning that is given before a password expires. The default value is 7 days.
For more information, see the login.defs(5) manual page.
To change how long a user’s account can be inactive before it is locked, use the usermod command. For example, to set the inactivity period to 30 days:
To change the default inactivity period for new user accounts, use the useradd command:
A value of -1 specifies that user accounts are not locked due to inactivity.
For more information, see the useradd(8) and usermod(8) manual pages.
1.10В Granting sudo Access to Users
By default, an Oracle Linux system is configured so that you cannot log in directly as the root user. You must log in as a named user before using either su or sudo to perform tasks as root . This configuration allows system accounting to trace the original login name of any user who performs a privileged administrative action. If you want to grant certain users authority to be able to perform specific administrative tasks via sudo , use the visudo command to modify the /etc/sudoers file.
For example, the following entry grants the user erin the same privileges as root when using sudo , but defines a limited set of privileges to frank so that he can run commands such as systemctl , rpm , and dnf :
For more information, see the su(1) , sudo(8) , sudoers(5) , and visudo(8) manual pages.
Copyright В© 2019, 2021 Oracle and/or its affiliates. Legal Notices
Источник
Создание, редактирование и удаление пользователей в Linux
В данной инструкции рассказывается о работе с пользователями Linux через терминал (с применением командной строки).
Создание
* опции не являются обязательными при создании пользователя.
* в данном примере создается учетная запись 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.
Источник
Основы Linux от основателя Gentoo. Часть 3 (3/4): Управление аккаунтами в Linux
Навигация по основам Linux от основателя Gentoo:
Часть I:
Часть II:
Часть III
Управление аккаунтами в Linux
Знакомьтесь, /etc/passwd
В этом разделе мы познакомимся с механизмом управления аккаунтами в Linux и начнем с файла /etc/passwd, в котором определены все пользователи, которые существуют в системе. Вы можете посмотреть свой файл /etc/passwd, набрав команду less /etc/passwd. Каждой строкой в /etc/passwd определяется аккаунт пользователя. Вот пример из моего /etc/passwd:
drobbins:x:1000:1000:Daniel Robbins:/home/drobbins:/bin/bash
Как видите, в одной строке не так уж много информации. Каждая из них содержит несколько полей, разделённых «:». Первое поле отвечает за имя пользователя (drobbins), второе поле содержит «x». На устаревших Linux-системах второе поле содержало зашифрованных пароль для аутентификации, но фактически, сейчас все Linux-системы хранят эту информацию в другом файле. Третье поле отвечает за числовой пользовательский идентификатор, связанный с конкретным пользователем, а четвертое поле ассоциирует этого пользователя с конкретной группой; скоро мы увидим, где определена группа 1000. Пятое поле содержит текстовое описание аккаунта, в нашем случае это имя пользователя. Шестое поле определяет домашний каталог пользователя, седьмое — устанавливает стартовую оболочку пользователя, которая будет автоматически запускаться когда пользователь входит в систему.
/etc/passwd, советы и хитрости
Вы вероятно заметили, что в системе намного больше пользовательских аккаунтов, которые определены в /etc/passwd, чем тех, которые логинятся в систему на самом деле. Всё это потому, что различные компоненты Linux используют некоторые аккаунты для повышения безопасности. Обычно, такие системные аккаунты имеют идентификатор (uid) меньший 100, и у многих из них в качестве стартовой оболочки установлена /bin/false. Так как эта программа ничего не делает, кроме как выходит и возвращает код ошибки, это эффективно препятствует использованию этих аккаунтов в качестве обычных аккаунтов для логина — т.е. они предназначены только для внутрисистемного пользования.
/etc/shadow
Итак, сами пользовательские аккаунты определены в /etc/passwd. Системы Linux вдобавок к /etc/passwd содержат его файл-компаньон /etc/shadow. Он, в отличие от /etc/passwd, доступен для чтения только суперпользователю и содержит зашифрованную информацию о паролях. Взглянем на образец строки из /etc/shadow:
drobbins:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0
Каждая строка определяет информацию о пароле конкретного аккаунта, поля в ней разделены знаком «:». Первое поле определяет конкретный пользовательский аккаунт, которому соответствует данная «теневая» запись. Во втором поле содержится зашифрованный пароль. Оставшиеся поля описаны в таблице ниже:
поле 3 — количество дней с 01.01.1970 до момента, когда пароль был изменен
поле 4 — количество дней до того, как будет разрешено сменить пароль («0» — «менять в любое время»)
поле 5 — количество дней до того, как система заставит пользователя сменить пароль («-1» — «никогда»)
поле 6 — количество дней до истечения срока действия пароля, когда пользователь получит предупреждение об этом («-1» — «не предупреждать»)
поле 7 — количество дней после истечения срока действия пароля, по прошествии которых аккаунт будет автоматически отключен системой («-1» — «не отключать»)
поле 8 — количество дней, прошедшее с момента отключения этого аккаунта («-1» — «этот аккаунт включен»)
поле 9 — зарезервировано для будущего использования
/etc/group
Теперь взглянем на файл /etc/group, который определяет группы в системе Linux. Вот примерная строка из него:
drobbins:x:1000:
Формат полей файла /etc/group следующий: первое поле определяет имя группы, второе поле — это поле остаточного пароля, которое сейчас просто зарезервировано x, и третье поле определяет числовой идентификатор для конкретной группы. Четвертое поле (которое пусто в примере выше) определяет всех членов группы.
Вспомните, что в нашем образце строки из /etc/passwd есть «ссылка» на группу с идентификатором 1000. Мы сможем поместить пользователя drobbins в группу drobbins, даже несмотря на отсутствие имени drobbins в четвертом поле /etc/group.
Примечания о группах
Замечание насчет соответствия пользователей с группами: на некоторых системах каждый новый логин-аккаунт связан с группой, имеющей то же имя (и обычно идентификатор). На других системах все логин-аккаунты будут принадлежать к одной группе пользователей. Какой из этих методов выбрать зависит от вас. Создание соответствующей группы для каждого пользователя имеет преимущество в том, что позволяет им более легко контролировать их собственный доступ просто помещая доверенных друзей в свою личную группу.
Ручное создание пользователей и групп
Теперь, я покажу как создать аккаунты для пользователя и группы. Лучший путь узнать как это сделать это добавить нового пользователя в систему вручную. Для начала убедитесь что вашей переменной окружения EDITOR соответствует ваш любимый редактор:
# echo $EDITOR
vim
Если это не так, то вы можете установить переменную EDITOR, набрав что-то, вроде:
# export EDITOR=/usr/bin/emacs
# vipw
Теперь ваш редактор должен быть запущен с уже загруженным /etc/passwd экране. Изменяя системные файлы passwd и group обязательно используйте команды vipw и vigr. Они имеют повышенные меры предосторожности, оберегая ваши файлы от участи быть испорченными.
Редактирование /etc/passwd
Итак, у вас уже есть готовый файл /etc/passwd, добавьте теперь следующую строку:
testuser:x:3000:3000:LPI tutorial test user:/home/testuser:/bin/false
Мы только что добавили пользователя «testuser» с идентификатором 3000. Мы определили его в группу с таким же идентификатором, которую еще не создали. Но мы можем добавить его к уже имеющейся группе пользователей, если нужно. У этого пользователя установлен комментарий, гласящий «LPI tutorial test user», домашний каталог установлен как «/home/testuser», а командная оболочка — как «/bin/false», в целях безопасности. Если бы мы создавали не тестовый аккаунт, мы бы установили командную оболочку как «/bin/bash». Отлично, теперь сохраните файл и выходите.
Редактирование /etc/shadow
Сейчас нам нужно добавить запись в /etc/shadow для этого пользователя. Для этого наберите vipw -s. Вас как всегда встретит ваш любимый редактор в котором уже открыт файл /etc/shadow. Теперь скопируйте строку существующего пользовательского аккаунта (того, у которого есть пароль и запись которого длиннее стандартных записей системных аккаунтов)
drobbins:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0
Замените имя пользователя в скопированной строке на имя вашего пользователя и убедитесь что все поля (особенно старый пароль) установлены как вам надо:
testuser:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0
Теперь сохраните и закройте.
Установка пароля
Вы вернетесь к командной строке. Теперь, самое время задать пароль для вашего нового пользователя.
# passwd testuser
Enter new UNIX password: (enter a password for testuser)
Retype new UNIX password: (enter testuser’s new password again)
Редактирование /etc/group
Теперь /etc/passwd и /etc/shadow готовы и самое время как следует настроить /etc/group. Для этого, наберите:
# vigr
Перед вами появится ваш /etc/group файл, готовый для редактирования. Итак, если ранее вы решили добавить созданного пользователя к уже имеющейся группе, то вам не понадобиться создавать новую группу в /etc/groups. Если это не так, вам нужно добавить новую группу для этого пользователя, введите следующую строку:
testuser:x:3000:
Теперь сохраните и закройте.
Создание домашней директории
Мы почти закончили. Выполните следующие команды для создания домашнего каталога testuser’а:
# cd /home
# mkdir testuser
# chown testuser:testuser testuser
# chmod o-rwx testuser
Наш каталог пользователя на месте и аккаунт готов к использованию. Уже почти готово. Если вы собираетесь использовать этот аккаунт, вам надо будет воспользоваться vipw для смены стартовой оболочки на /bin/bash, так, чтобы пользователь смог войти.
Утилиты администрирования учетных записей
Вы уже знаете как вручную добавить новые аккаунты и группы, давайте же теперь рассмотрим различные, экономящие время, утилиты для управления аккаунтами под Linux. Из-за некоторых ограничений мы не будем рассматривать множество деталей, описывающих эти команды. Запомните — вы всегда можете получить больше информации о какой-либо команде если посмотрите её man-страничку. Если вы планируете сдавать LPIC 101 экзамен, вам следует провести побольше времени на ознакомление с каждой из этих команд.
newgrp — По умолчанию, любой файл, который создает пользователь, сразу же присваивается к группе, в которой он состоит, определенной в /etc/passwd. Если пользователь принадлежит к другим группам, он или она может набрать newgrp thisgroup чтобы стать членом группы thisgroup. Затем, любые новые созданные файлы унаследуют членство в thisgroup.
chage — Команда chage используется для просмотра и изменения настроек срока действия паролей, сохраненных в /etc/shadow.
gpasswd — Основная утилита управления группами
groupadd/groupdel/groupmod — Используются для добавления/удаления/изменения групп в /etc/group
useradd/userdel/usermod — Используются для добавления/удаления/изменения пользователей в /etc/passwd. Эти команды могут выполнять и другие полезные функции. Смотрите man для получения дополнительной информации.
pwconv/grpconv — Используются для преобразования passwd и group файлов старого образца в новые shadow passwords. Фактически, все Linux системы уже используют shadow passwords, так что вам никогда не придется использовать эти команды.
Перевод выполнил коллективный разум с помощью notabenoid.com. Спасибо следующим benoid-юзерам (в алфавитном порядке): kindacute, nekjine, Rich. А также инициатору всей серии переводов, VBart.
Об авторах
Daniel Robbins 
Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.
Chris Houser
Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.
Источник