Em que ponto o arquivo ~ / .bashrc é criado?

16

Por exemplo, se eu executar o comando adduser test , o .bashrc será criado automaticamente quando da criação do diretório inicial do usuário test ? Se não for criado na criação do usuário, em que condições ele é criado?

Além disso, se eu adicionar um arquivo .bashrc ao diretório home de um usuário, ele será substituído pelo sistema operacional?

Obrigado antecipadamente.

    
por Michael 01.11.2017 / 21:53

1 resposta

25

Na maioria dos casos, os arquivos de usuários iniciais (incluindo .bashrc ) são criados quando o usuário é criado. São cópias dos arquivos armazenados no diretório 'esquelético', denominado /etc/skel . Existem dois comandos principais:

  • useradd é o back-end comando, se você usá-lo diretamente (sem quaisquer opções) apenas um usuário do sistema (e seu grupo) será criado:

    $ sudo useradd new-user
    $ ls -la /home/new-user/
    ls: cannot access '/home/new-user/': No such file or directory
    
    • useradd criará um diretório inicial e o preencherá com uma cópia de /etc/skel se a opção -m --create-home for fornecida. Obrigado pelo este comentário para @jwodder.

    • A opção -s --shell mudará o nome do shell de login do novo usuário. Não importa o shell de login do novo usuário, todo o conteúdo do diretório 'esquelético' /etc/skel será preenchido no diretório inicial do novo usuário.

    • Um diretório 'esquelético' diferente pode ser definido com a opção -k --create-home .

    • O arquivo de configuração deste comando é /etc/default/useradd .

  • adduser é de fácil utilização e front-end interativo de useradd . Este comando irá copiar os arquivos de /etc/skel para o diretório $HOME do usuário por padrão:

    $ sudo adduser new-user
    Adding user 'new-user' ...
    Adding new group 'new-user' (1002) ...
    Adding new user 'new-user' (1002) with group 'new-user' ...
    Creating home directory '/home/new-user' ...
    Copying files from '/etc/skel' ...
    Enter new UNIX password:
    Retype new UNIX password:
    passwd: password updated successfully
    Changing the user information for new-user
    Enter the new value, or press ENTER for the default
            Full Name []: New User
            Room Number []:
            Work Phone []:
            Home Phone []:
            Other []:
    Is the information correct? [Y/n]
    
    $ ls -a /home/new-user/
    .   ..   .bash_logout   .bashrc   .config   examples.desktop   .profile   .Xdefaults
    
    • O arquivo de configuração deste comando é /etc/adduser.conf .

    • O valor padrão do shell de login do novo usuário é destacado pela variável DSHELL= . Pode ser especificado também através da opção --shell . Não importa o shell de login do novo usuário, todo o conteúdo do diretório 'esquelético' /etc/skel será preenchido no diretório inicial do novo usuário.

    • A variável SKEL= neste arquivo especifica o diretório padrão que contém arquivos do usuário 'esqueletal'.

    • A opção --no-create-home forçará o comando adduser a não criar um diretório base do usuário, respectivamente, o conteúdo do diretório 'esquelético' não será copiado.

Além disso, quando o usuário é criado com qualquer ferramenta de GUI como User Accounts , o resultado é idêntico ao comando adduser .

Referências:

por pa4080 01.11.2017 / 22:16