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

21

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

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

Gracias por adelantado.

Miguel
fuente
2
Si lo intentara, lo descubriría mucho más rápido que preguntando aquí.
Stig Hemmer

Respuestas:

30

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', nombrados /etc/skel. Hay dos comandos principales:

  • useradd es el comando de fondo, 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 por este comentario a @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.

    • Un directorio 'esquelético' diferente puede definirse con la -k --create-homeopción

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

  • adduseres fácil de usar e interactivo front-end de useradd. Este comando copiará los archivos /etc/skeldel $HOMEdirectorio del usuario de manera predeterminada:

    $ 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.

    • La variable determina el valor predeterminado para el shell de inicio de sesión del nuevo usuario DSHELL=. Podría especificarse también a través de 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 del usuario, respectivamente, el contenido del directorio 'esquelético' no se copiará.

    • Si se llama con un argumento sin opción y la --systemopción, adduseragregará un usuario del sistema ... Se crea un directorio de inicio con 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ética no se copian. ... de la página del manual.


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


Referencias

pa4080
fuente
2
useraddtambién creará un directorio de inicio y lo completará con una copia de /etc/skelsi -mse proporciona la opción.
jwodder
44
Su segundo bloque de código todavía se usa useradden el comando; se suponía que era eso adduser?
David Z
2
Además, las cuentas de usuario utilizan adduser, ¿no?
Gunnar Hjalmarsson el