Como fazer login como um usuário diferente no terminal?

10

Atualmente, estou logado como um usuário normal no OS X.

Eu gostaria de iniciar uma sessão de terminal e fazer login como usuário foo.

Isso é possível?

macek
fonte
11
Você já tentou usar su - foo?
Kraftan

Respostas:

16

Você já tentou usar su - foo?

Atualização com base nos comentários:

O vazio -indica supara fazer um login completo. Isso significa (na página de manual),

O ambiente é descartado, exceto HOME, SHELL, PATH, TERM e USER. HOME e SHELL são modificados como acima. USER está definido para o login de destino. PATH está definido como `` / bin: / usr / bin ''. TERM é importado do seu ambiente atual. O shell chamado é o login de destino e su mudará o diretório para o diretório inicial do login de destino.

Portanto, se você precisar de outras variáveis ​​de ambiente, como DISPLAYabrir programas que usem o servidor de janelas, precisará omitir o vazio -.

kraftan
fonte
O login funciona bem, mas tentei mate myfilee estou recebendo o erro "falha ao conectar-se ao WindowServer". Esta não é uma correção crítica, mas seria ótimo fazer isso funcionar.
macek
2
@macek: Isso ocorre porque não há um Servidor de Janela (aqua) conectado ao terminal. Se o usuário estiver conectado no momento no ambiente gráfico, tente open -a TextMate myfile.
Georg Schölly
11
@macek: Não tenho certeza, mas talvez su foopossa fazê-lo. Omitir o -mantém as variáveis ​​de ambiente dos valores.
Kraftan
Obrigado pela ajuda. @ kraftan, talvez atualize a resposta para incluir os dois com uma breve explicação. :)
macek
@ Georg, isso não parecia funcionar.
macek
0

No MacOS X, use login


$ login
login: your username
senha: your password
Último login: Dia Mês Data HH: MM: SS em ttys000
$ whoami
seu nome de usuário

Eu estava tendo problemas para executar nanodepois de usar su - admin para editar um .bashrcarquivo. Ao ajustar o tamanho da janela, o texto fica distorcido. A resposta que encontrei abaixo explica o motivo e me levou na direção correta.

"O emulador de terminal enviará um sinal de mudança de janela (SIGWINCH) para o shell que foi iniciado junto com o emulador de terminal. O shell deve transmiti-lo aos filhos - mas quando você fizer a transição para outra conta de usuário (usando su ou não), ele não será capaz de sinalizar esse shell porque está sendo executado como um usuário diferente, portanto o shell su'd e quaisquer programas executados continuarão usando o tamanho da janela antiga, alheio ao fato de que a janela real tamanho mudou. " - telcoM

John
fonte
-1

Eu tentei sumuitas vezes, mas achei sudomais fácil. Podes tentar

sudo -u <username>
iPav
fonte
Meu sudo não parecem ter uma -uopção
Xiao