How do I log out of `sudo su`?
I’m using sudo su to start mysql and do some homework with it. When I finish with mysql (or any other command), then I’m still in sudo . How do I «log out», so my prompt changes back from # to $ ?
exit or a simple Ctrl+D. I remember when I first discovered the latter and my life got ten times simpler 😀 .
Apart from the good answers below there remains one point: if you need a shell with root permissions on Ubuntu you type sudo -i (and leave it with CTRL+D)
6 Answers 6
You don’t need to use sudo and su together— su switches your user account (without arguments it switches you to root). sudo just elevates your privileges to root for the current command.
It’s reccomended to use sudo instead of su if possible, but to return to your normal account after calling su , simply use the exit command
There are differences between sudo su , sudo and su , and it’s worth knowing those differences for safety reasons but also for your convenience. johnkpaul.tumblr.com/post/19841381351/su-vs-sudo-su-vs-sudo-u-i
@Rob but still it may not set the environment in a desired way — use sudo -i instead (in Ubuntu the root account is disabled by default = there exists no valid password)
to get back to your user level (or a different user)
Or just press Ctrl + D to exit out of root
@Ram — you made an important point. But there’s a typo in your comment. It should be exit (not exist).
if your stuck after using sudo su as root: to exit use this command
There isn’t any reason to use sudo or su to run the MySQL command-line client. It defaults to using your current Unix user as your MySQL user, but instead you should pass it the user you want to connect to as arguments:
$ mysql -u root # connect as MySQL's root user (without password) $ mysql -u root -p # -p means prompt for a password
Hopefully, your MySQL root account has a password, and you’ll need to use the second form.
Other than that, if you need to run MySQL under sudo (e.g., for file permissions) then do it like this:
$ sudo -u unix-user mysql -u mysql-user -p
You can leave out the arguments (sudo will default to user root, MySQL will default to using the same user as sudo).
Как мне выйти из `sudo su`?
Я использую sudo su чтобы запустить mysql и сделать с ним домашнюю работу. Когда я заканчиваю с помощью mysql (или любой другой команды), я все еще в sudo . Как мне «выйти», чтобы моя подсказка изменилась с # на $ ?
4 ответа 4
Вам не нужно использовать sudo и su вместе — su переключает вашу учетную запись (без аргументов переключает вас в root). sudo просто повышает ваши привилегии до root для текущей команды. Рекомендуется использовать sudo вместо su если это возможно, но чтобы вернуться к обычной учетной записи после вызова su , просто используйте команду exit
чтобы вернуться к вашему уровню пользователя (или другому пользователю) Или просто нажмите Ctrl-D, чтобы выйти из корня
Нет никаких причин использовать sudo или su для запуска клиента командной строки MySQL. По умолчанию используется текущий пользователь Unix в качестве пользователя MySQL, но вместо этого вы должны передать ему пользователя, к которому вы хотите подключиться, в качестве аргументов:
$ mysql -u root # connect as MySQL's root user (without password) $ mysql -u root -p # -p means prompt for a password
Надеемся, что у вашей корневой учетной записи MySQL есть пароль, и вам нужно будет использовать вторую форму.
Кроме этого, если вам нужно запустить MySQL под sudo (например, для доступа к файлам), сделайте это так:
$ sudo -u unix-user mysql -u mysql-user -p
Вы можете не указывать аргументы (по умолчанию sudo будет пользователем root, MySQL будет использовать того же пользователя, что и sudo).
Команда 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:
Запуск оболочки bash из оболочки zsh для пользователя user01:
Запуск файлового менеджера Midnight Commander для пользователя user01:
Просмотр содержимого директории boot суперпользователем root:
Чтобы выйти из оболочки, открытой командой su можно использовать встроенную команду exit или сочетание клавиш Ctrl+d.
Выводы
Сегодня вы узнали что из себя представляет команда su linux, которая позволяет запустить оболочку от имени другого пользователя, как со сменой окружения, так и без. Узнали как выйти из этой оболочки.
Были рассмотрены различные варианты использования данной команды: для получения прав суперпользователя root, для смены командной оболочки, для выполнения конкретной команды или пакета от имени указанного пользователя.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.