В Linux, смена пользователя в терминале — важная задача, позволяющая работать с разными учетными записями и правами доступа; Существует несколько способов сделать это, каждый из которых имеет свои особенности.
Основные команды для смены пользователя
1. Команда su
(Substitute User)
su
позволяет сменить текущего пользователя на другого. Если не указано имя пользователя, по умолчанию происходит вход под пользователем root.
Пример: su имя_пользователя
После ввода команды потребуется ввести пароль целевого пользователя.
2. Команда sudo
(Superuser Do)
sudo
позволяет выполнить команду от имени другого пользователя, обычно root. Для использования sudo
, текущий пользователь должен быть в списке sudoers.
Пример: sudo команда
Потребуется ввести пароль текущего пользователя.
3. Команда login
login
завершает текущий сеанс и предлагает ввести имя пользователя и пароль для входа в новую учетную запись.
Определение текущего пользователя
Для определения текущего пользователя можно использовать команды:
whoami
─ показывает имя текущего пользователя.id
─ отображает идентификатор пользователя (UID) и группы (GID).groups
⎻ показывает группы, в которых состоит пользователь.
Смена пользователя без выхода из сеанса
su
и sudo
позволяют сменить пользователя без завершения текущего сеанса. Это удобно для выполнения задач, требующих прав администратора, не выходя из своей учетной записи.
Важные замечания
- Будьте внимательны при использовании
sudo
, так как неправильные команды могут повредить систему. - Не забывайте выходить из учетной записи root после выполнения необходимых задач (
exit
).
Более продвинутое управление сменой пользователей
Помимо базовых команд su
и sudo
, существуют нюансы и дополнительные инструменты для более гибкого управления сменой пользователей в Linux.
Различия между su
и sudo
:
su
: Запускает новую оболочку (например,bash
илиzsh
) от имени другого пользователя. При использованииsu ─ имя_пользователя
, имитируется полныйlogin as
, включая загрузку профиля пользователя (.bashrc
,.zshrc
и т.д.). Проще говоря, это полноценное переключение пользователя. Требует знания пароля целевой учетной записи.sudo
: Позволяет выполнить отдельную пользовательскую команду с правами администратора (или другого пользователя, указанного в конфигурацииsudoers
). Не требует знания пароля целевого пользователя, но требует пароль текущего пользователя (если он входит в группу sudoers). Не меняет пользовательский сеанс, а лишь временно повышает права доступа для конкретной команды. Это смена привилегий, а не полноценная смена пользователя. как сменить пользователя в терминале linux
Использование login
и logout
:
Команды login
и logout
используются для завершения и начала пользовательского сеанса. login
, как уже упоминалось, предлагает ввести имя пользователя и пароль. logout
(или просто exit
в большинстве оболочек) завершает текущий сеанс.
Управление файлами и правами доступа после смены пользователя:
После смены пользователя, важно учитывать права доступа к файлам и директориям. Команды chown
(change owner) и chgrp
(change group) позволяют изменить владельца и группу файла или директории соответственно. Это особенно важно при работе с файлами, созданными под учетной записью root или другим пользователем.
Пример: sudo chown новый_пользователь:новая_группа файл;txt
Роль системного администратора:
Системный администратор отвечает за управление пользователями, включая создание, удаление и изменение учетных записей. Он также настраивает права доступа и определяет, кто может использовать sudo
.
Получение информации о пользователях:
Как уже упоминалось, команды whoami
, id
и groups
предоставляют важную информацию о текущем пользователе:
whoami
: Показывает имя пользователя.id
: Отображает идентификатор пользователя (UID), идентификатор группы (GID) и список групп, в которых состоит пользователь.
Безопасность при смене пользователя:
Всегда соблюдайте осторожность при использовании команд, требующих повышенных прав доступа. Неправильное использование sudo
или su
может привести к нежелательным последствиям. Регулярно проверяйте конфигурацию sudoers
и ограничивайте доступ к учетной записи root.