Изменение учётной записи

Изменение учётной записи #

Васильев Андрей Михайлович, 2024

Версии презентации


Смена активного пользователя #

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

  • Конкретный пользователь может иметь права на выполнение действия или имеет доступ к данным
  • Суперпользователь может выдать права на выполнение действий пользователям

Возможные способы смены активной учётной записи

  • Открыть новую сессию от имени нового пользователя
  • Подключиться к текущему компьютеру с помощью ssh
  • Воспользоваться приложениями su или sudo

Удобными инструментами являются последние приложения su и sudo, т.к. они позволяют быстро выполнить данную задачу

Важно с помощью непродуманного использования данных приложений можно привести систему в неработоспособное состояние


Приложение su #

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

$ su --help
Usage:
 su [options] [-] [<user> [<argument>...]]
  • -, -l, --login указывает, что необходимо заново инициализировать окружение для целевого пользователя
  • user имя целевого пользователя, root если не было указано

Получение прав суперпользователя:

$ su -
Пароль:
#

Необходимо ввести пароль суперпользователя


Работа от имени суперпользователя #

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

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

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

Запуск одной команды #

С помощью флага -c можно передать нужную команду на исполнение

$ su -c 'ls /root/*'
Пароль:
/root/empty-file
$

Расширение пути будет выполнено с правами суперпользователя


Приложение sudo #

Приложение sudo работает во многих аспектах как команда su, однако

  • Для каждого пользователя может быть указан список команд, которые он может выполнить от имени другого пользователя
  • Для части команд запрос пароля может быть отключён
  • Для запуска команды может потребоваться как пароль текущего пользователя, так и пароль целевого пользователя
  • Конфигурация находится в файле /etc/sudoers/ и каталоге /etc/sudoers.d
  • Если для выполнения команд требуется ввод пароля суперпользователя, тогда его необходимо будет ввести 1 раз в 5 минут или до истечения сессии

Бездумное использование sudo приводит к быстрой поломке системы. Пользователи вместо обдумывания своих действий начинают выполнять их с помощью sudo


Подсистема control в ALT Linux #

В ALT Linux предприняты дополнительные защитные меры от доступа к критичным службам, это реализовано в подсистеме control

По умолчанию для доступа к приложениям, повышающим привилегии пользователя, необходимо входить в группу wheel

Суперпользователь может просматривать политики и настраивать их


Настройка sudo в ALT Linux #

В ALT Linux создаваемый пользователь не указан в конфигурации sudo и не может ей пользоваться, однако там находится группа wheel

Для добавления вашего пользователя в группу wheel выполните

  1. Зайдите в интерактивную сессию под пользователем root
  2. Выполните добавление: usermod -a -G wheel USER, где USER — имя вашей учётной записи
  3. Закройте сессии от имени суперпользователя и пользователя, затем подключитесь заново. При следующем входе пользователю присвоятся корректные группы

Дополнительно подумайте как можно было бы сделать это действие без интерактивной сессии

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


Использование sudo #

$ sudo ls /root
[sudo] пароль для andrey:
empty-file
$ sudo ls /root
empty-file
  • sudo ls /root — запустить ls с правами root для просмотра каталога /root
  • sudo -l — узнать какие привилегии доступны текущему пользователю
  • sudo -i [-u user] — запустить интерактивную сессию под целевым пользователем
  • sudo -K — завершить сессию

Изменение владельцев файлов #

Для изменения владельца и группы для файлов используется приложение chown

> chown --help
Использование: chown [ПАРАМЕТР]… [ВЛАДЕЛЕЦ][:[ГРУППА]] ФАЙЛ…
       или:    chown [ПАРАМЕТР]… --reference=ОФАЙЛ ФАЙЛ…
Смена владельца и группы указанного ФАЙЛА на ВЛАДЕЛЬЦА и/или ГРУППУ.

Примеры указания нового владельца

Аргумент Результат
bob изменить только владельца у целевого файла на пользователя bob
bob:users изменить владельца на bob, изменить группу на users
:admins изменить только группу на admin, владелец не меняется
bob: изменить владельца на bob, изменить группу на группу по умолчанию пользователя bob

Примеры изменения владельца #

Рассмотрим следующую ситуацию

$ touch source
$ ls -l source
-rw-r--r-- 1 andrey andrey 0 окт  6 17:38 source
$ su
Password:
# cp source destination
# exit
$ ls -l destination
-rw-r--r-- 1 root root 0 окт  6 17:38 destination
$ su
Password:
# chown nobody: destination
# exit
$ ls -l destination
-rw-r--r-- 1 nobody nobody 0 окт  6 17:38 destination

Смена пароля пользователя #

Для смены пароля пользователя можно воспользоваться приложением passwd

$ passwd --help
Использование: passwd [параметры] [ПОЛЬЗОВАТЕЛЬ]

Обычный пользователь может сменить только свой пароль

Суперпользователь может изменить пароль любого пользователя


Управление списком пользователей #

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

  • useradd, приложение для добавления пользователя в систему
  • userdel, приложение для удаления пользователя из системы
  • usermod, приложение для настройки пользователя
  • groupadd, приложение для добавления групп
  • groupdel, приложение для удаления групп
  • groupmod, приложение для настройки групп

© A. M. Васильев, 2025, CC BY-SA 4.0, andrey@crafted.su