Как сменить пользователя Ubuntu
Операционная система Ubuntu рассчитана на то, чтобы её использовали от имени одного определенного пользователя. Менять пользователя в процессе работы приходится не так уж часто. Обычно вы вводите логин и пароль при входе в систему, а затем пользуетесь ею пока не придёт пора выключать компьютер.
Если надо выполнить какие-либо действия с административными привилегиями, то для этого есть sudo. Однако иногда надо сменить пользователя Ubuntu. В этой статье мы поговорим о том как сделать это в графическом интерфейсе и в терминале.
Как сменить пользователя в Ubuntu
Сначала кликните по значку выключения в правом верхнем углу экрана и выберите там пункт Завершить сеанс или Сменить пользователя:

Затем подтвердите завершение сеанса или смену:

Далее перед вами откроется обычное окно входа, где вы сможете выбрать пользователя из списка или ввести его логин в поле ввода. Затем вы снова окажетесь на рабочем столе Ubuntu.
Теперь давайте поговорим как выполняется смена пользователя в терминале. Для этого надо использовать команду su. Например, чтобы сменить пользователя на losst достаточно выполнить:
Утилита запросит пароль пользователя losst после чего откроет командную строку от его имени:

Если вы хотите, чтобы путь к домашней папке и все другие переменные окружения для пользователя обновились используйте опцию -l или —login. Вместо неё также можно просто добавить чёрточку «-«. Например:

Если выполнить утилиту без параметров, то вы войдете от имени пользователя root. Но поскольку пароль root не задан по умолчанию, то следует добавить перед ней sudo:

В таком случае иногда целесообразнее использовать опцию -i команды sudo:
В этой статье мы рассмотрели как поменять пользователя в Ubuntu, как видите, здесь всё очень просто. Если остались вопросы, спрашивайте в комментариях!
Команда su в Linux
В процессе работы у пользователя часто возникает задача выполнить команду с иными привилегиями. Например, когда он желает установить новую программу, обновить систему, настроить сетевой экран и др. В этом случае ему приходит на помощь команда su в Linux.
Данная команда заменяет пользователя оболочки shell на указанного. Фактически происходит запуск нового экземпляра оболочки с указанными параметрами. Благодаря этому возможно, не выходя из системы, совершенно безболезненно повышать возможности управления операционной системой или наоборот ограничивать их.
Команда su Linux
Команда имеет следующий синтаксис:
su [options] [-] [user]
Если вызов команды происходит без аргументов, то происходит смена пользователя оболочки shell на суперпользователя root. Программа выдаст приглашение ввода пароля, если пароль будет верным, то текущим пользователем станет root.
- options — некоторые дополнительные возможности команды. Мы их рассмотрим ниже:
- [-] — смена контекста выполнения оболочки на контекст указанного пользователя. Переменные $PATH, $HOME, $SHELL, $USER, $LOGNAME содержат значения, характерные для указанного пользователя. Домашняя папка пользователя меняется на другую.
- user — имя пользователя, под которым продолжит работать командная оболочка.
Основные опции команды su:
- -c, —command=command — запускает приложение под указанным аккаунтом;
- -s, —shell=shell— происходит запуск для заданного пользователя указанной оболочки;
- -, -l, —login — смена контекста выполнения на контекст заданного пользователя, аналогична смене пользователя системы для shell;
- -g, —group=group — вызов пользователя, состоящего в заданной группе. Используется только для пользователя root;
- -h, —help — вызов справки для команды.
Далее давайте рассмотрим примеры работы с утилитой su.
Примеры использования su
Смена пользователя на суперпользователя root, без смены окружения оболочки:

Обратите внимание, что здесь вам нужно набрать пароль не своего пользователя, а именно того, от имени которого вы хотите авторизоваться. В данном случае, пользователя root. Если вы получаете ошибку сбой при проверке подлинности su linux, то это может означать, что либо вы ввели пароль неверно, либо пароль для этого пользователя не задан. Такое можно встретить у пользователя root в Ubuntu и Linux Mint. Информацию о том как установить пароль вы можете найти в этой статье. Смена пользователя на суперпользователя root со сменой параметров окружения оболочки:

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

Смена пользователя на пользователя user01 со сменой окружения:

Запуск оболочки zsh для пользователя user01:
su -s /usr/bin/zsh user01


Запуск оболочки bash из оболочки zsh для пользователя user01:
su -s /usr/bin/bash user01

Запуск файлового менеджера Midnight Commander для пользователя user01:


Просмотр содержимого директории boot суперпользователем root:

Чтобы выйти из оболочки, открытой командой su можно использовать встроенную команду exit или сочетание клавиш Ctrl+d.

Выводы
Сегодня вы узнали что из себя представляет команда su linux, которая позволяет запустить оболочку от имени другого пользователя, как со сменой окружения, так и без. Узнали как выйти из этой оболочки.
Были рассмотрены различные варианты использования данной команды: для получения прав суперпользователя root, для смены командной оболочки, для выполнения конкретной команды или пакета от имени указанного пользователя.
Команда usermod в Linux
Управление пользователями системы и их основными и дополнительными группами – одна из важных задач при администрировании Linux. С ней отлично справляется встроенная команда usermod.
В этой статье будет рассмотрена команда usermod Linux. Сначала мы разберем её синтаксис и опции, а затем перейдем к конкретным примерам её использования, которые могут оказаться для вас полезными.
Синтаксис и опции usermod
Утилита usermod нужна для управления пользователями Linux, их основными и дополнительными группами. При ее выполнении в терминале нужно указать опции и конкретного пользователя, к которому применяются изменения. Синтаксис здесь следующий:
$ usermod опции имя_пользователя
Рассмотрим опции, которые будут использоваться в этой статье:
- —a, —append – добавить пользователя в одну или несколько дополнительных групп. Опция будет работать только вместе с опцией -G.
- —b, —badnames – разрешить использование имен, которые не соответствуют стандартам.
- —d, —home – указать новое местоположение домашнего каталога пользователя. При использовании опции -m содержимое текущего домашнего каталога будет перемещено на новое место.
- —e, —expiredate – указать дату, при наступлении которой учетная запись будет отключена. Дата вводится в формате ГГГГ-ММ-ДД. Если использовать эту опцию без указания даты, то отключение пользователя будет отменено.
- —f, —inactive – установить количество дней для блокировки пользователя, которое должно пройти после устаревания пароля. При значении -1 опция блокировки отключается, а при значении 0 блокировка случится сразу же после устаревания.
- —g, —gid – выбрать новую основную группу для пользователя и для файлов в его домашнем каталоге. Нужно задать имя или номер новой группы.
- —G, —groups – указать список дополнительных групп, в которые должен входить пользователь. Между собой группы разделяются запятой. Если пользователь входит в дополнительную группу, которая не была указана в списке, то он будет из нее удалён. Но при использовании опции -a можно добавлять новые дополнительные группы, не удаляя старые.
- —l, —login – изменить имя пользователя на новое. Данная опция не затрагивает никакие другие данные. А значит, название домашнего каталога и почты придется изменять вручную, чтобы они совпадали с новым именем пользователя.
- —L, —lock – заблокировать пароль пользователя. Эта опция помещает символ ! (восклицательный знак) перед паролем в зашифрованном виде, отключая его. Данную опцию нельзя использовать с -p и -U.
- —m, —move-home – изменить местоположение домашнего каталога пользователя. Опция будет работать только вместе с -d. Утилита попытается обновить права собственности на файлы и скопировать режимы, ACL и расширенные атрибуты.
- —o, —non-unique – разрешить заменить идентификационный номер пользователя на не уникальное значение. Работает в паре с опцией -u.
- —p, —password – изменить пароль в зашифрованном виде.
- —R, —root – выполнить chroot в указанный каталог и использовать его вместо корневого каталога / с хранящимися в нем конфигурационными файлами.
- —s, —shell – указать новую командную оболочку shell для пользователя. При использовании опции -s с пустым значением будет выбрана оболочка по умолчанию.
- —u, —uid – изменить параметр UID (числовой идентификатор пользователя). Данные изменения автоматически применятся к почтовому ящику и содержимому домашнего каталога. Для остальных файлов UID придется изменять вручную.
- —U, —unlock – разблокировать пароль пользователя. Данная опция убирает символ ! (восклицательный знак) перед паролем в зашифрованном виде, разрешая использовать его для входа. Не сработает с -p и -L.
Все доступные опции с исходным описанием для данной утилиты вы можете просмотреть в терминале, выполнив следующую команду:
На этом вводная часть статьи завершена. Теперь самое время рассмотреть конкретные примеры использования данной утилиты для администрирования группами в Linux.
Примеры использования usermod
Разберем типовые задачи, которые могут пригодиться вам для управления учетными записями на компьютере или ноутбуке.
1. Изменить основную группу
Посмотреть список всех групп, доступных в системе, можно в файле /etc/group, например, с помощью редактора vi в терминале:

Для смены основной группы нужна опция -g. Синтаксис здесь следующий:
$ usermod -g имя_основной_группы имя_пользователя
Задача – изменить основную группу для пользователя test_user на test_group (GID – 1001). Так будет выглядеть команда в нашем случае:
sudo usermod -g test_group test_user

Затем можно проверить что изменения применились с помощью команды id. В результатах вывода команды id нам интересен пункт GID. А еще вместо названия группы можно использовать ее идентификатор GID (1001 в нашем случае):
sudo usermod -g 1001 test_user
2. Добавить в группу
Допустим пользователь gregory2 обладает ограниченными правами, ведь используется в редких случаях для удаленного управления системой. Его нужно включить в группу plugdev, чтобы иметь полный доступ ко внешним устройствам, например, подключенным по USB жестким дискам. Сначала проверим его текущие группы командой:

С этой задачей поможет параметр —G. Но его обязательно нужно использовать вместе с -a, чтобы добавить новую группу, не удаляя старые:
sudo usermod -a -G plugdev gregory2

Более подробная инструкция по добавлению пользователя в группу с помощью команды usermod описана в отдельной статье. Теперь вы знаете как добавить пользователя в группу usermod.
3. Удалить из группы
Дальше давайте рассмотрим как удалить пользователя из группы usermod. Эта утилита не слишком хорошо справляется с удалением пользователя из групп, ведь нужной опции в ней просто нет. Но с помощью -G можно указать, в каких дополнительных группах пользователь останется, чтобы удалить все остальные.
В качестве примера возьмем уже упомянутую учетную запись gregory2. Задача – оставить ее только в группе disk, убрав cdrom и plugdev. В таком случае нужно для usermod задать опцию -G и ту группу, которая останется:
sudo usermod -G disk gregory2

А если вы хотите удалить все дополнительные группы для конкретного пользователя, передайте опции -G пустое значение:
sudo usermod -G «» gregory2

В подробностях удаление пользователя из группы мы рассказывали в отдельной статье. Помимо утилиты usermod, в ней разобрана работа с gpasswd и deluser.
4. Изменить домашнюю папку
Чтобы увидеть текущий адрес домашней папки конкретно пользователя, посмотрите содержимое файла /etc/passwd, например, с помощью утилиты grep:
grep gregory2 /etc/passwd
Конкретный каталог выводится с первым символом / (косая черта).

Здесь стоит отдельно рассмотреть два сценария: выбор другого местоположения для домашнего каталога и перемещение текущего домашнего каталога со всем его содержимым на новое место.
Если вы хотите просто изменить домашнюю папку, то воспользуйтесь опцией -d, указав новый адрес. Утилита автоматически создаст папку, если ее нет. В качестве примера возьмем путь /home/new-dir:
sudo usermod -d /home/new-dir gregory2

Проверим изменения с помощью уже упомянутой утилиты grep:
grep gregory2 /etc/passwd

А если вы хотите переместить домашнюю папку, сохранив все содержимое, то дополните опцию -d опцией -m, опять же, указав новый путь. В качестве примера возьмем путь /home/gregory-new:
sudo usermod -m -d /home/gregory-new gregory2

Проверить местоположение новой папки можно с помощью grep, а убедиться в копировании содержимого – через файловый менеджер Linux.
5. Изменить оболочку
Просмотреть весь список доступных в системе оболочек получится в файле /etc/shells. Откройте его в редакторе vi:

Просмотреть оболочку конкретного пользователя можно в уже упомянутом файле /etc/passwd:
grep gregory2 /etc/passwd
Нужная информация идет после домашнего каталога.

Для того чтобы поменять оболочку shell используйте опцию -s. В качестве примера возьмем оболочку /usr/bin/dash:
sudo usermod -s /usr/bin/dash gregory2

6. Изменить UID
UID – числовой идентификатор пользователя. Для его просмотра воспользуйтесь утилитой id:

Для изменения этого значения нужна опция -u. При этом новый номер должен быть неотрицательным (число 0 допустимо) и уникальным. В качестве примера возьмем 9138:
sudo usermod -u 9138 gregory2

Вы можете задать неуникальный номер UID, добавив к исходной команде опцию —o. В качестве примера возьмем идентификатор 0, который по умолчанию закреплен за группой root:
sudo usermod -o -u 0 gregory2
Не забывайте, что данные изменения автоматически применяются только к домашнему каталогу с его содержимым и к почтовому ящику.
7. Изменить логин
Для изменения логина (имени) пользователя предназначена опция -l. Но при этом она не затрагивает название домашнего каталога. Если вас это устраивает, то можете воспользоваться ей. Синтаксис:
$ sudo usermod -l новое_имя старое_имя
Вот как это выглядит с пользователем gregory2, которого нужно переименовать в gregory3:
sudo usermod -l gregory3 gregory2

Ну а еще вы можете использовать эту команду вместе с перенесением домашней папки, например, в /home/gregory3:
sudo usermod -l gregory3 -m -d /home/gregory3 gregory2

8. Изменить пароль
Опция —password предназначена для изменения пароля в зашифрованном виде. А значит, так просто ей воспользоваться не получится. Необходимо добавить к ней команду openssl passwd для шифрования пароля. Для того чтобы изменить пароль на xz3 выполните:
sudo usermod —password $(openssl passwd -6 ‘xz3’) gregory

В результате пароль изменится сразу же после ее выполнения.
9. Заблокировать пользователя
Для блокировки пользователя пригодится опция -L, которая блокирует вход по паролю:
sudo usermod -L gregory2
При использовании этой опции перед паролем пользователя в файле /etc/shadow добавляется восклицательный знак и пользователь не сможет больше войти в систему по паролю. Однако, другие способы входа ещё доступны. Для полной блокировки учетной записи к команде нужно добавить опцию —expiredate со значением 1:
sudo usermod —expiredate 1 -L gregory2

Для отмены блокировки в таком случае сработает команда с опциями -U и -e с пустым значением:
sudo usermod —expiredate «» -U gregory2
А еще с помощью —expiredate можно указать точную дату для блокировки в формате ГГГГ-ММ-ДД. Вот как будет выглядеть команда для 28 января 2023 года:
sudo usermod —expiredate 2023-01-28 gregory2
Посмотреть срок действия учетной записи получится через утилиту chage с опцией -l:
sudo chage -l gregory2

Выводы
Команда usermod linux позволяет достаточно удобно управлять группами пользователей, а также менять информацию о нём. Ну а если вы хотите более подробно разобраться с самими группами и их устройством в различных дистрибутивах Linux, ознакомьтесь с этим материалом. В нем детально рассмотрена эта тема, место хранения файла с группами и другая полезная информация.
How to Switch Users in Ubuntu

Running as root and want to switch to a normal user or vice versa?
Or perhaps you want to switch to a test user you had created earlier.
In its simplest form, you can change to another user in this way:
Ubuntu 18.04 Review of New Features
Please enable JavaScript
su other_username
A few things you should know here:
- If you were logged in as a normal user, you’d be asked to enter the password of the other user
- The root user can switch to other users without needing the passwords of those accounts
- If you have sudo access, you can use sudo su other_username to switch user without the password of the other user
By the way, a better way to switch users with their own login shell and environment would be to use the option -l :
su -l other_username
Intrigued? Let’s see all the above in detail, along with a few additional tips and use cases on switching users in Ubuntu.
️ You need to know the exact username to which you need to switch to. You can list the users in Ubuntu with the following command and get the desired username from the bottom of its output:
compgen -u
Switching to a normal user from root user
If you are running as the root user, you can simply switch to the other user with its name:
su other_username

You can switch back to your logged-in user by entering:
exit
![]()
Switch to another user from a regular user
If you are logged in as a regular user and want to switch to another user, you can use the same command that you saw previously.
su other_username
However, it will ask for the password of the other_username . Remember that nothing is displayed on the screen when you type the password.

If you do not know the password of the other user account, there is still a way around it. If you are a sudo user, you can use the sudo command, enter your own account’s password and then change to the other user without entering its password.
sudo su other_username

Again, to switch to the user abhishek, I used sudo with user abhi’s password.
If you use su without any username, you switch to the root user.
Switching users into their login shell
Did you notice that when you switched the users, the starting point was the same working directory where you used the su command?
You can start from the other user’s home directory when you switch to it. Just use the -l option.
su -l other_username
This way, you start a shell as the login shell of the other user.

You can use -p option instead of -l to preserve the environment instead of testing them in the new shell.
![]()
Switch to root user
There are several ways to switch to the root user. Since we are discussing the su command here, let’s use that only.
If you know the root password, you can switch to root user simply with:
When asked, enter the root password:
abhi@learnubuntu:/root$ su Password: root@learnubuntu:~#
If you don’t know the root password but have sudo access (default sudo configuration that comes in most Ubuntu system), you can switch to the root user like this:
sudo su
When asked for the password, enter your account’s password:
abhi@learnubuntu:~$ sudo su [sudo] password for abhi: root@learnubuntu:/home/abhi#
Bonus tip: Run a command as another user
If the entire idea of switching to another user is to run a command, you don’t necessarily change the user accounts.
You can use the -c and run the given command as another user:
su -c command_to_run user_name
The command should be a single argument and hence you should keep it under quotes.
root@learnubuntu:/home/abhishek# su -c "touch a.txt" abhishek root@learnubuntu:/home/abhishek# ls -l a.txt -rw-rw-r-- 1 abhishek abhishek 0 Aug 23 07:56 a.txt root@learnubuntu:/home/abhishek#
I hope you like this handy Ubuntu tutorial.