Работа с группами и пользователями
Понятие пользователя
Пользователь (user) - является концептом безопасности в системе.
Пользователи создаются для предоставления людям или процессам доступа к системным ресурсам
Процессы используют системные аккаунты
Для людей используются регулярные пользовательские аккаунты
Атрибуты пользователей
Имя пользователя
Пароль
Пароль хранится в отдельном файле, etc/shadow, здесь он выставлен в x
UID - уникальный идентификатор пользователя
GID - идентификатор группы пользовалея
GECOS - дополнительная, необязательная информация о пользователе
Home Directory - среда, в которой пользователь создает личные файлы
Shell - программа, которая запускается при успешном логине пользователя
[admin@centos8 ~]$ sudo cat /etc/passwd
[sudo] password for admin:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
<...>
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
admin:x:1000:1000:Administrator:/home/admin:/bin/bash
Создание и управление пользователями
useradd - создание аккаунта пользователя
useradd -c - добавить информацию в GECOS
useradd -s - изменить shell для пользователя
useradd -p - установить пароль в шифрованном виде
usermod - изменения аккаунта пользователя
usermod -G - изменить группы
usermod -a - добавить пользователя в группу
userdel - удаление аккаунта пользователя
userdel -f - принудительное удаление
userdel -r - удаление с домашней папкой и почтой
passwd - назначить пароль для аккаунта
passwd -l - заблокировать пользователя
passwd -u - разблокировать пользователя
root@centos8 ~]# useradd -c test_user bill
[root@centos8 ~]# id bill
uid=1001(bill) gid=1001(bill) groups=1001(bill)
[root@centos8 ~]# usermod -aG wheel bill
[root@centos8 ~]# id bill
uid=1001(bill) gid=1001(bill) groups=1001(bill),10(wheel)
[root@centos8 ~]# passwd bill
Changing password for user bill.
New password:
BAD PASSWORD: The password fails the dictionary check - it is based on a dictionary word
Retype new password:
passwd: all authentication tokens updated successfully.
[root@centos8 ~]# userdel -f bill
[root@centos8 ~]# id bill
id: ‘bill’: no such user
Управление дефолтными настройками
useradd -D - определяет настройки по-умолчанию для пользователя
Содержимое /etc/default/useradd применяется только для useradd
Параметр GROUP=100 является наследуемым признаком, ранее все пользователи помещались в группу USERS по-умолчанию, теперь механизм другой
Альтернативно, дефолтные настройки записываются в /etc/login.defs
[root@centos8 ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@centos8 ~]# cat /etc/login.defs
#
# Please note that the parameters in this configuration file control the
# behavior of the tools from the shadow-utils component. None of these
# tools uses the PAM mechanism, and the utilities that use PAM (such as the
# passwd command) should therefore be configured elsewhere. Refer to
# /etc/pam.d/system-auth for more information.
#
# *REQUIRED*
# Directory where mailboxes reside, _or_ name of file, relative to the
# home directory. If you _do_ define both, MAIL_DIR takes precedence.
# QMAIL_DIR is for Qmail
#
#QMAIL_DIR Maildir
MAIL_DIR /var/spool/mail
#MAIL_FILE .mail
# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password expires.
#
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN 1000
UID_MAX 60000
# System accounts
SYS_UID_MIN 201
SYS_UID_MAX 999
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN 1000
GID_MAX 60000
# System accounts
SYS_GID_MIN 201
SYS_GID_MAX 999
#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#
#USERDEL_CMD /usr/sbin/userdel_local
#
# If useradd should create home directories for users by default
# On RH systems, we do. This option is overridden with the -m flag on
# useradd command line.
#
CREATE_HOME yes
# The permission mask is initialized to this value. If not specified,
# the permission mask will be initialized to 022.
UMASK 077
# This enables userdel to remove user groups if no members exist.
#
USERGROUPS_ENAB yes
# Use SHA512 to encrypt password.
ENCRYPT_METHOD SHA512
Файлы в /etc/skel создаются для пользователя до момента создания home директории
Если поместить сюда файл, то он будет перенесен в домашнюю директорию пользователя
[root@centos8 ~]# ls -a /etc/skel
. .. .bash_logout .bash_profile .bashrc .mozilla
Passwd и shadow файлы
/etc/passwd используется для хранения пользовательских параметров
Linux оперирует не именами, а ID
Рут всегда имеет ID, равный нулю
Соответственно если любой другой пользователь получит ID, равный нулю, то он получит полный доступ к системе
/etc/shadow хранит пользовательские пароли, вернее хэши от них
18078 - время от 01 января 1970 года, когда был создан пароль для пользователя
Исчисление времени в Linux осуществляется с этой даты, 01.01.1970 называется EPOCH
0 - PASS_MIN_DAYS
99999 - PASS_MAX_DAYS
7 - количество дней до истечения пароля, когда пользователь будет об этом уведомлен
!! - пароль отключен для пользователя
[root@centos8 ~]# cat /etc/shadow
root:$6$YGvvIZaEe.CzK00h$hdl/09uSQ19nMv/ckjbiPQj7Er5P5rhCpFiCVIRFfvL/LrP2OWHOVjIWFSf49XjEiYUsLx7n0rpy/Alxyj4IX/::0:99999:7:::
bin:*:18078:0:99999:7:::
daemon:*:18078:0:99999:7:::
<...>
tcpdump:!!:18268::::::
admin:$6$TCph1GHALnERxce.$f/iSPJynr5Pm2loplT7ZuE1zM690B2sHM0p7xzAPyAXMDB.JdN0iTimzWuwHztE9plDCp5.L.S9zly1Rue5Xf/::0:99999:7:::
/etc/group используется для хранения атрибутов групп
Число за x - держатель пароля группы, более неиспользуемая функция
bill - пользователь, для которого эта группа является secondary
Все пользователи являются членами primary группы, которая обозначена в GID в /etc/paswd, остальные группы для него будут secondary
[root@centos8 ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
<...>
slocate:x:21:
tcpdump:x:72:
admin:x:1000:bill
docker:x:976:
cgred:x:975:
Особенности групп
Каждый пользователь должен быть членом хотя бы одной группы
Принадлежность к Primary группе управляется через etc/passwd
Primary группа пользователя становится и владельцем файла, который создает пользователь
Secondary группы управляются через etc/groups
Команда id показывает принадлежность пользователя к группе
Создание и управление группами
groupadd - добавление групп
groupdel - удаление групп
groupmod - изменение параметров групп
lid -g <groupname> - показать пользователей в заданной группе
Управление паролями
Базовые требования к паролям хранятся в etc/login.defs
Для расширенных атрибутов могут быть использованы Pluggable Authentication Modules (PAM)
pam_tally2
chage - изменить пароль пользователя
[root@centos8 ~]# chage bill
Changing the aging information for bill
Enter the new value, or press ENTER for the default
Minimum Password Age [0]: 3
Maximum Password Age [99999]: 9
Last Password Change (YYYY-MM-DD) [2020-02-23]:
Password Expiration Warning [7]: 7
Password Inactive [-1]:
Account Expiration Date (YYYY-MM-DD) [-1]: 2020-02-28
passwd также позволяет управлять паролями (блокировка\разблокировка)
Last updated
Was this helpful?