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

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

Por exemplo, se eu executasse o comando adduser test, o .bashrc seria criado automaticamente após a 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 será criado?

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

Desde já, obrigado.

Responder1

Na maioria dos casos, os arquivos iniciais do usuário (incluindo .bashrc) são criados quando o usuário é criado. Eles são cópias dos arquivos armazenados no diretório ‘esqueletal’, denominado /etc/skel. Existem dois comandos principais:

  • useraddé o comando back-end, se você usá-lo diretamente (sem nenhuma opção) 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
    
    • useraddcriará um diretório inicial e o preencherá com uma cópia /etc/skelse a -m --create-homeopção for fornecida. Obrigado poreste comentáriopara @jwodder.

    • A opção -s --shellalterará o nome do shell de login do novo usuário. Não importa qual seja o shell de login do novo usuário, todo o conteúdo do diretório 'esqueleto' /etc/skelserá preenchido no diretório inicial do novo usuário.

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

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

  • adduseré um front-end amigável e interativo deuseradd. Este comando copiará os arquivos /etc/skelpara o diretório do usuário $HOMEpor 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 para o shell de login do novo usuário é determinado pela variável DSHELL=. Também pode ser especificado através da opção --shell. Não importa qual seja o shell de login do novo usuário, todo o conteúdo do diretório 'esqueleto' /etc/skelserá preenchido no diretório inicial do novo usuário.

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

    • A opção --no-create-homeforçará o comando addusera não criar um diretório inicial do usuário, respectivamente, o conteúdo do diretório 'esqueleto' não será copiado.

    • Se chamado com um argumento sem opção e a --systemopção, adduseradicionará um usuário do sistema... Um diretório inicial é criado pelas mesmas regras dos usuários normais. O novo usuário do sistema terá o shell /bin/false(a menos que seja substituído pela --shellopção) e terá os logins desabilitados.Os arquivos de configuração esquelética não são copiados. ...na página de manual.


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


Referências:

informação relacionada