Зайти от другого пользователя линукс

Команда 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, которая позволяет запустить оболочку от имени другого пользователя, как со сменой окружения, так и без. Узнали как выйти из этой оболочки.

Читайте также:  Load linux on ramdisk

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

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Команда Su в Linux (переключение пользователя)

Утилита su (сокращение от замены или переключения пользователя) позволяет запускать команды с привилегиями другого пользователя, по умолчанию пользователя root.

Использование su — самый простой способ переключиться на административную учетную запись в текущем сеансе входа в систему. Это особенно удобно, когда пользователю root не разрешено входить в систему через ssh или с помощью диспетчера отображения графического интерфейса.

В этом руководстве мы объясним, как использовать команду su .

Как использовать команду su

Общий синтаксис команды su следующий:

При вызове без каких-либо параметров по умолчанию su запускает интерактивную оболочку от имени пользователя root:

Вам будет предложено ввести пароль root, и в случае аутентификации пользователь, выполняющий команду, временно станет пользователем root.

Переменные среды сеанса ( SHELL ) и home ( HOME ) устанавливаются из замещающей записи пользователя /etc/passwd , и текущий каталог не изменяется.

Чтобы подтвердить изменение пользователя, используйте команду whoami :

Команда выведет имя пользователя, запустившего текущий сеанс оболочки:

Наиболее часто используемый параметр при вызове su — это — ( -l , —login ). Это делает оболочку оболочкой входа в систему со средой, очень похожей на реальный вход в систему, и меняет текущий каталог :

Если вы хотите запустить другую оболочку вместо той, которая определена в файле passwd , используйте параметр -s , —shell . Например, чтобы переключиться на root и запустить оболочку zsh , вы должны ввести:

Чтобы сохранить всю среду ( HOME , SHELL , USER и LOGNAME ) вызывающего пользователя, вызовите команду с параметром -p , —preserve-environment .

Когда — опция используется, -p игнорируется.

Если вы хотите запустить команду от имени замещающего пользователя без запуска интерактивной оболочки, используйте параметр -c , —command . Например, чтобы вызвать команду ps от имени пользователя root, вы должны ввести:

Чтобы переключиться на другую учетную запись пользователя, передайте имя пользователя в качестве аргумента su . Например, чтобы переключиться на пользователя tyrion вы должны ввести:

Судо против Су

В некоторых дистрибутивах Linux, таких как Ubuntu, учетная запись пользователя root по умолчанию отключена по соображениям безопасности. Это означает, что пароль для root не установлен, и вы не можете использовать su для переключения на root.

Один из вариантов изменения на root — это добавить к команде su sudo и ввести пароль текущего пользователя:

Команда sudo позволяет запускать программы от имени другого пользователя, по умолчанию root.

Если пользователю предоставлена sudo Assessment, команда su вызывается от имени пользователя root. Запуск sudo su — и последующий ввод пароля пользователя имеет тот же эффект, что и запуск su — и ввод пароля root.

При использовании с параметром -i sudo запускает интерактивную оболочку входа в систему со средой пользователя root:

sudo -i в основном аналогичен запуску su — .

Преимущество использования sudo перед su заключается в том, что пароль root не должен использоваться несколькими учетными записями административных пользователей.

Читайте также:  Включить ssh oracle linux

С помощью sudo вы также можете разрешить пользователям запускать только определенные программы с привилегиями root.

Выводы

su — это утилита командной строки, которая позволяет вам временно стать другим пользователем и выполнять команды от имени замещающего пользователя.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Как сменить пользователя Ubuntu

Операционная система Ubuntu рассчитана на то, чтобы её использовали от имени одного определенного пользователя. Менять пользователя в процессе работы приходится не так уж часто. Обычно вы вводите логин и пароль при входе в систему, а затем пользуетесь ею пока не придёт пора выключать компьютер.

Если надо выполнить какие-либо действия с административными привилегиями, то для этого есть sudo. Однако иногда надо сменить пользователя Ubuntu. В этой статье мы поговорим о том как сделать это в графическом интерфейсе и в терминале.

Как сменить пользователя в Ubuntu

Сначала кликните по значку выключения в правом верхнем углу экрана и выберите там пункт Завершить сеанс или Сменить пользователя:

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

Далее перед вами откроется обычное окно входа, где вы сможете выбрать пользователя из списка или ввести его логин в поле ввода. Затем вы снова окажетесь на рабочем столе Ubuntu.

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

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

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

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

В таком случае иногда целесообразнее использовать опцию -i команды sudo:

В этой статье мы рассмотрели как поменять пользователя в Ubuntu, как видите, здесь всё очень просто. Если остались вопросы, спрашивайте в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

How to switch between users on one terminal?

I’d like to log in as a different user without logging out of the current one (on the same terminal). How do I do that?

I asked a similar question, because I ran into issues with XDG environment variables ( $XDG_RUNTIME_DIR in particular) that were driving me nuts. -> unix.stackexchange.com/questions/354826/…

10 Answers 10

How about using the su command?

$ whoami user1 $ su - user2 Password: $ whoami user2 $ exit logout 

If you want to log in as root, there’s no need to specify username:

$ whoami user1 $ su - Password: $ whoami root $ exit logout 

Generally, you can use sudo to launch a new shell as the user you want; the -u flag lets you specify the username you want:

$ whoami user1 $ sudo -u user2 zsh $ whoami user2 

There are more circuitous ways if you don’t have sudo access, like ssh username@localhost, but sudo is probably simplest, provided that it’s installed and you have permission to use it.

Читайте также:  Linux количество оперативной памяти команда

I am getting this error «-su: /dev/stderr: Permission denied» after executing this command echo >>/dev/stderr on a login with su —login . , any tip? I found this btw unix.stackexchange.com/questions/38538/…

Does this allow each new user to have different, overriding values for environment variables? e.g. git config for work, open source, etc.

One finding, when I listed the env it saw that everything was in order as well as a visual inspection can go; And one thing was incorrect: XAUTHORITY=/home/user1/.Xauthority’. Not sure _why_? So X-window doesn’t work by default because the protection on ~/.Xauthority` file is: -rw——- . I made a copy and that let me run gedit as an experiment.

Generally you use sudo to launch a new shell as the user you want; the -u flag lets you specify the username you want:

[mrozekma@etudes-1 ~] % whoami mrozekma [mrozekma@etudes-1 ~] % sudo -u nobody zsh [nobody@etudes-1 ~] % whoami nobody 

There are more circuitous ways if you don’t have sudo access, like ssh username@localhost , but I think sudo is probably simplest if it’s installed and you have permission to use it

sudo -s gives you a shell like su , sudo -i simulates login like su — . Can be combined with -u $user , of course.

much more efficient. being able to «login» as a user who can’t normally login is a great asset. totally allowed me to run a database instance without messing with permissions or selinux

This command prints the current user. To change users, we will have to use this command (followed by the user’s password):

After entering the correct password, you will be logged in as the specified user (which you can check by rerunning whoami .

If you’re running Ubuntu, and if the user you want to login as doesn’t have a password set:

Enter your own password and you should be set. Of course, this requires that your user has rights to gain root privileges with sudo .

To switch the terminal session to a different user, where that user can’t exit back into the original user, use exec:

This will technically login the new user in a new term process, and close out the current one. That way when the user attempts exit or Ctrl-D, the terminal will close as though that user was the one who instantiated it, i.e., the user can’t exit back into the original user’s term. Kind of pointless, considering they can still just start a new terminal session and automatically be in the original user term login, but there it is.

EDIT: For what it’s worth, you can use linux vlock command in your ~/.bashrc to lock terminal sessions by default, requiring the password of the term session user to unlock. This would somewhat prevent the aforementioned term restart under the original user context, given the term isn’t instantiated using the non-default ~/.bashrc of the user, as configured.

Источник

Оцените статью
Adblock
detector