Onde colocar a configuração bash para usuários recém-criados? [duplicado]

1

Eu tenho uma tarefa e estou confuso sobre qual arquivo de configuração do bash editar.

Eu devo editar um arquivo de configuração do bash e alterar o prompt do PS1 e adicionar uma variável de ambiente que pesquise ~ / scripts sempre que um usuário root inserir um comando. Então eu devo copiá-lo para o diretório apropriado para que todos os novos usuários criados também tenham as variáveis.

Eu posso fazer bem a primeira parte, mas não tenho certeza de qual arquivo de configuração devo editar. Com base no segundo requisito, estou editando o ~ / .bashrc, mas depois estou preso na segunda parte do diretório para o qual copiar.

O NDG diz que todos os arquivos nesse diretório com uma extensão .sh são executados automaticamente em /etc/profile.d/, então eu fui em frente e copiei / renomeie o ~ / .bashrc para algo como bashrc.sh lá. Mas quando eu testo com um novo perfil de usuário, há um prompt vazio no terminal.

Espero que alguém aqui possa me ajudar, obrigado.

O texto exato da tarefa

  1. No arquivo de configuração do shell bash apropriado, configure o prompt da linha de comandos principal para que ele exiba seu sobrenome, seguido por @, o nome do host e o diretório de trabalho.
  2. Crie um diretório chamado ~ / scripts
  3. No arquivo de configuração do shell bash apropriado, altere a variável de ambiente apropriada para que o sistema também procure o diretório ~ / scripts recém-criado quando o usuário root inserir um comando.
  4. Copie o arquivo de configuração do shell bash que você modificou as etapas acima para o diretório apropriado para que, sempre que um novo usuário for criado, esse usuário também tenha esses valores de variáveis de ambiente.
por Bernie 26.04.2017 / 23:12

1 resposta

1

Você parece estar fazendo uma ótima edição .bashrc ; o diretório para o qual você também precisa copiar os modelos de qualquer arquivo de configuração / script a ser duplicado após a criação de um usuário geralmente está localizado em /etc/skel .

Então você faria:

  1. Anexar a ~/.bashrc e colocar lá:

    PS1="surname@\h\w>"
    
  2. Crie o marcador para futuros scripts de usuário em ~ / scripts

    mkdir ~/scripts
    
  3. Anexe ao modificador ~/.bashrc a $ PATH para procurar scripts; Como regra geral, por razões de segurança, você o anexa no final e não no início

    PATH=$PATH:~/scripts
    
  4. Nesta última parte, você precisa fazer isso como root , ou pertencer ao grupo sudo , precedendo o comando com sudo para ter privilégios de superusuário; seus privilégios padrão normais do usuário não serão suficientes para escrever no diretório / etc / skel. Como em

    sudo cp ~/.bashrc /etc/skel
    

    ou como o root user:

    cp  ~your_user_name/.bashrc /etc/skel
    

Veja o link para mais detalhes sobre o / etc / skel

The /etc/skel directory contains files and directories that are automatically copied over to a new user's home directory when such user is created by the useradd program.

/etc/skel allows a system administrator to create a default home directory for all new users on a computer or network and thus to make certain that all users begin with the same settings or environment.

Several user configuration files are placed in /etc/skel by default when the operating system is installed.

The name of the directory skel is derived from the word skeleton, because the files it contains form the basic structure for users' home directories.

Quanto à variável de ambiente PATH, consulte esta

The PATH environment variable is a colon-delimited list of directories that your shell searches through when you enter a command.

Program files (executables) are kept in many different places on the Unix system. Your path tells the Unix shell where to look on the system when you request a particular program.

Para alterar o seu prompt com o PS1, você pode jogar com o gerador do PS1 .bashrc e ver as modificações em tempo real usando uma página da Web bastante inteligente .

    
por 27.04.2017 / 01:41