Como alterar o prompt de um usuário, para que ele mostre o diretório atual?

0

Eu criei o usuário ' user11 ' no Linux e alterei seu diretório inicial usando a opção -d , mas quando eu faço login com esse usuário, ele mostra ' -bash-4.3$ '.

Eu quero saber:

  1. Qual é o significado de ' -bash-4.3 ' e por que isso acontece?
  2. Por que user11 imprime seu diretório de trabalho ' /root ' e user12 imprime ' /phome/user12 '?
  3. Como posso alterar '-bash-4.3' para seu significado usual (como user11 ou user12 )?
por Puneet Dixit 10.09.2016 / 14:58

3 respostas

3

Você marcou sua pergunta adduser , mas parece que realmente está usando useradd : AFAIK useradd (ao contrário de adduser ) não copia os arquivos de esqueleto do diretório /etc/skel - em particular, ele não cria um ~ / .bashrc padrão para o novo usuário.

Para responder às suas perguntas ponto a ponto:

  1. é o prompt do shell bash padrão, usado na ausência de um customizado mais personalizado, geralmente fornecido pelo usuário ~/.bashrc file

  2. porque você não criou o diretório pessoal para user11 (e nem useradd nem usermod -d fazem isso para você)

  3. copie os arquivos .profile e .bashrc padrão de /etc/skel para os diretórios iniciais dos usuários ou exclua os usuários e comece novamente usando adduser

Veja Qual é a diferença entre adduser e useradd?

    
por steeldriver 10.09.2016 / 15:29
0

Concerrando suas perguntas ...

% bl0ck_qu0te%

É o shell usado e sua versão.

% bl0ck_qu0te%

Porque o user11 não possui um diretório pessoal ( /phome/user11 ) no sistema de arquivos.

% bl0ck_qu0te%

Crie um diretório base /phome/user11 conforme especificado em getent .

O que você fez é que você alterou apenas as informações sobre onde encontrar o diretório de usuário, mas não criou um.

Criando um novo diretório inicial para user11

cp -a /etc/skel /phome/user11
chown -R user11:1009 /phome/user11

Melhor seria usar useradd ... -m para criar o diretório de usuário automaticamente.

    
por Thomas 10.09.2016 / 15:24
0

Endereçando cada um dos seus pontos:

  1. -bash-4.3 é o prompt padrão para o shell, que é bash. Ele mostra o shell e sua versão. O prompt é definido pela variável de ambiente PS1 . Veja Personalização do Bash / Prompt .

  2. user11 tem um valor diferente de $PS1 para user12. Você pode verificar isso digitando echo $PS1 para cada usuário.

  3. Em ~/.bashrc , para user12, adicione a linha:

    export PS1="${PWD}> "
    

Onde definir PS1

O valor dessa variável de ambiente pode ser definido em vários lugares. Os locais mais comuns são /etc/profile , /etc/bashrc , ~/.bash_profile e ~/.bashrc .

De Definindo o PS? Strings permanentemente

% bl0ck_qu0te%

O prompt do bash é um assunto extenso e muito amplo para discutir completamente aqui. Para mais personalizações do prompt do bash, consulte Bash Prompt HOWTO .

    
por Greenonline 10.09.2016 / 15:23