RDP Monster

Как сменить пользователя в Ubuntu: su, sudo и повышение привилегий

Как сменить пользователя в Ubuntu: su, sudo и повышение привилегий

Введение

Управление несколькими пользовательскими аккаунтами и переключение между ними — фундаментальная часть администрирования Linux. Ubuntu — самый популярный Linux-дистрибутив в мире — предлагает несколько способов сменить активного пользователя, каждый со своими случаями применения и последствиями для безопасности. Понимание этих механизмов даёт эффективные многопользовательские сценарии, безопасные административные операции и грамотное управление привилегиями.

Это полное руководство охватывает все способы смены пользователя в Ubuntu — от базовых CLI-приёмов до продвинутых техник эскалации привилегий. Будь то общие системы, административные задачи или мульти-тенантные среды, умение переключать пользователей — ключевой навык для уверенной работы с Ubuntu.

 

Управление пользователями в Ubuntu

Типы учётных записей пользователей

Обычные пользователи: Стандартные учётные записи с ограниченными привилегиями, ограниченным доступом к файлам и невозможностью изменять системную конфигурацию.

Пользователь root: Суперпользователь с неограниченным доступом ко всем системным ресурсам, способный выполнить любую операцию, включая опасные.

Системные пользователи: Специальные учётные записи для системных служб (www-data для веб-серверов, mysql для баз данных).

Пользователи sudo: Обычные учётные записи с делегированными привилегиями суперпользователя через конфигурацию sudo.

Эскалация привилегий

Why Escalate?: Most administrative tasks require elevated privileges. Rather than logging in as root (dangerous), Ubuntu uses privilege escalation to grant specific elevated permissions temporarily.

Принципы: Выполнять операции с минимально необходимыми привилегиями; минимизировать время повышенного доступа; аудировать все привилегированные операции.

 

Команда su (Switch User)

Базовый синтаксис

su [OPTIONS] [USERNAME]
Switching to Another User
su john
Prompts for the target user’s password, then switches to that account. The environment remains the user’s original environment (not recommended).

Смена пользователя с новой средой

su - john


The hyphen (-) loads the complete environment of the target user, including:

  • Переменная HOME, указывающая на домашний каталог пользователя

  • Переменная PATH с командными путями пользователя

  • Файлы конфигурации оболочки (.bashrc, .profile)

  • Рабочий каталог изменён на home пользователя

Best Practice: Always use su - to ensure proper environment configuration.


Переключение на пользователя root

su -


Переключает на пользователя root с полной средой root. Запрашивает пароль root.

Параметры команды su

-c (Command): Execute single command as another user without full session

su - john -c "ls -la /home/john"

-l (Login): Identical to using hyphen; creates login shell

su --login john

 

-s (Shell): Указать оболочку для сессии

su - john -s /bin/zsh

 

-m (Preserve environment): Keep current environment while switching

su -m john

Команда sudo (Superuser Do)

Базовый синтаксис
sudo [OPTIONS] COMMAND


Выполнение команды с повышенными привилегиями

sudo apt-get update # Update package lists (requires root)
sudo systemctl restart ssh # Restart SSH service
sudo reboot # Reboot system


Запуск интерактивной root-оболочки

sudo -i

Запускает интерактивную root-оболочку без входа в систему как root.

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

sudo -u username command

Выполняет команду с привилегиями указанного пользователя (не только root).


Параметры команды sudo

-l (List): Display allowed commands

sudo -l

-k (Invalidate): Clear sudo credentials (requires password on next use)

sudo -k

 

-p (Prompt): Custom password prompt

sudo -p "Enter admin password: " apt-get update
-v (Validate): Extend sudo timeout
sudo -v

 

-H (Home): Set HOME to target user’s home

sudo -H -u username command

su – vs su: ключевые отличия

Функция su su –
Среда Сохраняет окружение родительской оболочки Загружает среду целевого пользователя
Переменная HOME Остаётся в home исходного пользователя Переходит в home целевого пользователя
Переменная PATH Может содержать пути исходного пользователя Содержит стандартные пути целевого пользователя
Конфиг оболочки Не загружает .bashrc или .profile Загружает ~/.bashrc, ~/.profile
Рабочий каталог Остаётся в текущем каталоге Переходит в home пользователя
Рекомендуется Редко; возможна путаница Всегда при смене пользователя
Уровень риска Выше (смешанные среды) Ниже (чистая среда)

 

Пример различия

# С помощью su (BAD)
$ su john
Password:
$ echo $HOME
/root # Still shows original home!
$ pwd
/path/to/original # Still in original directory
# С помощью su - (GOOD)
$ su - john
Password:
$ echo $HOME
/home/john # Correct home directory
$ pwd
/home/john # Correct directory

Переключение на пользователя root

С помощью su

su - Password: (enter root password)
root@hostname:~#

С помощью sudo

sudo -i
[sudo] password for john: (enter john's password)
root@hostname:~#

Различия между su – и sudo -i

Аспект su – sudo -i
Требуется пароль Пароль root Пароль текущего пользователя
Логирование Не логируется Регистрируется sudo
Аудит-трейл Минимальный Полный аудит-трейл
Безопасность Ниже (требует совместного использования пароля root) Выше (индивидуальная подотчётность)
Типичная корпоративная установка Не рекомендуется Recommended

Security Note: Modern Ubuntu systems typically don’t require root password; instead, sudoers are granted authority through sudo configuration.

 

Запуск команд от имени другого пользователя

Выполнить одну команду

sudo -u apache /usr/bin/apache2ctl restart
su - testuser -c "python /home/testuser/script.py"

Запуск нескольких команд

sudo bash -c "echo 'Line 1' > /tmp/file; cat /tmp/file"

Запуск команд с сохранением текущего каталога

sudo -u john pwd # Prints john's home (working directory changed)
sudo -u john -C pwd # Prints current directory (with -C flag)

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

Изменить свой пароль

passwd

Запрашивает текущий пароль, затем новый пароль (дважды для подтверждения).

Изменить пароль другого пользователя (требуется root)

sudo passwd john

Текущий пароль не требуется; запрашивает новый пароль (полномочия root).

Установить политику истечения срока

sudo chage -l john # View password aging info
sudo chage -M 90 john # Force password change every 90 days
sudo chage -d 0 john # Force password change on next login

Права пользователей и группы

Просмотр групп пользователей

groups john # Show groups current user belongs to
groups # Show own groups
id john # Detailed UID, GID, groups

Добавить пользователя в группу

sudo usermod -aG groupname username

 

Example: Add user to sudo group

sudo usermod -aG sudo john

Удалить пользователя из группы

sudo deluser username groupname

Создать нового пользователя

sudo useradd -m -s /bin/bash newuser
sudo passwd newuser

Options:

  • -m: Create home directory

  • -s: Specify shell

  • -G: Назначить группам

 

Практические примеры

Example 1: Administrative Task with Эскалация привилегий

#!/bin/bash
# Install software update as regular user with privilege escalation
sudo apt-get update
sudo apt-get upgrade -y
echo "System update complete"

Пример 2: Запуск задач веб-сервера

# Stop web server as specific service user
sudo -u www-data /opt/webapp/stop.sh
# Check web server permissions as www-data
sudo -u www-data ls -la /var/www/html

Пример 3: Обслуживание базы данных

# Backup database as specific user
sudo -u mysql mysqldump -u root -p database_name > backup.sql
# Run database optimization
sudo -u mysql mysql -u root -p -e "OPTIMIZE TABLE table_name;"

Пример 4: Пакетное управление пользователями

#!/bin/bash
# Create multiple users
for user in user1 user2 user3; do
sudo useradd -m -s /bin/bash "$user"
echo "Please set password for $user:"
sudo passwd "$user"
done
# Add all to sudo group
for user in user1 user2 user3; do
sudo usermod -aG sudo "$user"
done

Соображения безопасности

Безопасность паролей

Пароль root: Храните в безопасности; никогда не сообщайте ненадёжным лицам

Конфигурация sudo: Делегируйте конкретные привилегии вместо полного доступа root

Срок действия паролей: Принудительно требуйте периодической смены паролей

# Configure password aging
sudo chage -M 90 -m 1 -W 7 username
# Forces change every 90 days, minimum 1 day between changes, 7-day warning

Аудит и журналирование

All sudo commands are logged:

sudo grep COMMAND /var/log/auth.log

 

View detailed sudo history:

sudo journalctl _COMM=sudo

Restricting Эскалация привилегий

Configure sudoers file safely:

sudo visudo # Always use visudo for editing sudoers

 

Пример конфигурации sudoers (limiting what john can run):

john ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
john ALL=(ALL) /usr/bin/apt-get

Тайм-аут сессии

# Set sudo timeout
sudo -v # Extend timeout
sudo -k # Invalidate sudo credentials

Почему в удалённой инфраструктуре используют смену пользователя

Инфраструктура RDP и SSH часто требует:

  • Несколько административных пользователей с разными уровнями привилегий

  • Сервисные учётные записи для автоматизированных процессов

  • Аудит-трейлы для соответствия требованиям (журналирование sudo)

  • Повышение привилегий для административных задач

Управление инфраструктурой через RDP.Monster

Managing Ubuntu systems remotely requires robust, secure access:

SSH-доступ для выполнения команд

  • Удалённое выполнение команд переключения пользователей

  • Автоматизированное администрирование через скрипты

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

Поддержка нескольких учётных записей

  • Создание административных пользователей

  • Соответствующее делегирование привилегий

  • Поддерживайте аудит-трейлы

Безопасное удалённое администрирование

  • SSH-шифрование для всех операций смены пользователей

  • Аутентификация по ключу для программного доступа

  • Комплексное журналирование и мониторинг

Развёртывайте инфраструктуру Ubuntu VPS с безопасными возможностями управления пользователями через RDP.Monster

 

Заключение

Переключение пользователей и повышение привилегий — это фундаментальные навыки администрирования Ubuntu. Понимание различий между su, sudo и управлением паролями позволяет эффективно администрировать многопользовательские системы, сохраняя безопасность за счёт правильного делегирования привилегий и аудит-трейлов.

Современные передовые практики Ubuntu настоятельно отдают предпочтение sudo, а не su, для повышения привилегий, обеспечивая подотчётность и комплексное журналирование при минимизации совместного использования пароля root. Правильная настройка sudoers с делегированием конкретных привилегий обеспечивает отличный баланс безопасности между удобством использования и доступом control.

Managing complex Ubuntu infrastructure requiring sophisticated user management and secure administrative access? RDP.Monster provides SSH-based Ubuntu VPS solutions enabling seamless user management and privilege escalation across your infrastructure. Deploy professionally-managed Ubuntu systems today.

Мощный хостинг Ubuntu VPS

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

Dedicated Servers

Высокопроизводительные выделенные серверы

Нужны максимальный контроль и мощность? Наши выделенные серверы обеспечивают непревзойдённую производительность для самых требовательных задач.

Часто задаваемые вопросы

Что лучше — su или sudo?

В современных системах предпочтительнее sudo.

Это обеспечивает подотчётность, требует индивидуальных паролей и даёт полный аудит-трейл.

Почему у меня не работает команда su?

Возможно, вы не знаете пароль целевого пользователя.

Try sudo -u username instead if you have sudo privileges.

Можно ли менять пользователя без пароля?

Да, через sudo: настройте sudoers с NOPASSWD.

Для su пароль целевого пользователя нужен всегда.

В чём разница между su - и su --login?

Это одно и то же: обе создают login-shell с полным набором env.

Сколько действует sudo-привилегия?

По умолчанию 15 минут. Настраивается в sudoers.

Можно ли запускать несколько команд от имени другого пользователя?

Да: sudo bash -c "command1 && command2 && command3"

Как посмотреть свои sudo-разрешения?

Выполните sudo -l, чтобы увидеть разрешённые команды.

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

Используйте su -, чтобы загрузить полное окружение целевого пользователя, включая правильный PATH.

Adrien Roche — Редактор по инфраструктуре и хостингу

Системный инженер с более чем 10-летним опытом эксплуатации парков Windows Server и Linux. Адриен ведёт документацию по инфраструктуре rdp.monster и пишет наши руководства по RDP, VPS-хостингу, администрированию серверов, сетям и инструментам приватности.

Регистрация в программе для реселлеров

Ваши данные

Если у вас есть вопросы, contact us by clicking here !
Имя и фамилия(Обязательно)
Укажите ваш email — у вас должен быть аккаунт на manager.rdp.monster !

Ваша компания

Укажите адрес вашего сайта, если он у вас есть
Кратко опишите, как вы будете продавать услуги своим клиентам. Например, общаться с людьми на форумах.

Мы используем файлы cookie!

Мы используем файлы cookie, чтобы улучшить ваш опыт просмотра, предлагать персонализированную рекламу или контент и анализировать наш трафик. Нажимая «Принять», вы соглашаетесь с использованием файлов cookie.