Команда su в Linux

Linux 命令大全Коллекция команд Linux

Команда Linux su (полное английское название: switch user) используется для смены идентификатора пользователя. Кроме root, необходимо ввести пароль этого пользователя.

Права: все пользователи.

Синтаксис

su [选项] [用户名]

Например:

su              # 切换到root,保持当前环境
su -            # 切换到root,加载root的完整环境
su root         # 明确指定切换到root用户

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

su username
su - username
su -l username

Описание параметра:

  • -или-lили--login: Обеспечить среду, аналогичную прямому входу
  • -c command: Выполнить указанную команду и затем выйти
  • -s shell: Указать используемую оболочку
  • -pили--preserve-environment: Сохранить текущие переменные среды

Примеры

Временно выполнить команду от имени root:

su -c "apt update && apt upgrade" root

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

su - www-data
su -s /bin/bash www-data  # 如果默认shell是/bin/false

Использование в скриптах:

su - postgres -c "psql -c 'SELECT version();'"

Выход из сеанса su:

exit        # 退出当前su会话
Ctrl+D      # 同样可以退出

Разница между su и su -

su(Переключатель без входа в систему):

  • Сохраняет переменные окружения текущего пользователя
  • Рабочий каталог не изменяется
  • Переменные окружения, такие как PATH, остаются неизменными

su -(Переключатель входа в систему):

  • Загружает полное окружение целевого пользователя
  • Переключается в домашний каталог целевого пользователя
  • Сбрасывает переменные окружения, такие как PATH и HOME
  • Выполняет сценарии входа целевого пользователя

Пример сравнения

# 当前用户:john,工作目录:/home/john
pwd                    # /home/john
echo $HOME            # /home/john

su root
pwd                   # /home/john (目录未变)
echo $HOME           # /home/john (环境未变)
exit

su - root
pwd                  # /root (切换到root家目录)
echo $HOME          # /root (完整环境)
exit

Разница между su и sudo

Характеристика su sudo
Требуется пароль Пароль целевого пользователя Пароль текущего пользователя
Длительность сеанса До ручного выхода Одна команда или кратковременное кэширование
Сложность конфигурации Простая Требуется настройка sudoers
Безопасность Необходимо знать пароль root Более тонкий контроль разрешений
Аудит Ограниченно Более подробные журналы

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


Вопросы безопасности

  • Избегайте совместного использования пароля root
  • Используйтеsu -Обеспечьте полное переключение окружения
  • Своевременно завершайте сеансы su
  • Отдавайте приоритет использованию sudo в производственных средах
  • Отслеживайте журналы использования su (обычно в /var/log/auth.log)

Linux 命令大全Коллекция команд Linux

Другие расширения