Обзор
`su` используется для выполнения команд от имени другого пользователя или для переключения в оболочку другого пользователя в текущей сессии. По умолчанию, если целевой пользователь не указан, команда пытается переключиться на пользователя root.
Основные возможности
- Смена идентификатора пользователя: Изменяет права текущего пользователя на права другого пользователя.
- Пользователь по умолчанию: Если имя пользователя не указано, по умолчанию предпринимается попытка переключения на пользователя root.
- Аутентификация по паролю: Для смены прав необходимо ввести правильный пароль целевого пользователя.
- Смена окружения: С помощью опций `-` или `-l` можно полностью переключиться в среду входа целевого пользователя.
Основные опции
Команда `su` позволяет управлять способом смены пользователя и выполняемыми командами с помощью различных опций.
Опции смены пользователя
Опции выполнения команды
Сгенерированная команда:
Комбинируйте команды.
Описание:
`su` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Примеры использования
Различные способы использования команды `su` помогут вам освоить смену пользователя и выполнение конкретных команд.
Переключение на пользователя root (без смены оболочки входа)
su
По умолчанию переключает на пользователя root, но не загружает среду оболочки входа root. Некоторые переменные окружения текущего пользователя могут быть сохранены.
Переключение на пользователя root с загрузкой оболочки входа
su -
Переключает на пользователя root и полностью загружает среду оболочки входа root (PATH, домашний каталог и т.д.). Это наиболее распространенный и рекомендуемый способ.
Переключение на конкретного пользователя с загрузкой оболочки входа
su -l username
Переключает на указанного пользователя 'username' и загружает среду оболочки входа этого пользователя.
Выполнение команды от имени root с последующим возвратом
su -c "ls -la /root"
Выполняет команду `ls -la /root` от имени root и автоматически возвращается к исходному пользователю. Окружение оболочки не изменяется.
Выполнение команды от имени другого пользователя с последующим возвратом
su username -c "whoami"
Выполняет команду `whoami` от имени пользователя 'username' и возвращается к исходному пользователю.
Советы и предостережения
Команда `su` напрямую влияет на безопасность системы, поэтому при ее использовании следует учитывать несколько важных моментов.
Рекомендации по безопасности
- Риск раскрытия пароля root: `su` требует прямого ввода пароля root. Если этот пароль будет скомпрометирован, вся система окажется под угрозой. `sudo` использует пароль самого пользователя и позволяет предоставлять права только на определенные команды, обеспечивая более детальный контроль. В целом, использование `sudo` предпочтительнее.
- Рекомендуется использовать оболочку входа: Рекомендуется использовать `su -` (с дефисом), чтобы полностью загрузить среду оболочки входа целевого пользователя. Это гарантирует правильную настройку PATH, переменных окружения и других параметров, предотвращая неожиданные проблемы и обеспечивая работу в том же окружении, что и целевой пользователь.
- Избегайте ненужного использования root: После завершения необходимых задач немедленно вернитесь к своему пользователю командой `exit`. Длительная работа под root может представлять угрозу для системы.
- Проверка логов: Записи об использовании `su` сохраняются в системных журналах (например, `/var/log/auth.log` или `/var/log/secure`). Для аудита безопасности рекомендуется периодически проверять эти журналы.