Как сменить пользователя в Linux — su, sudo и графический интерфейс

Краткий обзор: зачем и когда менять пользователя
Linux — многопользовательская система. Переключение между пользователями нужно для:
- выполнения административных действий под superuser (root);
- доступа к файлам или окружению другого пользователя;
- тестирования настроек под учётной записью с ограниченными правами;
- организации рабочих сессий на одной машине (несколько одновременных логинов).
Опции зависят от задачи: интерактивная работа требует полноценной сессии (su), выполнение одной команды — sudo -u, а если нужен рабочий стол — используйте возможности окружения рабочего стола.
su — полная смена сессии
Команда su (substitute user) позволяет «стать» другим пользователем в текущей сессии. Основной синтаксис:
su [опции] [имя_пользователя]Если имя пользователя не указано, su по умолчанию пытается переключиться на root:
suЧтобы переключиться на конкретную учётную запись:
su testusersu запросит пароль целевого пользователя, если он задан. После успешной аутентификации вы получите интерактивную консоль от имени этого пользователя.
Проверка результата:
whoami
echo $USERNAMEОжидаемый вывод:
testuserЕсли вам нужно выполнить одну команду от имени другого пользователя, используйте флаг -c:
su -c 'chmod +w /Downloads' testuserДобавление дефиса (-) при вызове su создаёт «login»-окружение целевого пользователя: переменные окружения, домашняя директория и начальный шелл будут соответствовать его настройкам:
su - testuserЧтобы сменить оболочку при переключении:
su testuser -s /bin/zshВажно: su требует знания пароля целевой учётной записи (если не используется root без пароля). На современных дистрибутивах часто рекомендуется sudo вместо su для более тонкой гранулярности прав.
sudo -u — выполнять команды от имени другого пользователя
sudo был спроектирован для безопасного делегирования отдельных команд и аудита. Для смены пользователя применяют опцию -u:
sudo -u username commandПримеры:
sudo -u testuser chmod 777 /Documents
sudo -u testuser /bin/zshЕсли нужно просто войти в оболочку от имени другого пользователя и у вас есть соответствующие права в /etc/sudoers, можно запустить:
sudo -i -u testuserОтличия и советы:
- sudo более аудитируем: записи в журнале укажут, кто и когда выполнял команду;
- su даёт полную сессию целевого пользователя, sudo по умолчанию выполняет отдельную команду;
- используйте sudo для делегирования отдельных задач без передачи пароля целевого пользователя;
- настройка через visudo позволяет ограничить конкретные команды для группы пользователей.
Графическая смена пользователя (GNOME и KDE)
Если вы работаете в графическом окружении, переключиться между пользователями можно через интерфейс рабочего стола. Это удобно, когда нужно быстро перейти на другой сеанс без закрытия текущих программ.
Как переключиться в GNOME:
- Нажмите на стрелку вниз в правом верхнем углу экрана.
- Выберите пункт «Выключение/Выйти» (Power Off/Log Out) или аналогичный пункт меню.
- Нажмите «Сменить пользователя».
GNOME выведет список доступных учётных записей. Выберите нужную и введите пароль для входа.
Как переключиться в KDE Plasma:
- Откройте Меню приложений (Application Launcher).
- В правом нижнем углу нажмите «Выход».
- В появившемся меню выберите «Сменить пользователя».
После этого вы попадёте на экран входа — выберите учётную запись стрелками и введите пароль.
Примечание: в других окружениях (XFCE, MATE, Cinnamon) схожая логика: меню пользователя → выход → смена пользователя.
Таблица сравнения: su vs sudo vs GUI
| Сценарий | su | sudo -u | GUI (GNOME/KDE) |
|---|---|---|---|
| Интерактивная сессия другого пользователя | Да | Частично (через запуск оболочки) | Да (новый сеанс) |
| Выполнение одной команды | Менее удобно | Удобно, аудит | Не применимо |
| Требует пароль цели | Да (обычно) | Нет (использует пароль инициатора или политику sudo) | Да (пароль целевой сессии) |
| Аудит и логирование | Ограничено | Подробный через sudo журналы | Зависит от системы |
Частые проблемы и как их решать
- su: «Authentication failure» — проверьте правильность пароля и принадлежность пользователя к /etc/passwd; убедитесь, что root доступен.
- sudo: «user is not in the sudoers file» — используйте root или другого администратора, чтобы добавить запись в /etc/sudoers через visudo.
- GUI: отсутствует кнопка «Сменить пользователя» — проверьте настройки входа/выхода или используйте дисплейный менеджер (gdm, sddm) для включения переключения пользователей.
- Права на файлы недоступны после su - — учтите, что окружение и переменные сменились; проверьте HOME и $PATH.
Важно: при переключении между пользователями процессы, запущенные от имени одного пользователя, сохраняют свои привилегии. Нельзя «позаимствовать» запущенный GUI-процесс от другого пользователя без специальных средств.
Безопасность и лучшие практики
- Минимизируйте прямой вход в root; вместо этого предоставляйте права через sudo с ограничением команд.
- Отключайте прямой root-доступ по SSH и используйте sudo для удаленной администрирования.
- Ограничивайте список команд в /etc/sudoers, когда это возможно (пример: команда для перезапуска службы, но не общий shell).
- Ведите аудит: используйте rsyslog/journald для логов sudo и мониторьте попытки аутентификации.
Короткий чек-лист безопасности для администратора:
- Проверить, кому разрешён sudo (группа sudo/adm).
- Запретить root-login по SSH.
- Настроить логирование sudo.
- Ограничить доступ к /etc/sudoers через visudo.
Ментальные модели: когда выбирать инструмент
- Если нужно «полностью стать» другим пользователем и работать как он — su (- или без дефиса для сохранения окружения).
- Если нужно безопасно выполнять одну команду от имени другого — sudo -u.
- Если требуется быстро перейти на рабочий стол другого пользователя — GUI переключение.
Мини-методология для администраторов
- Оцените задачу: интерактивная сессия или одноразовая команда.
- Если одноразовая команда — используйте sudo -u.
- Если нужно тестировать окружение пользователя — су - username или sudo -i -u username.
- Для пользователей, не имеющих пароля, настройте sudoers вместо передачи пароля.
- Проверьте результат командой whoami и переменными окружения.
Критерии приёмки (тесты)
- При переключении на пользователя testuser команда whoami возвращает testuser.
- При выполнении sudo -u testuser id -u возвращается uid testuser.
- При использовании su - testuser переменная $HOME соответствует домашней директории testuser.
- Графическое переключение переводит на экран входа и позволяет войти под другой учётной записью без завершения фоновых задач текущего пользователя.
Быстрая шпаргалка: команды
# Войти как root
su
# Сменить на пользователя testuser (интерактивно)
su testuser
# Сменить и получить login-окружение
su - testuser
# Выполнить команду от имени другого пользователя
su -c 'command' testuser
sudo -u testuser command
# Получить интерактивную оболочку через sudo
sudo -i -u testuser
# Проверки
whoami
id
echo $HOMEГлоссарий (1 строка)
- su — смена пользователя в текущей сессии;
- sudo — выполнение команд с повышенными правами по политике конфигурации;
- login-окружение — набор переменных и начальных настроек пользователя при входе.
Когда подходы не работают — галерея крайних случаев
- Удалённый сервер без настроенного sudo и без доступа к root: потребуется физический доступ или загрузка в single-user режим.
- Локальная система с отключённым GUI: используйте tty и команды su/sudo.
- Шелл целевого пользователя недоступен (отсутствует в /etc/shells): su -s может не сработать; проверьте доступные оболочки.
Резюме
Переключение между пользователями в Linux — базовый навык администратора и пользователя. Для интерактивной работы используйте su, для одиночных команд — sudo -u, а для рабочего стола — возможности GNOME, KDE и других окружений. Всегда отдавайте предпочтение минимально необходимым привилегиям и настраивайте аудит действий через sudo.
Важно: протестируйте выбранный метод на тестовой учётной записи перед применением в продакшн-среде.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента