Я'хотел бы войти в систему под другим пользователем, не выходя из текущего (на том же терминале). Как мне это сделать?
Как насчет использования команды su
?
$ whoami
user1
$ su - user2
Password:
$ whoami
user2
$ exit
logout
Если вы хотите войти в систему как root, нет необходимости указывать имя пользователя:
$ whoami
user1
$ su -
Password:
$ whoami
root
$ exit
logout
Вообще, вы можете использовать sudo
для запуска новой оболочки от имени нужного вам пользователя; флаг -u
позволяет вам указать нужное вам имя пользователя:
$ whoami
user1
$ sudo -u user2 zsh
$ whoami
user2
Если у вас нет доступа к sudo, есть более простые способы, например, ssh username@localhost, но sudo
, вероятно, самый простой, при условии, что он установлен и у вас есть разрешение на его использование.
Обычно вы используете sudo
для запуска новой оболочки под нужным вам пользователем; флаг -u
позволяет вам указать нужное вам имя пользователя:
[mrozekma@etudes-1 ~] % whoami
mrozekma
[mrozekma@etudes-1 ~] % sudo -u nobody zsh
[nobody@etudes-1 ~] % whoami
nobody
Есть и более простые способы, если у вас нет доступа к sudo, например ssh username@localhost
, но я думаю, что sudo
- самый простой, если он установлен и у вас есть разрешение на его использование.
$ whoami
Эта команда выводит текущего пользователя. Для смены пользователя необходимо использовать эту команду (с последующим указанием пароля пользователя):
$ su secondUser
Password:
После ввода правильного пароля вы войдете в систему как указанный пользователь (что можно проверить, повторно выполнив команду whoami
.
Если вы'ре под управлением Ubuntu, и если пользователю необходимо войти в систему как не'т иметь набор пароля:
sudo su - username
Введите свой пароль и вы должны быть установлены. Конечно, это требует, что ваш пользователь имеет права для получения прав суперпользователя на <код>В судо</код>.
Для переключения терминала в другой пользователь, где пользователь может'т выйти обратно в исходную пользователей, использовать метод exec: и GT; $|# старпома Су - [имя пользователя]
Это будет технически логин нового пользователя в новый длительный процесс, и закрыть текущий. Таким образом, когда пользователь пытается покинуть или Ctrl-D, то терминал будет как будто близко, что пользователь тот, кто создается, т. е., пользователь может'т выйти обратно в оригинал пользователя's в перспективе. Вроде бессмысленно, учитывая, что они еще могут просто начать новую сессию терминала и автоматически быть в оригинальной термин логин, но ничего не поделаешь.
Редактировать: За то, что он's стоит, вы можете использовать команду vlock Linux в ваш ~/.bashrc и блокировка сеанса по умолчанию, требуя пароль срок сеанса пользователя, чтобы разблокировать. Это несколько мешает вышеуказанного срока перезагрузите под исходный контекст пользователя, учитывая срок, это'т, который создается с помощью по умолчанию ~/.инструменты и библиотеки пользователя, как настроить.
Еще один маршрут для запуска новой оболочки, а другой (не-root) пользователю выполнять команды от имени этого пользователя.
ubuntu@aws-ip:~$ sudo -u mongodb bash #<-- or zsh, etc...
mongodb@aws-ip:~$ mongod --configsvr --dbpath /data/configdb --fork
Примером этого является пользователем хранилище
. При развертывании кластера MongoDB в сегментированной, все необходимые процессы должны работать как в MongoDB и это's не надо (или совсем удобный) для демонизации процессов с помощью скриптов init для десятков узлов.
Давайте получить это прямо: вы вошли в систему как пользователь " А " и хотят, чтобы "логин" и как пользователь Б выполнять некоторые команды, но хотелось бы вернуться до усера, когда закончите. Для простоты я предполагаю, что вы хотите запустить команду ls-л /tmp в качестве пользователей userb. Если вы не хотите оставить текущую командную оболочку пользователя usera а выполнить команду пользователя " Б " и по-прежнему оставаться в системе в качестве пользователя usera, вы должны сделать это:
su - UserB -c "ls -l /tmp" <-- Just an example
Это предполагает, что вы знаете пароль для пользователей userb. Однако, если вы не знаете пользователей userb'ы пароль, вам нужно знать пароль root. Затем:
sudo su - UserB -c "ls -l /tmp" <-- UserB's pw not needed here
Если вы предпочитаете временно войти как пользователь Б, чтобы выполнить много команд, тогда просто сделай:
sudo su - UserB
Это даст вам новую оболочку для пользователей userb (проверьте, введя идентификатор). Когда это сделано, вы можете сделать сочетание клавиш Ctrl-D и вернуться к вашему логину.
Если вам нужно выполнить только одну команду, вы можете использовать sudo: `судо -у команды пользователя
~$ sudo login
Затем появится запрос пароля sudo (пользователя, вошедшего в систему'пароль).
Также: убедитесь, что текущий пользователь в файлами sudoers!