Trocar usuário no terminal

0

Estou trocando de usuário usando o comando:

sudo su - userName

No meu terminal eu sempre tenho:

user@user directory $ (some command)

Mas quando mudo de usuário, só tenho:

$ (some commands)

É difícil explicar o que quero dizer, mas sou novo no Linux e não encontrei isso em outras perguntas. Como manter todos os dados antes de $ assinar após o relogin?

Editar: Ok funciona para mim recriou o usuário usando o comando:     nome do adduser

Mas tenho outra pergunta. Este comando cria o diretório / home, mas está vazio. Algum comando para inicializar / home para novo usuário?

    
por user2239655 30.03.2014 / 15:30

3 respostas

1

But I have another question. This command create /home directory but It is empty. Is some command to initialize /home for new user?

A solução para a segunda pergunta também resolverá a primeira. Seu novo usuário não possui todos os arquivos de configuração padrão em seu diretório inicial e, portanto, o novo shell não mostra um prompt sofisticado, etc ...

O comando padrão para criar um novo usuário e inicializa seu diretório inicial usando o conteúdo de /etc/skel is:

useradd -m

E, como já foi dito, algumas distribuições têm padrões incorretos, portanto, você pode querer adicionar mais opções:

useradd -m -s /bin/bash

Para mais detalhes, use:

man useradd

Existem algumas ferramentas de alto nível específicas para distribuições. Um exemplo, usado no Debian e afins, já foi mencionado nos comentários da sua pergunta:

adduser

Além disso, há configuração em / etc que pode fazer o useradd se comportar como useradd -m , mas é melhor aprender a usar o -m sempre para evitar ser afetado por instalações e distribuições diferentes.

Nos comentários acima, é possível definir os padrões usando o argumento -D para useradd :

useradd -D -s /path/to/default/shell
    
por 30.03.2014 / 17:14
0

Você está mudando para um usuário normal e este usuário não tem um conjunto $ PS1, mas em minha opinião você adiciona este usuário usando o comando useradd no Debian. Baseado em que por padrão o shell wen você usa useradd é sh, então você pode tente:

chsh -s /bin/bash userName

este comando irá mudar o shell para userName para / bin / bash. e tente novamente mudar para esse usuário. Se você quer mudar o shell padrão para um bash quando você adiciona algum usuário usando useradd você pode mudar o arquivo / etc / default / useradd.

sed -i -e "s@\(^SHELL\).*@=/bin/bash@g" /etc/default/useradd
    
por 30.03.2014 / 16:02
0

Você está mudando de um usuário normal (você) para outro usuário normal, digamos joe, certo?
O seguinte é o seu prompt de shell, definido na variável de ambiente PS1:

user@user directory $

Depois de mudar para joe, você verá o prompt do shell de joe. E ele não configurou para mostrar nada extravagante no prompt, então apenas o prompt padrão é mostrado, o que se parece com:

$

O segundo é o padrão do programa shell simples, o seu provavelmente é o padrão da distribuição do Linux.

Tente definir o PS1 como o mesmo da sua conta, isso deve ajudar:

user@usersBox directory $ echo "$ PS1"

e mais tarde

$ PS1="......" em joe@usersBox directory $

Reajuste o ...... com o valor mostrado pelo echo acima.

A palavra após o "@" é normalmente o nome do computador, então eu acho que você deu ao computador o mesmo nome do seu nome de usuário durante a configuração.
Para torná-lo menos confuso no exemplo, alterei o nome do computador para "usersBox".

Talvez ele tenha removido a variante intencionalmente. Mas, como é provável, é causado por algum pequeno problema técnico aleatório, e ele estaria bem se você o alterasse para ele também, em seus arquivos de inicialização, como ~ / .bashrc ou similar, dependendo do tipo de shell usado por ele. / p>     

por 30.03.2014 / 15:49