Как войти в систему как другой пользователь в терминале?

10

В настоящее время я вошел в систему как обычный пользователь в OS X.

Я хотел бы начать сеанс терминала и войти в систему как пользователь foo.

Это возможно?

Мацек
источник
1
Вы пробовали использовать su - foo?
Крафтан

Ответы:

16

Вы пробовали использовать su - foo?

Обновление на основе комментариев:

Пустой -говорит suсделать полный вход в систему. Это означает (со страницы руководства),

Среда отбрасывается за исключением HOME, SHELL, PATH, TERM и USER. ДОМ и ОБОЛОЧКА изменены, как указано выше. ПОЛЬЗОВАТЕЛЬ установлен на целевой логин. PATH установлен в `` / bin: / usr / bin ''. СРОК импортируется из вашей текущей среды. Вызванная оболочка является целевым логином, и su изменит каталог на домашний каталог целевого логина.

Таким образом, если вам нужны какие-либо другие переменные окружения, например, DISPLAYдля открытия программ, использующих сервер окон, вы должны опустить пустой -.

kraftan
источник
Логин работает нормально, но я попытался, mate myfileи я получаю сообщение об ошибке «Не удалось подключиться к WindowServer». Это не критическое исправление, но было бы здорово, чтобы это работало.
Мацек
2
@macek: Это потому, что к терминалу не подключен Window Server (aqua). Если пользователь в данный момент вошел в графическую среду, попробуйте open -a TextMate myfile.
Георг Шолли
1
@macek: Я не уверен, но, возможно, su fooмог бы сделать это. Опущение -сохраняет значения переменных среды.
Крафтан
Спасибо вам за помощь. @kraftan, возможно, обновите ответ, чтобы включить оба с кратким объяснением. :)
macek
@ Георг, похоже, это не сработало.
Мацек
0

На MacOS X используйте login


$ login
логин: your username
пароль: your password
последний логин: день месяц дата ЧЧ: ММ: СС на ttys000
$ whoami
ваше имя пользователя

У меня были проблемы с запуском nanoпосле использования su - admin для редактирования .bashrcфайла. При настройке размера окна текст будет искажен. Ответ, который я нашел ниже, объясняет почему и привел меня в правильном направлении.

«Эмулятор терминала отправит сигнал изменения окна (SIGWINCH) в оболочку, которая была запущена вместе с эмулятором терминала. Предполагается, что оболочка передает его своим дочерним элементам, но при переходе на другую учетную запись пользователя (с использованием su или иным образом), она не сможет сигнализировать об этой оболочке, потому что она запускается от имени другого пользователя. Поэтому оболочка su'd и все программы, запускаемые из нее, будут продолжать использовать старый размер окна, не обращая внимания на тот факт, что реальное окно размер изменился. " - TelcoM

Джон
источник
-1

Я пробовал suмного раз, но мне sudoбыло легче. Ты можешь попробовать

sudo -u <username>
iPav
источник
У моего sudo, кажется, нет -uвыбора
Xiao