¿En qué momento se crea el archivo ~/.bashrc?

¿En qué momento se crea el archivo ~/.bashrc?

Por ejemplo, si tuviera que ejecutar el comando adduser test, ¿el .bashrc se crea automáticamente al crear el directorio de inicio del usuario test? Si no se crea tras la creación del usuario, ¿bajo qué condiciones se crea?

Además, si agrego un archivo .bashrc al directorio de inicio de un usuario, ¿el sistema operativo lo sobrescribirá?

Gracias de antemano.

Respuesta1

En la mayoría de los casos, los archivos de usuario iniciales (incluidos .bashrc) se crean cuando se crea el usuario. Son copias de los archivos almacenados en el directorio "esquelético", denominado /etc/skel. Hay dos comandos principales:

  • useraddes el comando back-end, si lo usa directamente (sin ninguna opción) solo se creará un usuario del sistema (y su grupo):

    $ sudo useradd new-user
    $ ls -la /home/new-user/
    ls: cannot access '/home/new-user/': No such file or directory
    
    • useraddcreará un directorio de inicio y lo completará con una copia de /etc/skelsi -m --create-homese proporciona la opción. Gracias poreste comentarioa @jwodder.

    • La opción -s --shellcambiará el nombre del shell de inicio de sesión del nuevo usuario. No importa cuál sea el shell de inicio de sesión del nuevo usuario, todo el contenido del directorio 'esquelético' /etc/skelse completará en el directorio de inicio del nuevo usuario.

    • Se puede definir un directorio 'esquelético' diferente con la -k --create-homeopción.

    • El archivo de configuración de este comando es /etc/default/useradd.

  • adduseres una interfaz fácil de usar e interactiva deuseradd. Este comando copiará los archivos al directorio /etc/skeldel usuario de forma predeterminada:$HOME

    $ 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
    
    • El archivo de configuración de este comando es /etc/adduser.conf.

    • El valor predeterminado para el shell de inicio de sesión del nuevo usuario lo determina la variable DSHELL=. También se puede especificar mediante la opción --shell. No importa cuál sea el shell de inicio de sesión del nuevo usuario, todo el contenido del directorio 'esquelético' /etc/skelse completará en el directorio de inicio del nuevo usuario.

    • La SKEL=variable en este archivo especifica el directorio predeterminado que contiene archivos de usuario "esqueléticos".

    • La opción --no-create-homeobligará al comando addusera no crear un directorio de inicio de usuario y, respectivamente, no se copiará el contenido del directorio 'esquelético'.

    • Si se llama con un argumento que no sea una opción y la --systemopción, adduseragregará un usuario del sistema... Un directorio de inicio se crea según las mismas reglas que para los usuarios normales. El nuevo usuario del sistema tendrá el shell /bin/false(a menos que se anule con la --shellopción) y tendrá los inicios de sesión deshabilitados.Los archivos de configuración esqueléticos no se copian. ...desde la página del manual.


Además, cuando el usuario se crea con cualquier herramienta GUI comoUser Accounts, el resultado es idéntico al del comando adduser.


Referencias:

información relacionada