1.86M
Category: softwaresoftware

Lect_5

1.

Лекция 5.

2.

Переключение пользователей
Команда su предоставляет возможность пользователям переключаться на
другой пользовательский аккаунт.
При запуске su от имени обычного пользователя будет предложено ввести
пароль того аккаунта, на который выполняется переключение. При запуске su
от имени root-пользователя необходимость ввода пароля отсутствует.
Если имя пользователя после команды su не указано, то выполняется
переключение на root-пользователя.
Команда su запускает non-login shell (без смены пользовательского окружения).
Команда su - запускает login shell (со сменой пользовательского окружения).

3.

Запуск команд с использованием “sudo”
В некоторых случаях аккаунт root-пользователя из соображений безопасности
может находиться в отключенном состоянии, т.е. нельзя выполнить log in в
систему с вводом пароля или получить интерактивный shell через команду su.
Единственное средство получения root-доступа в этом случае – команда sudo.
Команда sudo повышает привилегии текущего пользователя до привилегий
root-пользователя при выполнении конкретной команды.
В отличие от su, при использовании команды sudo пользователь должен
вводить свой собственный пароль, а не пароль root’а.
Sudo может быть настроена специфическим образом, т.е. давать возможность
определенным пользователям запускать некоторые конкретные команды.

4.

Логирование попыток sudo-запусков
При попытке запуска неразрешенной команды:
1) попытка запуска будет заблокирована;
2) попытка запуска будет зафиксирована в Log-файле;
3) пользователю root будет отправлен внутрисистемный e-mail.
Все команды, выполненные через sudo, по умолчанию фиксируются
в /var/log/secure.

5.

Использование sudo для запуска shell
В Red Hat Linux версий 7 и 8 все пользователи группы wheel могут использовать
sudo для запуска любых команд с полными привилегиями.
Используя sudo при этом не зная пароль root’а можно запустить интерактивный
shell root-пользователя. Для этого используется: sudo su - .
Другой способ запустить интерактивный shell root-пользователя: sudo -i.
Команды sudo su - и sudo -i практически не различаются по результатам
применения. Незначительные отличия будут только в переменной среды PATH.
В курсе даются рекомендации использовать sudo su -.

6.

Конфигурирование sudo
Главный конфигурационный файл для sudo - /etc/sudoers.
Для его корректировки в Linux существует специальная команда visudo.
Следующая строка файла /etc/sudoers включает sudo-доступ для пользователей
группы wheel:
В данной строке %wheel - это пользователь или группа, к которым применяется
правило. Символ % определяет группу (в данном случае wheel).
Запись ALL=(ALL) означает, что с любого узла может быть запущена любая
команда. Последняя запись ALL означает, что команда может быть запущена
в сессии любого пользователя.
По умолчанию файл /etc/sudoers включает и учитывает содержимое всех файлов
в директории /etc/sudoers.d/. Это дает возможность не корректировать файл
/etc/sudoers, а добавлять/удалять отдельные файлы в /etc/sudoers.d/ для
управления sudo-привилегиями.

7.

Управление локальными пользователями
Команда useradd username создает нового локального пользователя с именем
username. При этом создается пользовательская домашняя директория;
одноименная первичная группа, в которую включается создаваемый
пользователь; а также строка с информацией об аккаунте в файле /etc/passwd.
Однако не создается пароль для входа пользователя. Пока пароль не будет
создан, пользователь не сможет войти в систему.
Команда useradd --help позволяет просмотреть базовые опции команды
useradd. В большинстве случаев они совпадают с опциями команды usermod,
которая позволяет модифицировать существующие аккаунты.
При создании пользователей многие важные опции (диапазоны номеров UID и
GID, параметры устаревания паролей и др.) считываются из файла /etc/login.defs.
Требования к сложности задаваемых паролей определяются в файле
/etc/security/pwquality.conf.

8.

Изменение учетных записей пользователей
Базовые опции команды usermod:

9.

Удаление учетных записей пользователей
Команда userdel username удаляет запись о пользователе из файла /etc/passwd.
Команда userdel -r username удаляет запись о пользователе из файла
/etc/passwd, а также домашний каталог пользователя из /home/ и системный
e-mail-каталог (если имеется) из /var/spool/mail/.
Удаление пользователей в Linux (особенно командой userdel без опции -r) может
привести к возникновению файлов с «неассоциированными» UID-номерами,
когда система не знает имени владельца файла.
Так как процедура создания нового пользователя в Linux использует первый
свободный UID-номер, то вновь созданный пользователь может стать
владельцем некоторых файлов, принадлежавших ранее удаленному
пользователю.
Этот факт может стать причиной утечки информации и должен отслеживаться!

10.

Пример возникновения утечки информации
В примере пользователь user02 стал владельцем домашнего каталога
(со всем содержимым) удаленного ранее пользователя user01.
Поиск файлов и каталогов с «неассоциированными» UID- и GID-номерами
в файловой системе выполняется командой find / -nouser -o -nogroup.

11.

Установка пароля пользователя
Команда passwd username используется для установки первоначального пароля
пользователя или изменения существующего. Команда может использоваться
без аргумента, тогда она применяется к текущему пользователю.
Пользователь root может задать любой пароль, в том числе не соответствующий
минимальным требованиям безопасности:
Обычный (regular) пользователь может задавать пароль только в соответствии
с требованиями безопасности.

12.

Управление локальными группами
Группа должна существовать до добавления в нее пользователя.
Команда groupadd groupname создает группу с именем groupname.
При этом будет использован первый свободный GID-номер из диапазона,
заданного в файле /etc/login.defs.
Команда groupadd -g 10000 groupname создает группу с конкретным
GID-номером. Рекомендуется использовать GID-номер, существенно
отличающийся от 1000+ (т.к. номера 1000+ удобно использовать по порядку
в качестве номеров Primary-групп при создании пользователей).
Команда groupadd -r groupname создает группу с GID-номером из системного
диапазона. Данный диапазон задается значениями SYS_GID_MIN (по
умолчанию 201) и SYS_GID_MAX (по умолчанию 999) в файле /etc/login.defs.
При этом использование системных номеров начинается с 999 и идет в
сторону уменьшения.

13.

Создание локальной группы (примеры)
Создание группы с заданным пользовательским GID-номером:
Создание группы с системным GID-номером:

14.

Изменение локальной группы
Команда groupmod модифицирует группу. Опция -n изменяет имя группы:
Опция -g определяет новый GID-номер:
Команда groupdel удаляет группу:
Нельзя удалить группу, если она является Primary хотя бы у одного пользователя

15.

Изменение членства пользователя в группе
Команда usermod -g меняет Primary-группу для пользователя:
Команда usermod -aG добавляет пользователя в Supplementary-группу:
Использование опции -a заставляет команду usermod работать в режиме
добавления аргумента. Без данной опции пользователь будет удален из всех
supplementary-групп и помещен только в указанные группы.

16.

Управление пользовательскими паролями
Изначально в Linux зашифрованные пользовательские пароли хранились в файле
/etc/passwd (сейчас в этом месте в каждой строке файла размещен символ x),
однако этот файл доступен для чтения всем пользователям.
Поэтому пароли были вынесены в файл /etc/shadow, который доступен для
чтения только пользователю root. Также в /etc/shadow были добавлены политики
временного управления паролями.
Каждая строка в файле /etc/shadow (как и файле /etc/passwd) соответствует
конкретному пользователю.

17.

Описание полей в /etc/shadow
1) имя пользователя;
2) зашифрованный пароль;
3) день, когда пароль последний раз был изменен (день с 01.01.1970,
можно вычислить командой echo $(($(date +%s)/(60*60*24))));
4) минимально необходимое число дней использования пароля до его
возможного изменения;
5) максимальное число дней использования пароля до его истечения
(пустое поле - пароль не зависит от времени последнего изменения);
6) warning период. Пользователь будет предупрежден о необходимости
смены пароля;
7) inactivity период. Сколько дней еще можно будет выполнить log in;
8) конкретный день истечения срока действия пароля;
9) зарезервированное поле.

18.

Описание формата пароля в /etc/shadow
1) тип алгоритма хэширования (тип 6 - SHA512, тип 5 - SHA256, тип 1 - MD5);
2) значение «соли», выбранное для шифрования пользовательского
пароля. Это значение генерируется в системе случайным образом;
3) хэш-значение пользовательского пароля, полученное с использованием
алгоритма из поля 1 с учетом значения «соли» из поля 2.
Применение «соли» предотвращает факт получения идентичных хэш-значений
при использовании одинаковых паролей разными пользователями системы.

19.

Конфигурирование временнЫх
параметров пароля
Команда chage применяет временные политики к хранящимся паролям.
Опции команды приведены на рисунке.

20.

Конфигурирование временнЫх
параметров пароля (примеры)
chage -d 0 user03 - заставить пользователя user03 обновить пароль
при последующем входе в систему.
chage -l user03 -вывод на экран актуальных временных политик
пароля пользователя user03.
chage -E 2021-08-05 user03 установка даты истечения пароля
пользователя user03.
Для расчета конкретной даты относительно текущей по количеству дней
удобно использовать команду date:

21.

Ограничение доступа пользователя в систему
usermod -L user03 - заблокировать аккаунт пользователя user03 (сделать его
пароль неработоспособным);
usermod -U user03 - разблокировать аккаунт пользователя user03;
usermod -L -e 2021-10-05 user03 - заблокировать аккаунт пользователя user03
(сделать его пароль неработоспособным) и установить дату фактического
истечения срока действия пароля (когда разблокировать уже будет бесполезно);
usermod -s /sbin/nologin user03 - запретить пользователю user03 любой
интерактивный доступ в систему.
English     Русский Rules